A Transactional cache with user-defined persistence

Version on this page:0.12.1
LTS Haskell 22.30:0.13.3
Stackage Nightly 2022-03-17:0.12.1
Latest on Hackage:0.13.3

See all snapshots TCache appears in

BSD-3-Clause licensed by Alberto Gómez Corona
Maintained by [email protected]
This version can be pinned in stack with:TCache-0.12.1@sha256:d689256d44e972c1fc0907c372994769e91127f627767a0e41ebd2163a2d33f1,3701

TCache is a transactional cache with configurable persitence. It allows conventional STM transactions for objects that syncronize with their user-defined storages. State in memory and into permanent storage is transactionally coherent.

It has interface defined for Amazon WS and Yesod Persistent backends defined in tcache-backend packages. Persistent is a multi-backend interface for SQL and non SQL databases such in Mongo-db

The package implements serializable STM references, access by key and by record field value, triggers, full text and field indexation, default serialization and a query language based on record fields

Since the STM references can be included in data structures and serialized, this is right for graph databases and other NoSQL databases.

  1. 12.0 space in index data in indexQuery.hs and IndexText.hs triggered errors in the AWS backend. The space has been changed by -. So rename the "index *" files in the TCache folder in order to be recognized.

  2. 11.0.0 added setIndexParsist to define persistence for indexes by type. started the addition of readDBRefs, readResources and so on for simultaneous read, writes and deletes of objects of the same type.

  3. 10.2.0 Added setDefaultPersist and modified the signature of setPersist in Data.TCache.DefaultPersistence. Fixed issues with ghc 7.6.3

  4. 10 version add memoization and a persistent and transactional collection/queue.

  5. 10.0.8 subversion add cachedByKeySTM

  6. 10.0.9 fixed an error in clearSyncChacheProc and SynWrite Asyncronous that checked the cache continuously

See Data.TCache for details

In this release:

Dropped Data.Hashtable (deprecated). Now it uses the package hashtables