tbox: Transactional variables and data structures with IO hooks
This package provides STM data structures with IO hooks.
The basic building blocks are instances of class TBox
. Such an
instance is an STM variable that might contain a value of
some type a
. In contrast to a plain 'TVar (Maybe a)', a
TBox
has IO hooks that are executed transparently on writes and reads.
The IO hooks of the AdvSTM
monad extend the atomicity of STM transactions
to the on-commit IO actions, which makes it particularly suitable for
implementing a persistent and thread-safe storage.
See module Control.Concurrent.TFile for a (simple) instance of a TBox
that serializes its content to a file via Data.Binary
.
New in this release is the implementation of a skip list in module
Control.Concurrent.TBox.TSkipList. A skip list is a probabilistic data
structure that provides expected run time of O(log n) for
dictionary operations (insert, lookup, filter, delete, update) similar to
a balanced tree.
The main advantage of a skip list is that it does not need rebalancing,
which could cause lots of contention among transactions.
The TFile
skip list instance tries to reconstruct its content from the
TFile
-directory. See module Control.Concurrent.TFile.TSkipList for a
usage example.
Feedback is highly appreciated!
Modules
[Index]
Downloads
- tbox-0.1.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.0.0, 0.1.0 |
---|---|
Dependencies | array (>=0.2 && <0.4), base (>=4 && <5), binary (>=0.5 && <0.6), cautious-file (>=0.1.5 && <0.2), containers (>=0.2.0.1 && <0.4), directory (>=1.0.0.3 && <1.1), filepath (>=1.1 && <1.2), IfElse (>=0.85 && <1), monad-loops (>=0.3.0.2 && <0.4.0.0), mtl (>=1.1.0.2 && <1.2), random (>=1.0.0.1 && <1.1), safe-failure (>=0.4.0 && <0.5), stm-io-hooks (>=0.6.0 && <0.7) [details] |
License | LicenseRef-LGPL |
Author | Peter Robinson 2009, 2010 |
Maintainer | Peter Robinson <thaldyron@gmail.com> |
Category | Data, Concurrency |
Home page | http://darcs.monoid.at/tbox |
Uploaded | by PeterRobinson at 2010-04-02T19:43:24Z |
Distributions | |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Downloads | 1948 total (3 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |