Motivation
We cannot assume that the different initialize() and get() methods in a pipeline are called from the same interpreter - at least that is not the case in AiiDA. Hence, all initialize() and get() methods should fetch the collection from the storage and save them back again if anything has been changed.
The current solution in PR #95 that stores the collection in the data cache works, but is very inefficient.
Task
To support such a common storage:
- Figure out the "correct" way to refer to the specific storage used load/store the collection. This should be shared between all interpreters that are spawned for the same pipeline.
- From OTELib, It would be useful if the storage to use could be configured in the client (e.g. via arguments to
otelib.OTEClient() or dedicated methods). This would probably require some dedicated REST endpoints in oteapi-services with admin permissions.
- Ideally the changes can be implemented in the utility functions for retrieving and updating the collection and will not affect any code using them.
Motivation
We cannot assume that the different
initialize()andget()methods in a pipeline are called from the same interpreter - at least that is not the case in AiiDA. Hence, allinitialize()andget()methods should fetch the collection from the storage and save them back again if anything has been changed.The current solution in PR #95 that stores the collection in the data cache works, but is very inefficient.
Task
To support such a common storage:
otelib.OTEClient()or dedicated methods). This would probably require some dedicated REST endpoints in oteapi-services with admin permissions.