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 | 1981 total (2 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] |