Кто-нибудь знает java библиотеку, которая была похожа на Map<K, V>, но copy on write, и так, чтобы копировалось не всё содержимое, а только изменённые элементы.
Если приводить аналогии, то что-то в вдухе Unix’ового fork (когда дочерние процессы переиспользуют память до тех пор, пока не начнут писать в неё).
Иными словами: есть базовое состояние Map<K, V>. От него делаем fork. Получаем ещё одну копию Map, но все модификации оно складывает куда-нибудь к себе, а get запросы проверяет в двух местах.
——
И, да, я занаю про persistent maps (dexx collections и это всё), но там скорость работы обычно никакая.
Я писал UnmodifiableHashMap, в сорцах Идейки есть. Там хэш-таблица копируется каждую четвёртую вставку, до трёх элементов хранится в полях. Соответственно в мэпках до трёх элементов вообще нет хэш-таблиц. В том месте, для которого я это писал, перформанс вырос в разы по сравнению с постоянным копированием THashMap при каждой вставке. Я остался доволен и копать науку в этой области не стал.