-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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
Refactor mapping of files to memory locations #4952
Comments
When thinking how to implement this it became clear very fast that the main blocker for us is that our on-disk format is relatively unstructured and does not allow us to compute the size of memory segments and read/map the data in a very general way. To address these problems we need to change our file format. Seems like #2242 is rearing its ugly head again. Our new constraints would be:
This already sound very much like a StorageOur investment in using a general abstraction layer with We can use a "filesystem" like structure to get a human-readable hierarchical representation of data. For example the current
MemoryIn conjunction with the new on-disk format we can now make
The last three steps would be optional if we go for an Data organizationUsing hierarchical naming makes it very easy to implement loading multiple datasets/profiles using
Would create data in the namespaces:
How this data is split up between shared memory segments could be determined inside ImpactMoving on this refactor will make a range of issues much easier to implement: |
This shipped. |
Currently the logic to map a section of a file to a location in memory is hand written in storage.cpp for every file in the function
PopulateLayout
. This is tedious and error prone as it assume this logic needs to be adapted every time we change the structure of the files.To change this we should capture the logic of figuring out the blocks of memory contained in each file to an own function.
Unblocks mapping separate files in #1947 and makes #4873.
The text was updated successfully, but these errors were encountered: