Fwd: [Haskell-cafe] ANNOUNCE: Data.TCache 0.5.1

Alberto G. Corona agocorona at gmail.com
Wed Oct 29 08:12:56 EDT 2008


---------- Forwarded message ----------
From: Alberto G. Corona <agocorona at gmail.com>
Date: 2008/10/29
Subject: Re: [Haskell-cafe] ANNOUNCE: Data.TCache 0.5.1
To: Joachim Breitner <mail at joachim-breitner.de>


I developed it in 2006. At this time I think that Happs did not used STM. I
do not know Happs.State very well. The main difference is that it is far far
simple (only a handfull of methods exported) it is configurable and permit
the full semantic of TVars without loosing content persistence.  Also, the
query is based on let´s say patterns. A pattern is a partilally filled
object. enough to deduce the key. the interface is very natural. For
example:


withResources [ User{ name= "Alberto"} , Product{ id="Playstation"}  buyIt
  where
  buyIt [Just user, Just product]=  [user{due= due user +price product},
product{ stock= stock product -1]]
  buyIt _ = error "either the user or the product not found"

Just prod <- getResource Product{ id="Playstation"}

bla bla bla

2008/10/29 Joachim Breitner <mail at joachim-breitner.de>

>  Hi,
>
> Am Dienstag, den 28.10.2008, 23:26 +0100 schrieb Alberto G. Corona :
>  > Data.Tcache is a transactional cache with configurable persistence. It
> > tries to simulate Hibernate for Java or Rails for Ruby. The main
> > difference is that transactions are done in memory trough STM. There
> > are transactional cache implementations for some J2EE servers like
> > JBOSS.
> >
> > TCache uses STM . It can  atomically apply a function to a list of
> > cached objects. The resulting objects go back to the cache
> > (withResources). It also can retrieve these objects (getResources).
> > Persistence can be syncronous (syncCache)  or asyncronous, wtih
> > configurable time between cache writes and configurable cache
> > clearance strategy. the size of the cache can be configured too . All
> > of this can be done trough clearSyncCacheProc. Even the TVar variables
> > can be accessed directly (getTVar) to acceess all the semantic of
> > atomic blocks while maintaining the persistence of the TVar updates.
> >
> > Persistence can be defined for each object.: Each object must have a
> > defined key, a default filename path (if applicable). Persistence is
> > pre-defined in files, but the readResource writeResource and
> > delResource methods can be redefined to persist in databases or
> > whatever.
>
> Interesting. Without much deep knowledge, this sounds similar to
> HAppS.State. Where are the differences?
>
> Greetings,
> Joachim
>
> --
> Joachim "nomeata" Breitner
>  mail: mail at joachim-breitner.de | ICQ# 74513189 | GPG-Key: 4743206C
>  JID: nomeata at joachim-breitner.de | http://www.joachim-breitner.de/
>  Debian Developer: nomeata at debian.org
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20081029/9d246c05/attachment-0001.htm


More information about the Haskell-Cafe mailing list