Technology Update
June 5-7, 2018
iRODS User Group Meeting 2018
Durham, NC
Terrell Russell, Ph.D.
@terrellrussell
Chief Technologist, iRODS Consortium
Technology Update
In The Last Year
iRODS Release | Issues Closed |
---|---|
4.1.11 | 92 |
4.2.2 | 39 |
4.2.3 | 76 + 18 |
Plugins
- Python Rule Engine Plugin
- Storage Tiering Rule Engine Plugin
- Auditing (AMQP) Rule Engine Plugin
- S3 Resource Plugin
- GSI Authentication Plugin
- Kerberos Authentication Plugin
- Curl Microservice Plugin
Clients
- Python iRODS Client
- Automated Ingest Framework
- Cloud Browser
~/irods $ git shortlog --summary --numbered 4.1.10..4-1-stable 31 Ben Keller 20 Alan King 20 Terrell Russell 7 Hao Xu 7 Rick Skarbez 7 jkgill 6 Zoey Greer 5 Jason Coposky 2 Matthew Vernon 1 Brian N. Makin ~/irods $ git shortlog --summary --numbered 4.2.1..4-2-stable 51 Alan King 27 Jason Coposky 22 Hao Xu 18 Terrell Russell 17 Ben Keller 17 Zoey Greer 15 Kory Draughn 9 jkgill 8 Justin James 5 Andrew Kelly 5 Kyle Ferriter 2 d-w-moore 2 xu-hao 1 Felix A. Croes 1 Marco Grossi 1 Sam Morris
In The Last Year
Ongoing Development Work
- iRODS 4.1.12
- iRODS 4.2.4
- iRODS 4.3.0
- Python iRODS Client (PRC)
- Indexing Framework
- Lustre Integration
- Metalnx
- CockroachDB Database Plugin
- Ceph RADOS Resource Plugin
- QueryArrow Database Plugin
- R Client Library (R-iRODS)
- Multipart Transfer, v5 API
- NFS4J Integration
- Metadata Templates
- Testing Infrastructure
4.1.12 Update
Replicas in a complex tree (across 2 zones)...
Not enough replicas! #3746
Problem: 1 copy == BAD
Cause(s): Network, storage, OS...
Solution: Try harder
Replication retry (tested with mungefs)
Too many replicas! #3665
Problem: Filling up storage
Cause: Surprise concurrency? Repl resc?
Solution: ???
"Enhanced logging" with PID/user info
root:passthru
└── replicate:replication
└── green-rand:random
│ └── green0:random
│ │ ├── green0ufs0
│ │ └── green0ufs1
│ └── green1:random
│ ├── green1ufs0
│ └── green1ufs1
└── red-rand:random
└── red0:random
│ ├── red0ufs0
│ └── red0ufs1
└── red1:random
├── red1ufs0
└── red1ufs1
To be continued...
4.3.0 Update
- irodsMonitor process
- Checksums moving down into resource plugins
- Containerize installation
- Logging overhaul
4.3.0 Logging Update
Today
- Inconsistent
- Incomplete (syslog support)
- Not very helpful in tracking what caused an error
- Not very helpful when multiple servers are involved
Design Goals
- Leverage existing logging library (spdlog, etc.)
- Enable admins to easily capture, process, and analyze activity
- Consistent
- Easily track errors across multiple servers (hostname, timestamp, PID, plugin, etc.)
- Tie in existing infrastructure
- Provide more options for controlling output
Join Us!
- What would you like to see accomplished with the logging refactor?
- RFC: https://github.com/irods/irods_rfcs/blob/master/0001_logging.md
- Have questions/suggestions? Let's talk!
iRODS Build and Test - Yesterday
July 2011
-
Python → Node.js → RabbitMQ → Celery → Eucalyptus
October 2012
- Python → Node.js → ssh → OpenStack
January 2013
- Hudson → Python → OpenStack
October 2013
- Hudson → Python → vSphere long-running VMs
Spring 2015
- Jenkins → Python → Ansible → vSphere dynamic VMs
iRODS Build and Test - Today
Spring 2015 - onwards
- Jenkins → Python → Ansible → zone_bundles → vSphere dynamic VMs
Changes Since 2017
- Ended support for CentOS 6 and Ubuntu 12
-
Moved iRODS build/test logic from Ansible to per-repository python modules
-
Unified Jenkins workflow to test all supported plugins
-
Consolidated to two parameterized Jenkins jobs
-
run-script-on-vms
- run-script-on-irods-zone
-
iRODS Build and Test - Today
iRODS Build and Test - Future
- Increase coverage (more plugins in CI)
- Move pipeline scripts to GitHub (no logic in Jenkins)
- Address inconsistency (false reds / pyvmomi errors)
- Containerize Jenkins (easier to test / update / redeploy)
- Possibly move from VMs to containers (speed / fewer moving parts)
Testing a distributed system is hard.
Input and other ideas are welcome.
Big Picture
4.2 is about sending things out
- Dynamic PEPs
- Pluggable Rule Engine
- Enterprise Messaging
4.3 (and friends) will be about bringing them back
- Facilitated by GQv2
Big Picture - GenQuery
Big Picture
Enterprise Messaging - Scatter
Big Picture
Metadata Virtualization - Gather
Big Picture
Open Source Community Engagement
- Technology Working Group
- Metadata Templates Working Group
- GitHub Issues
- Pull Requests
- Chat List
- Consortium Membership
UGM 2018 - Technology Update
By iRODS Consortium
UGM 2018 - Technology Update
iRODS User Group Meeting 2018 - Technology Update
- 1,553