[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: