@@ -135,16 +135,22 @@ However, this approach is used both by the current Vere as well as by LMDB for w
135Implement a copy-on-write arena by using `write()` to copy pages to new regions of the backing file.
135Implement a copy-on-write arena by using `write()` to copy pages to new regions of the backing file.
136This should include at least single-arena snapshot support.
136This should include at least single-arena snapshot support.
138## Milestone 2: Kernel copy-on-write (`MAP_PRIVATE`) + lazy write arena
140## Milestone 2: Kernel copy-on-write (`MAP_PRIVATE`) + lazy write arena
140Implement a copy-on-write arena by mapping pages `MAP_PRIVATE` and lazily writing dirty pages to the backing file.
142Implement a copy-on-write arena by mapping pages `MAP_PRIVATE` and lazily writing dirty pages to the backing file.
142## Milestone 3: Memory allocation and separate event arena
146## Milestone 3: Memory allocation and separate event arena
144Implement a memory allocator on top of this arena. This includes the ability to store metadata such as roots which will be committed with the snapshot, and reference counting or tracing to free nouns which are not referenced from the root.
148Implement a memory allocator on top of this arena. This includes the ability to store metadata such as roots which will be committed with the snapshot, and reference counting or tracing to free nouns which are not referenced from the root.
146Implement a separate (may be interleaved at the page level in memory/on disk) arena for event logs, which is bump-allocated and not copy-on-write but rather does not reallocate in committed pages.
150Implement a separate (may be interleaved at the page level in memory/on disk) arena for event logs, which is bump-allocated and not copy-on-write but rather does not reallocate in committed pages.
152+Compensation: 2 stars
148## Stretch/beyond scope
154## Stretch/beyond scope
149- Migration to/from vere
155- Migration to/from vere
150 - Portable snapshots?
156 - Portable snapshots?