You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
iRODS connections tie the identity of a user to the socket. This is fine for one-off commands, but not for situations where there can be hundreds to thousands of concurrent users. Creating a new connection for every user will quickly drain resources.
Therefore, iRODS should provide a way to change the user identity tied to the connection object. This would lead to huge improvements regarding performance, scalability, and resource management.
This would also improve support for client applications because the client libraries would finally be able to implement real connection pooling for iRODS connections.
Requirements
The only API requirement is ... switching the user tied to the connection object requires rodsadmin level privileges.
Challenges
The primary challenge with implementing this has to do with long running agents.
When an agent is forked, depending on the operation being carried out, the agent may choose to use the catalog or local memory. If information is fetched from local memory, then we run the risk of using out-of-date information. This situation applies to resource hierarchies, rule engine plugins, and likely other things.
So, to support this feature means iRODS must guarantee that long running agents see important changes. The question now becomes, when do iRODS agents sync with the catalog and how?
This plugin allows the identity tied to an RxComm to be changed in
real-time.
The primary goal of this API endpoint is to allow clients to implement
real connection pooling. This should improve performance, scalability,
and resource management for the client and the iRODS server.
This plugin allows the identity tied to an RxComm to be changed in
real-time.
The primary goal of this API endpoint is to allow clients to implement
real connection pooling. This should improve performance, scalability,
and resource management for the client and the iRODS server.
This plugin allows the identity tied to an RxComm to be changed in
real-time.
The primary goal of this API endpoint is to allow clients to implement
real connection pooling. This should improve performance, scalability,
and resource management for the client and the iRODS server.
This plugin allows the identity tied to an RxComm to be changed in
real-time.
The primary goal of this API endpoint is to allow clients to implement
real connection pooling. This should improve performance, scalability,
and resource management for the client and the iRODS server.
Feature
iRODS connections tie the identity of a user to the socket. This is fine for one-off commands, but not for situations where there can be hundreds to thousands of concurrent users. Creating a new connection for every user will quickly drain resources.
Therefore, iRODS should provide a way to change the user identity tied to the connection object. This would lead to huge improvements regarding performance, scalability, and resource management.
This would also improve support for client applications because the client libraries would finally be able to implement real connection pooling for iRODS connections.
Requirements
The only API requirement is ... switching the user tied to the connection object requires rodsadmin level privileges.
Challenges
The primary challenge with implementing this has to do with long running agents.
When an agent is forked, depending on the operation being carried out, the agent may choose to use the catalog or local memory. If information is fetched from local memory, then we run the risk of using out-of-date information. This situation applies to resource hierarchies, rule engine plugins, and likely other things.
So, to support this feature means iRODS must guarantee that long running agents see important changes. The question now becomes, when do iRODS agents sync with the catalog and how?
Other
Add support to the following libraries:
Related issues: #5060
The text was updated successfully, but these errors were encountered: