[ANN] memcachedb 1.0.0 beta is released, new feature ready and big performance improved

Steve Chu stvchu at gmail.com
Thu Feb 14 04:04:27 UTC 2008


On Feb 14, 2008 11:47 AM, Brad Fitzpatrick <brad at danga.com> 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 <stvchu at gmail.com> 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


More information about the memcached mailing list