Bug#573966: ITP: syncache -- Thread-safe time-limited cache for Ruby
Package: wnpp
Severity: wishlist
Owner: Dmitry Borodaenko <angdraug@debian.org>
* Package name : syncache
Version : 1.0
Upstream Author : Dmitry Borodaenko <angdraug@debian.org>
* URL : http://samizdat.nongnu.org/
* License : GPL3+
Programming Lang: Ruby
Description : Thread-safe time-limited cache for Ruby
SynCache stores cached objects in a Hash that is protected by an advanced
two-level locking mechanism which ensures that:
.
* Multiple threads can add and fetch objects in parallel.
* While one thread is working on a cache entry, other threads can access
the rest of the cache with no waiting on the global lock, no race
conditions nor deadlock or livelock situations.
* While one thread is performing a long and resource-intensive
operation, other threads that request the same data will be put on hold,
and as soon as the first thread completes the operation, the result will be
returned to all threads.
This was previously part of libsamizdat-ruby package, now it's released
as a separate module upstream, so it can be packaged in its own source
package in Debian. Apart from the obvious benefit of allowing to use
this module (and the syncache-drb server) without other parts of
Samizdat, it allowed me to build libsyncache-ruby1.9.1 that can be used
with Ruby 1.9 even though Samizdat itself depends on some libraries that
are only packaged for Ruby 1.8 (rmagick, mahoro, algorithm-diff).
--
Dmitry Borodaenko
Reply to: