Gnus development mailing list
 help / color / mirror / Atom feed
From: Ted Zlatanov <tzz@lifelogs.com>
Cc: ding@gnus.org
Subject: Re: fast local-file storage for Gnus
Date: Tue, 03 Jun 2003 11:37:07 -0400	[thread overview]
Message-ID: <4nadcz895o.fsf@lockgroove.bwh.harvard.edu> (raw)
In-Reply-To: <rzq3cirzans.fsf@albion.dl.ac.uk> (Dave Love's message of "Tue, 03 Jun 2003 12:02:31 +0100")

On Tue, 03 Jun 2003, d.love@dl.ac.uk wrote:
> Ted Zlatanov <tzz@lifelogs.com> writes:
> 
>> it seems like a very simple feature to add BerkeleyDB/DBM
>> interfaces that can be configured at compile-time like a lot of
>> other GNU packages do (at least cfengine, that I know of),
> 
> [Ah, the cfengine libdb configuration nightmare...  You'd certainly
> have to do better than that!]

I'm sure the implementation will not be hard for people who know
autoconf well.  Emacs detects other optional libraries just fine.

> I don't know for sure, but I doubt rms would want to insist on libdb
> being available to build Emacs.  Otherwise, instances of Emacs
> wouldn't be able to run the Gnus distributed with it if you insist
> on such support.

Well, there are two options then: distribute Emacs with its own file
storage mechanism (not a bad thing, if it's optimized for Lisp data
structures), or bundle something with Emacs.  But I only want this
functionality optionally available; if Emacs doesn't find libdb for
instance maybe it can switch to something slower but universally
available such as plain text storage.  I really just want an API like
the one in XEmacs, and what happens behind the curtain is not my
concern.  That way, even a relational database could be accessed
transparently through the same mechanism; I'm definitely not
suggesting that as a goal though.

You mentioned dynamic loading, that would be nice too but could be a
problem if libdb is modified or removed.

>> Gnus could probably use fast file databases in aspects other than
>> the registry.
> 
> You haven't explained why this is necessary.  If just speed is the
> issue, how are Emacs hash tables too slow?

Hash tables are not persistent.  The Gnus newsrc.eld file, for
instance, converts a hashtable into an alist and saves that.  The
gnus-registry does the same thing with the registry hashtable.  It's
not a bad approach, but it can be slow with large alists.  I'm sure
there are other applications (BBDB, for instance) that could use this
functionality.

Here's what I want, in an ideal world: a new data structure called a
persistent-hashtable.  It should be configurable to save on every
modification or only when requested.  It can use the alist-to-file
conversion right now, there's no external linking needed.  Then,
optionally, it can load another backend, for instance BerkeleyDB or
(some day) a RDBMS gateway to a table with key-value columns.  Is this
possible?

Ted



  reply	other threads:[~2003-06-03 15:37 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-23 20:31 Ted Zlatanov
2003-05-24 11:08 ` Kai Großjohann
     [not found]   ` <84wuggy548.fsf@lucy.is.informatik.uni-duis?= =?iso-8859-15?q?burg.de>
2003-05-24 12:03     ` Matthias Andree
2003-05-24 13:22       ` Ted Zlatanov
2003-05-24 13:47         ` Matthias Andree
2003-05-24 13:36       ` Kai Großjohann
2003-05-30 13:28 ` Dave Love
2003-05-30 13:57   ` Josh Huber
2003-05-30 15:23     ` Ted Zlatanov
2003-06-03 11:02       ` Dave Love
2003-06-03 15:37         ` Ted Zlatanov [this message]
2003-06-12 22:25           ` Dave Love
2003-06-13 14:33             ` Ted Zlatanov
2003-06-17 22:06               ` Dave Love
2003-06-03 11:00     ` Dave Love
2003-06-03 13:35       ` Kai Großjohann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4nadcz895o.fsf@lockgroove.bwh.harvard.edu \
    --to=tzz@lifelogs.com \
    --cc=ding@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).