Я ищу библиотеку словаря ключа -> значения, написанную на C, которая поддерживает теоретически неограниченное количество дешевых транзакций.
Я хотел бы иметь один словарь в памяти, с сотнями потоков, начинающих транзакции, возможно, изменяющих словарь, заканчивающих (завершающих) транзакцию или потенциально прерывающих транзакцию. Только 50% времени эти темы действительно изменяют словарь.
Большинство реализаций словарных транзакций, которые я видел, копируют всегда, а не копируют при записи, всякий раз, когда транзакция начинается. Учитывая ожидаемый размер (> 1 ГБ) словаря, я надеюсь найти что-то, что COWs, только когда что-то действительно изменяется во время транзакции. Я также надеюсь на что-то, что упаковано большинством основных дистрибутивов GNU / Linux.
Любые предложения или ссылки очень приветствуются.