Я ищу поточно-ориентированные структуры данных, которые имеют интерфейс, аналогичный Data.Map
, т. Е. Поддерживают быстрые insert
, lookup
, delete
операции. Под «потокобезопасным» я подразумеваю, что эти операции атомарны / линеаризуемыЯ знаю, что мог бы просто использовать
data MyThreadSafeDS k a = MyThreadSafeDS (TVar (Map k a))
, но тесты показывают, что это работает очень плохо, когда несколько потоков пытаются одновременно выполнять вставку / удаление. Интересно, что использование MVar
дает худшие результаты в этом контексте.
Справочная информация: Я написал параллельную хэш-таблицу , и я ищу другие поточно-ориентированные структуры данных для включения в мойрезультаты тестов. Я знаю о хеш-таблицах , которые не кажутся поточно-ориентированными.