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
next prev parent 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).