- one or more files on a disk
- describes hierarchical structure of
Nodes
that contain key-value pairs - the total number of KEYs in all volume nodes can reach ~ 10^8
volume format
has to be platform-|architecture- independentsizeof(volume)
>= 10^12
- Volume == B+Tree ?
- https://github.com/erthink/libfpta
- virtual hierarchy structure of
mount nodes
- arbitrary parts of hierarchical structures from one or several
Volume's
are mounted in thestorage mount nodes
- the same
volume node
can bemounted
to multiplestorage mount nodes
- when several
volume nodes
from one or severalvolumes
hit onestorage mount node
:volume nodes
data is merged- if the
volume node keys
match, thenvolume node data
from the highest priorityvolume
is taken
- the total number of
mount nodes
in theStorage
can reach ~10^5
Storage
should work optimally with a variety of data types:uint32
,uint64
,float
,double
,string
,blob
, ...
- Keys are comparable, so the values are -> uint32, uint64, float, double, string, blob, ... ?
add|remove|search|iterate?
(or put|get
)automatic erasure when the KEY lifetime has expired
- One OS process can simultaneously and independently work with several
storages
, whosevolumes
do not overlap - Support
32-bit
,64-bit
architectures - Support multithreading
- particularly, providing parallel execution of most operations, including concurrent access to
volume files
- particularly, providing parallel execution of most operations, including concurrent access to
- multithreading:
SWMR
-> Single Writer Multiple Reader (sync only write ops)