ttrie: Contention-free STM hash map

[ concurrency, library, mit ] [ Propose Tags ]

A contention-free STM hash map. "Contention-free" means that the map will never cause spurious conflicts. A transaction operating on the map will only ever have to retry if another transaction is operating on the same key at the same time.

This is an implementation of the transactional trie, which is basically a lock-free concurrent hash trie lifted into STM. For a detailed discussion, including an evaluation of its performance, see Chapter 4 of my master's thesis.


[Skip to Readme]
Versions 0.1, 0.1.0.0, 0.1.1, 0.1.2, 0.1.2.1 (info)
Change log changelog.md
Dependencies atomic-primops (>=0.6), base (>=4.7 && <5), hashable (>=1.2), primitive (>=0.5), stm (>=2) [details]
License MIT
Copyright (c) 2014-2015 Michael Schröder
Author Michael Schröder
Maintainer mc.schroeder@gmail.com
Category Concurrency
Home page http://github.com/mcschroeder/ttrie
Bug tracker http://github.com/mcschroeder/ttrie/issues
Source repo head: git clone https://github.com/mcschroeder/ttrie.git
Uploaded by MichaelSchroeder at Sat Nov 7 22:33:36 UTC 2015
Distributions LTSHaskell:0.1.2.1, NixOS:0.1.2.1, Stackage:0.1.2.1, openSUSE:0.1.2.1
Downloads 1551 total (22 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2015-11-13 [all 2 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for ttrie-0.1.2.1

[back to package description]

A contention-free STM hash map for Haskell.

"Contention-free" means that the map will never cause spurious conflicts. A transaction operating on the map will only ever have to retry if another transaction is operating on the same key at the same time.

This is an implementation of the transactional trie, which is basically a lock-free concurrent hash trie lifted into STM. For a detailed discussion, including an evaluation of its performance, see Chapter 3 of my master's thesis.