Gnus development mailing list
 help / color / mirror / Atom feed
From: David Engster <deng@randomsample.de>
To: ding@gnus.org
Subject: Re: Abandoning the concept of groups as a storage medium?
Date: Mon, 04 May 2009 13:07:20 +0200	[thread overview]
Message-ID: <kz3abl5dp3.fsf@randomsample.de> (raw)
In-Reply-To: <86zldyhrgy.fsf@lifelogs.com> (Ted Zlatanov's message of "Thu, 30 Apr 2009 14:27:41 -0500")

Ted Zlatanov <tzz@lifelogs.com> writes:
> On Tue, 28 Apr 2009 10:56:39 +0200 David Engster <deng@randomsample.de> wrote: 
>
> DE> Jan Rychter <jan@rychter.com> writes:
>>> I want to be able to set flags and tags on *any* E-mail message
>>> *anywhere*, not just in the "real group it belongs to". I don't want
>>> my "groups" to have anything to do with the way my messages are
>>> stored. E-mail should be stored in a key/value store with metadata
>>> copied and indexed separately.
>>> 
>>> The problem I see with Gnus is that it is designed around a central
>>> concept of a mail backend which exposes groups. 
>
> DE> Yes, but I don't see this as a restriction for what you would like to
> DE> have. Gnus can handle "dynamic" groups, where the contents changes all
> DE> the time, although it requires a lot of work to get right. As you say,
> DE> nnmairix comes pretty close, and it strictly works with the Gnus group
> DE> back end API. My main problem with maintaining nnmairix is that the back
> DE> ends behave differently, especially when it comes to marks and unread
> DE> count.
>
> The big problem I see is that Gnus can't build groups asynchronously.
> Emacs Lisp itself is the impediment here.

That's why it better has to build those groups fast. ;-)

But you're right, of course. There has been some work on introducing
parallelism into Emacs Lisp on emacs-devel. Maybe Emacs 24 will have
something like that...

> DE> I think the registry should save all important headers of a message, and
> DE> maybe also some MIME information, like attachment names. Of course, as
> DE> Ted also said, this information can't be saved anymore in plain text
> DE> files like gnus.registry.eld, but needs some kind of external database
> DE> back end.
>
> DE> We could then add a back end which can create virtual groups based on
> DE> registry information. One could extend nnir to do that, but I'd vote for
> DE> creating a completely new one.
>
> nnregistry?

Makes sense. :-)

> group list: dynamic based on tags (labels) defined by user
> article list in group: generated on entry with a tag search
> article retrieve: uses the original article backend

Exactly. What makes this stuff difficult is that article numbers in Gnus
have to be unique, just like in IMAP. nnmairix "solves" this problem by
adding an offset to the article numbers each time a group is re-created.

> I'm definitely not going to get to it anytime soon, but if anyone else
> feels adventurous, I'll help out any way I can.

My guess is that most of the needed code already exists in nnir and
nnmairix. Unfortunately, I won't have time to do it either, at least not
in the coming months.

> DE> However, full text search is another matter entirely. This simply cannot
> DE> be done in Emacs Lisp.
>
> The index necessary for good search performance would be huge, but easy
> to store in a database (on a server, on IMAP, whatever).  It's easy to
> parallelize these searches (especially with IMAP as the backend).  So
> there's some hope.

Maybe. But just feeding such a database through Emacs Lisp would already
be a very time consuming task, considering the huge amount of mails many
people have (I have about 1GB, and I think this is pretty average).

-David



  reply	other threads:[~2009-05-04 11:07 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-25 10:05 Jan Rychter
2009-04-28  8:56 ` David Engster
2009-04-29 10:58   ` David Engster
2009-04-30 19:27   ` Ted Zlatanov
2009-05-04 11:07     ` David Engster [this message]
2009-05-08 18:18       ` Ted Zlatanov

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=kz3abl5dp3.fsf@randomsample.de \
    --to=deng@randomsample.de \
    --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).