Alan King and Derek Dong
iRODS Consortium
Technology Update
iRODS 4.3.1
November 12-17, 2023
Supercomputing 2023
Denver, CO
iRODS 4.2 Series
4.2.12 is the final release of the 4.2 series.
Limited to security fixes, bug fixes, and trivial enhancements.
Contributors - 4.2.12
iRODS Release | Issues Closed |
---|---|
4.2.12 | 160 |
~/irods $ git shortlog --summary --numbered 4.2.11..4.2.12 67 Alan King 58 Kory Draughn 13 Daniel Moore 9 Justin James 8 Markus Kitsinger (SwooshyCueb) 6 Martin Jaime Flores Jr 4 Felix A. Croes 2 Alastair Smith 1 Phillip Davis 1 Terrell Russell
4.2.12 Core Server Improvements
What is iRODS?
Open source data management software used by research, commercial, and governmental organizations worldwide for over 20 years.
Virtualizes data storage resources, so users can take control of their data, regardless of where and on what device the data is stored.
Rule engines allow for composable policy implementation. Plugin architecture supports microservices, storage systems, authentication, networking, databases, rule engines, and an extensible API.
Contributors - 4.3.1
iRODS Release | Issues Closed |
---|---|
4.3.1 | 236 |
~/irods $ git shortlog --summary --numbered 4.3.0..4.3.1
204 Kory Draughn
101 Alan King
24 Markus Kitsinger (SwooshyCueb)
15 Nishant Dash
14 Martin Jaime Flores Jr
12 Justin James
10 Daniel Moore
7 Violet White
4 Felix A. Croes
3 Terrell Russell
2 Derek Dong
2 Phillip Davis
1 Awab Masroor
1 Peter Verraedt
1 June Releford
1 Leonardo Lenoci
4.3.1 User Experience Updates
4.3.1 Core Server Enhancements
Build and Packaging
We continue to move towards a more Normal and Boring approach to build and packaging:
This effort will enable iRODS to exist on more platforms and architectures, increasing accessibility for users and developers.
Address Sanitizer (ASan)
A very fast memory error detector for C/C++.
It detects several different issues such as memory leaks, use-after-free bugs, heap buffer overflows, etc.
Used to track down several memory leaks in iRODS 4.3.0.
Enabled via CMake by setting IRODS_ENABLE_ADDRESS_SANITIZER to YES.
For example:
user@sc2023:~ $ cmake ... -DIRODS_ENABLE_ADDRESS_SANITIZER=YES ...
New API Plugin - rc_switch_user
Allows the user associated with a connection to be switched to a different user.
Designed for client applications which
Benefits
New API Plugin - rc_switch_user (cont.)
Performance Testing Details
Setup
Test results show a 98% performance improvement.
iRODS Project Templates for C++
Using the GitHub template repository feature, the iRODS Consortium now offers template repositories which allow C++ developers to jump directly into writing code for iRODS.
The Consortium supports five template repositories today.
Improved Documentation - Policy Cookbook
An online resource dedicated to providing best practices and the latest techniques to various policy-based situations encountered in the iRODS ecosystem.
The cookbook covers topics such as ...
If you have suggestions on how to improve the cookbook, please reach out.
Improved Documentation - Data Objects
Information about data objects has been expanded.
Documentation for 4.3.1 includes details about ...
We'll continue to expand on these topics as improvements to the server are made.
Improved Documentation - Protocol Cookbook
Intern project documenting the iRODS protocol by demonstrating a basic client implementation of the iRODS control flow.
Meant to serve as a model for implementing new client libraries in various languages.
Implemented as a Jupyter Notebook.
UnixFileSystem Resource - Detached Mode
Allow multiple servers in an iRODS Zone to service requests made to a single UnixFileSystem resource. Only requires a mountpoint to a common backend filesystem accessible by all participating servers.
Useful for parallel and distributed filesystems.
Configure via context string:
iadmin mkresc detached_resc unixfilesystem hostname.example.org:/common/mount/point \
"host_mode=detached;host_list=host2.example.org,host3.example.org"
Audit AMQP Rule Engine Plugin
Audit AMQP Rule Engine Plugin - ELK Stack
iRODS Clients
Protocols
Libraries
CLIs
GUIs
iRODS CLI
Restart of a previous effort to make a modernized iRODS CLI:
$ irods put testFile
Big Picture
Core
4.3.x/4.4.x/5.0 - Satisfy Roadmap (Cloud-friendliness, Replace PackStruct, etc.)
Continue building out policy components (Capabilities).
We want installation and management of iRODS to become about policy design, composition, and configuration.
Please share your ...
Use cases
Pain points
Hopes and dreams
Open Source Community Engagement
Get Involved
Working Groups
GitHub Issues
Pull Requests
Chat List
Consortium Membership
Tell Others
Publish, Cite, Advocate, Refer