
Interesting. It seems similar to TCache. However the design is
different. persistent-map store different finite maps whenever any of
them are modified transactionally, while TCache handles a single
hashTable of object of type "a" and from time to time store all the
transactionally modified objects and rearange the hashTable size.
2009/4/19 Peter Robinson
The persistent-map package [1] provides a thread-safe (STM) frontend for finite map types together with a backend interface for persistent storage. The TMap data type is thread-safe, since all access functions run inside an STM monad . Any type that is an instance of Data.Edison.Assoc.FiniteMapX (see EdisonAPI) can be used as a map type.
If a TMap is modified within an STM transaction, a corresponding backend IO-request is added using the onCommit hook (cf. stm-io-hooks package). To ensure consistency, the (Adv)STM monad runs these requests iff the transaction commits. Additional backends (e.g. HDBC) can be added by instantiating class Backend.
Cheers, Peter
[1] http://hackage.haskell.org/cgi-bin/hackage-scripts/package/persistent-map _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell