-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AEP: Abstract and improve the node file repository #7
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot @sphuber !
Below a few comments and suggestions.
@ltalirz what is the typical procedure for an AEP PR? If I want to apply the changes I just make a new commit and push? Do we want to keep the commit history here? What is the typical approach? |
Yes, that's the idea.
I'd say let's keep the commit history at least in the PR. Feel free to add me as a "champion" - then we should ask for reviews from all relevant parties, if you think you can even mention the For reference, here is how jupyter propose to handle this review period |
I think this would be a good opportunity to also get rid of empty repository folders: The The motivation for this is that FS performance (things like |
@sphuber, as discussed, perhaps this should be marked as rejected (at least for the exact spec you outlined here) and then merged/closed (?), and maybe you could add a note of why this was the case |
ff12f6f
to
81a71db
Compare
@ltalirz @chrisjsewell @giovannipizzi I have updated the AEP to reflect the current implementation in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for taking the time to wrap this up @sphuber !
I haven't had the time to read through everything but since the implementation is already done I think it's great to have the thought process documented here.
Good to go from my side!
just having a read... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
few nitpicks
|
||
## Proposed Enhancement | ||
The scaling problem of the original file repository implementation has already been described in great detail in [AEP 006: Efficient object store for the AiiDA repository](https://github.com/aiidateam/AEP/tree/master/006_efficient_object_store_for_repository#readme). | ||
It also describes an effecient key-value store that is implemented in the [`disk-objectstore`](https://github.com/aiidateam/disk-objectstore) library. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It also describes an effecient key-value store that is implemented in the [`disk-objectstore`](https://github.com/aiidateam/disk-objectstore) library. | |
It also describes an efficient key-value store that is implemented in the [`disk-objectstore`](https://github.com/aiidateam/disk-objectstore) library. |
:raise OSError: if the file could not be deleted. | ||
""" | ||
``` | ||
Since it is envisioned that solutions will be implemented that are not necessarily file system based, it is important that the interface does not implicitcly bake-in file-system-only concepts. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since it is envisioned that solutions will be implemented that are not necessarily file system based, it is important that the interface does not implicitcly bake-in file-system-only concepts. | |
Since it is envisioned that solutions will be implemented that are not necessarily file system based, it is important that the interface does not implicitly bake-in file-system-only concepts. |
|
||
## Detailed Explanation | ||
|
||
### Abstracting the file repository interface |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it would be great here to have a basic before & after UML of this, similar (but not necessarily as detailed) to what I have done in aiidateam/aiida-core#5172 (comment),
so people not already intimately knowledgable with AiiDA can get a quick idea of whats going on
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would this image I made for the documentation fulfill that need?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yep perfect 👍 Perhaps if you also had a "before" one as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't have a before, and there is not much to describe really. The code was more or less directly hard coded in the Node
class.
570c899
to
fe4801c
Compare
README.md
Outdated
| 004 | implemented | [Infrastructure for importing completed `CalcJob`s](004_calcjob_importer/readme.md) | | ||
| 005 | draft | [New Export Format](005_exportformat/readme.md) | | ||
| 006 | implemented | [Efficient object store for the AiiDA repository](006_efficient_object_store_for_repository/readme.md) | | ||
| 007 | implemented | [Abstract and improve the file repository](007_improved_file_repository/) | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| 007 | implemented | [Abstract and improve the file repository](007_improved_file_repository/) | | |
| 007 | implemented | [Abstract and improve the file repository](007_improved_file_repository/readme.md) | |
you reverted my fix
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Technically not a revert, since it is a new row. But I see the problem, just accidentally forgot.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed, guvnor
fe4801c
to
f222840
Compare
submitted
README.md