hi,

skiplist looks fine, but this algorithm still produce significant delay 
if implemented "online".

check this for some stats:
http://www.csihq.com/CSI/pub_Skip.shtml

A couple of mounths back someone contributed the (IMHO great) idea of 
implementing a daemon that takes care of updating the database assync. 
This as several advantages:
- abstraction layer between the main programs and the DB;
- easy of writing new DB plugins (skiplist, mysql, berkeleyDB, ...);
- *very high* response time for write operations;
- the daemon can optimize the writes to the DB;
- the daemon keeps a WAL (log) of to-do operations, so the layer is 
reliable in terms of replies to the main program and writes to the DB;
- simple communication "dialect" between the main program and the daemon.

Do you have some thoughts about this that i'm overlooking?
For big installations this seems to be the perfect (?) answer :)

Regards,
Nuno Silva


Jeremy Howard wrote:

> On Mon, 04 Feb 2002 20:15:22 -0500
> Walter Wong <[EMAIL PROTECTED]> wrote:
> 
>>>With the release of Cyrus IMAP 2.1.2 there will be a new backend option:
>>>skiplist.
>>>
>>>We have already moved our development system to use it and performance
>>>seems very good. I expect we'll be moving our production system to it
>>>within a few months. It should not suffer from the same problems with
>>>insert/modify operations that the flat file has and it has better list
>>>speed than DB.
>>>
>>>
> Wow! I'd never come across the skiplist before, but I've just done some
> reading and it looks like a great algorithm! :-)
> 
> Not only is it faster than b-trees because of not having to rebalance, but
> the code can be way simpler because deletions are so much easier.
> 
> Are you going to use an existing library, or write your own? Does this mean
> that BDB is not required for installs that use the skiplist backend? Will
> the backend be used for seen dbs? ...mailboxes db? ...header caches?
> ...anything else?
> 
> 
> 


Reply via email to