|
|
|
|
|
by ec109685
2117 days ago
|
|
It seems like coupling a database checkpoint process with file system’s snapshot process should be theoretically possible:
1) Database informed snapshot needed
2) Database finalizes any in progress writes and starts logging new writes to another file
3) Take file system snapshot
4) Inform database snapshot is fine Between #3 and the file system snapshot, you should have a perfect and quick representation of the database at that point in time (when the database was informed it should stop logging). |
|
A system that did its snapshots “inline” to itself, by e.g. managing a pool of pages with a free-list the way LMDB does — but where Txs ultimately add a new version to the root bucket as a snapshot, rather than replacing the root bucket page with themselves — would get a lot closer to allowing one to have at least tens-of-millions of snapshots online. At that point, to achieve a billion snapshots online, you “only” need to shard your timeline across a cluster of 100 nodes.
This is precisely one of the experiments I’m trying. :)