This update is coming to you a bit quicker than normal. The number of irons in the fire continues to increase, and the TWG list was drifting from the development update list. Our Technology Working Group met earlier this week, and so by writing the monthly development update now, we hope to keep things a bit more in sync.
New work this month has focused on some core libraries and functionality. The Metadata Guard Policy Engine will allow for the protection of metadata from edits or prying eyes, even on data that is visible to others in iRODS. Working in concert with other policy engines, it can provide a system-level namespace for policy-driving metadata (aka "irods::" by default). We've introduced a new user and group library to handle the most common interfaces for user management. The irodsReServer (soon to be renamed the irodsDelayServer) is being refactored again to use a connection pool and to honor any changes in the server_config.json
on a live system. This will allow a much more efficient use of client-server and database connections on a system under load.
The Python Rule Engine Plugin has received some attention for its query interface and will now provide more options from GenQuery to rules written in Python. Thanks to Utrecht University's Chris Smeele for these additions.
Policy Composition is now fully realized and the Storage Tiering Capability has been written for the fourth time (perhaps the last?) to be a composition of multiple C++ policy engines working together. It is composed of data_movement, data_replication, data_verification, data_retention, access_time, and query_processor. Many of these composable policy engines can be invoked synchronously or asynchronously. Other rule engine plugins will be refactored in the same way moving forward and we expect this approach to provide significant ease of maintenance as well as fewer bugs. Next week's TRiRODS meetup will cover this topic in detail and will be recorded and shared at https://irods.org/trirods.
Metadata Templates Working Group
TRiRODS
New Development Work
Metadata Guard Policy Engine
User and Group C++ Library
DelayServer Refactor
Python Rule Engine Plugin
Active Development Work
Policy Composition
Plugin Version Numbering
AWS S3 Lambda
Logical Quotas
iRODS Hard Links RFC
C++-based REST API
C++ S3 API
Storage Tiering Capability
Python iRODS Client (PRC)
Cacheless and Detached S3
NFSRODS
Automated Ingest Capability
Parallel Transfer Engine
Parallel Filesystem Integration
Indexing Capability
Publishing Capability
Metalnx
Continuous Integration (CI)
Background Items
Discussion