On Feb 14, 2008 11:47 AM, Brad Fitzpatrick <[EMAIL PROTECTED]> wrote: > Can you describe your concurrency & threading model? > The thread is almost same with memcached 1.2, several thread started and every thread fires a event base. I have not changed thread.c much. I know this model only resolve the blocked I/O a bit(still blocked when all 4 or more threads blocked, RoundRobin can not decide which thread is blocked), but for persistent(not for cache), the performance is enough.
> Do you also use the slabs in memcached to cache hot items, avoiding BDB, or > only use BDB? We completely use the BerkeleyDB's in-mem cache, and no slabs is used. > How do you prevent cold items (requiring disk seeks) to not > starve hot reads (either in memcached or BDB's in-memory cache)? BerkeleyDB takes care all things, and the page swap algorithm in BDB is not that bad. The I/O is a pay that we must face when we do persistent things, so we try to make it faster, but not wanna it fast with memory accessing. > > > > > On Feb 13, 2008 7:43 PM, Steve Chu <[EMAIL PROTECTED]> wrote: > > After two weeks testing, we are ready to ship 1.0.0-beta to the public > > domain. 1.0.0 version has been entirely written based on memcached > > 1.2.x code base. Here's ChangLog: > > > > * Almost entire code is rewritten based on Memcached 1.2.x. > > * More memcache protocol compatibility, now multiple get and flags > > are supported, also udp and unix socket is ready(not yet tested). > > * Big performance improved due to memcached 1.2.x code base. > > Thread is used to resolve the blocked I/O. > > * Use standard build tool, "./configure;make;make install" and done. > > * Two new pravite command for replication to set/get priority. See > > "doc/replication.txt". > > > > The banchmark of Memcachedb-1.0.0-beta can be found in > > <http://code.google.com/p/memcachedb/wiki/Benchmark>. > > > > Here's summary: > > 8 concurrents, every process does 2,000,000 get/set with a 16 bytes > > key and 100 bytes value on a Dell 2950 box > > Non-thread Edition: 18868 w/s, 44444 r/s > > Thread Edition(4 Threads): 23564 w/s, 64257 r/s > > > > Download it here: > > <http://memcachedb.googlecode.com/files/memcachedb-1.0.0-beta.tar.gz> > > > > See more info, please visit: <http://code.google.com/p/memcachedb/> > > > > ==================================================================== > > > > What is Memcachedb? > > > > Memcachedb is a distributed key-value storage system designed for > > persistent. It is not a cache solution, but a persistent storage for > > high-frequency writing and reading. It conforms to memcache > > protocol(not completed, see below), so any memcached client can have > > connectivity with it. Memcachedb uses Berkeley DB as a storing > > backend, so lots of features including transaction and replication are > > supported. > > Memcachedb Features > > > > * High performance read/write for a key-value based object > > * High reliable persistent storage with transcation > > * High availability data storage with replication > > * Memcache protocol compatibility > > > > Supported memcache command > > > > * get(also mutiple get) > > * set, add, replace > > * incr, decr > > * delete > > * stats > > > > Private commands > > > > * db_checkpoint > > * db_archive > > * rep_ismaster > > * rep_whoismaster > > * rep_get_priority > > * rep_set_priority > > > > Some Warning > > > > Expire time has been discarded in memcachedb(we are for persistent:p), > > so you should not use any corresponding features of clients. The > > daemon does nothing while you give a expire time of item. > > > > We Stand on the shoulders of giants, Memcachedb source code is based > > on Memcached. > > > > -- > > Steve Chu > > http://stvchu.org > > > > -- Steve Chu http://stvchu.org
