iRODS User Group Meeting

June, 2015

Chapel Hill, NC

Jason Coposky, Chief Technologist

Last Year

Enterprise iRODS 3.0.1

Community iRODS 3.3.1

iRODS Consortium Release 4.0

iRODS Consortium Release 4.1

Focus on Hardening



Focus on Enterprise Readiness



Membership and Community Requests


Static Analysis

Membership and Community Input

General Improvements

Hardening - static analysis

  • Fixed nearly 1200 Coverity issues in iRODS and external libraries
    • Now down to zero issues in iRODS and libraries
    • Includes Buffer Overruns, Null pointer dereferences, use of uninitialized variables 
  • Continuously keep Coverity, cppcheck and STACK clean

Hardening - community input

192 Bugs closed


  • Many permission inconsistencies ironed out

  • Parallel transfer works in multi-homed networks

  • irsync sending only updated files

  • Zip files available via ibun

  • Zero-length file behavior is consistent

  • Delayed rules running correctly


Hardening - general improvements

  • Push the plugin architecture farther into the API
  • Move magic numbers to run-time configuration
  • Removed built-in PostgreSQL DB Vacuum functionality

  • Removed boot user from install script

  • Removed "run_server_as_root" option

  • Removed roles for storageadmin, domainadmin, and rodscurators

  • Removed obfuscation (SIDKey and DBKey)

Enterprise Readiness

Move configuration to validated JSON


Zone Introspection


Grid-wide control plane


New Client-Hints API

Enterprise Readiness - configuration

New schema-driven validated JSON configuration files include

  • server_config.json
  • database_config.json
  • irods_environment.json
  • host_access_control_config.json
  • hosts_config.json


Automatically generated on upgrade from 4.0.3

Enterprise Readiness - zone report

A step towards configuration management for iRODS deployments


Generates a validated JSON document describing every server in the Zone

  • Sanitized snapshots of all json configuration files
  • Listing of all installed plugins with checksums
  • Listing of all configured resources
  • Contents of rule files in base64 encoding


Leveraged by Consortium CI for deployment and testing of topologies

Enterprise Readiness - control plane

Side channel for communication directly with the iRODS Server


Per-server or grid-wide operations

  • Status information - validated JSON containing connections, pids, server state
  • Gracefully Pause and Resume
  • Gracefully Shut Down

Enterprise Readiness - client hints

New API call - communicate Server configuration information to the Client


Validated JSON document containing

  • Strict ACL setting
  • Desired hash-scheme
  • Match hash-scheme policy
  • Listing of installed specific queries


Will track iRODS schema versions and grow over time

Membership and Community Requests

Put with atomic metadata


Key-Value Passthrough for iput and iget


Zero Length files now trigger resource hierarchy behavior


Weighted Passthru Resource Plugin

Requests - zero length files

Zero Length files now trigger Resource Composition behavior


  • replication - Compound & Replication Resources

Requests - iput and iget

iput now supports two new options


  • --metadata - atomically assign metadata after data is at rest and registered
    • Encoded in the form "attr1;val1;unit1;attr2;val2;unit2;"
  • --acl - atomically assign ACLs after data is at rest and registered
    • ​Encoded as "<perm> <user_or_group>;..."


iput and iget now support a new option


  • --kv_pass - pass key-value strings through to the resource hierarchy
    • ​Encoded in the form "key1=value1;key2=value2"

Requests - weighted passthru plugin

Passthru Coordinating Resource now supports weights for read and write operations


  • Multiplier for votes of the child resource
  • Use to influence the behavior of Resource Composition
    • ​Create a read-only resource
    • Create a write-only resource
    • Programmatically redirect reads or writes based on system behavior
  • Floating point values
  • Set in the context string of the form ​read=1.1;write=0.5


iRODS 4.1 Overview

By jason coposky

iRODS 4.1 Overview

This is a highlight of the changes from iRODS 4.0.3 to iRODS 4.1

  • 1,076
Loading comments...

More from jason coposky