Boost logo

Boost :

From: Mohit Saini (mohitsaini1196_at_[hidden])
Date: 2021-03-20 19:33:16


Hi,

This is Mohit Saini. I developed a lazy_map library, whose interface is
similar to std::unordered_map but lazy_map is O(1) copiable. Other
operations like Deletion, Lookup, Insertion etc. continue to cost O(1)..
which also implies that lazy_map is not a simple
cow_wrapper<std::unordered_map> .. lazy_map is way more clever than that.
Learn more at : https://github.com/tinytrashbin/lazy_map
Specially, checkout the section which explains the "Fragment" tree.

Lazy_map is heavily used in our codebase for taking snapshot of a very
large state ( of size ~ 5 GBs), enabling "fork" of a snapshot in O(1) time
for further modification in the forked snapshot, allowing a large number
of threads to operate on different snapshots of very large size,
concurrently without interfering with each other where each of the thread
is even "writing" to their snapshot.

I believe such a utility will be very helpful for others too. I'm looking
for boost-maintainers who can review and suggest what all I need to do so
that lazy_map can be accepted in Boost.

Thanks

-- 
Mohit Saini

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk