Gnus development mailing list
 help / color / mirror / Atom feed
From: Dan Christensen <jdc@uwo.ca>
To: ding@gnus.org
Subject: Re: I can haz cloud idea
Date: Sun, 19 Feb 2012 17:15:16 -0500	[thread overview]
Message-ID: <874numii6j.fsf@uwo.ca> (raw)
In-Reply-To: <82fwe6d7j4.fsf@gmail.com>

Andy Moreton <andrewjmoreton@gmail.com> writes:

> Please, please do *not* add more stuff to .newsrc.eld. 

I agree.

> That file is already over-complex, and trying to do too many
> things. Keep things simple and unixy - a single responsibility for
> each file.

Moreover, as soon as you have multiple clients sharing data, you are
bound to get into a situation where some merging is required.  (E.g.
I go to work and learn that my home machine hasn't synced;  I've got
to get work done, so I've got to make changes at work as well.)
Merging is generally easier when things are stored in logically
separate containers.

In addition, updating single "records" should be fast, and if everything
is stored in the .newsrc.eld on an abstract filesystem, that's hard, and
you have to resort to storing diffs, etc, to be efficient.

Even more, it's doubtful that I'm going to want to sync the full 
.newsrc.eld, since on some machines I'll access different servers.
Sync/cloud should be configured separately for each backend, if
only for efficiency.

I'm also not sure that a DCVS is a magic bullet here, since we're
going to need problem specific merging and updating.  For example,
Gnus should remember the last state it saw on the server, and 
propagate changes back and forth, rather than copying over the
new data (in case it has also been changed by another client).

I haven't looked into it closely, but doesn't Ted's gnus-sync framework
seem like a good basis for continued development?  This really seems to
me to fit into the database point of view.

I also have to say that I always liked the idea of having the backends
store marks.  It allows naive methods of syncing and backup to just
work, and it makes the backends behave more like nnimap which is now
becoming one of the most used backends.

I feels to me like the syncing gnus already has to do between it's
knowledge of the marks in an nnimap group and the remote server's
knowledge is really similar to what needs to happen for other backends
in a cloud set-up.  This is also closely related to the
plugged/unplugged/agent feature.  Can all of this be merged into one
concept?

0) Gnus doesn't store any marks in the .newsrc.eld.
1) On startup, Gnus asks the backend for the marks, and displays the group.
2) As the user changes things, Gnus keeps track of the changes made
   to marks.
3) As various intervals, Gnus syncs the changes to the backend.
   Being "unplugged" which just mean deferring any syncs.

The user could configure the backend to be nnimap, which already
handles storing the marks on a server.

Or the user could configure the backend to be nnml, with marks
just stored locally.

Or the user could configure the backend to be nnml, with marks
stored on a server (e.g. Ted's LeSync idea, or some other remote
storage).

It really seems like getting all the marks out of .newsrc.eld
and putting them in the backends would unify many ideas in Gnus.
(And by default, servers could just store marks in a file
like .newsrc.server-name.eld, using nnoo common code, so there
wouldn't need to be code duplication in the backends.  Even
the default syncing code could be in common, but overridden
by servers like nnimap that have a custom way to store marks.)

Dan




  reply	other threads:[~2012-02-19 22:15 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-16  5:03 Lars Ingebrigtsen
2012-02-16  6:49 ` Lars Ingebrigtsen
2012-02-16  8:19   ` Antoine Levitt
2012-02-16  9:27   ` Steinar Bang
2012-02-16  9:35     ` Lars Ingebrigtsen
2012-02-16  7:00 ` Vegard Vesterheim
2012-02-17 17:49   ` Richard Riley
2012-02-19 15:21     ` Lars Ingebrigtsen
2012-02-19 18:04       ` Andy Moreton
2012-02-19 22:15         ` Dan Christensen [this message]
2012-02-20  7:41           ` Lars Ingebrigtsen
2012-02-20 19:20             ` Dan Christensen
2012-03-10  1:18               ` Lars Magne Ingebrigtsen
2012-02-20  7:37         ` Lars Ingebrigtsen
2012-02-20  7:51           ` Lars Ingebrigtsen
2012-02-19 19:03       ` Adam Sjøgren
2012-02-21 21:23       ` Ted Zlatanov
2012-03-10  1:12         ` Lars Magne Ingebrigtsen
2012-03-10 12:43           ` Reiner Steib
2012-03-10 13:06           ` Ted Zlatanov
2012-07-18 14:31             ` Ted Zlatanov
2012-07-18 20:52               ` Steinar Bang
2012-02-16  8:25 ` David Engster
2012-02-16  9:12   ` Lars Ingebrigtsen
2012-02-16  9:23     ` David Engster
2012-02-16  9:29       ` Steinar Bang
2012-02-16  9:25   ` Steinar Bang
2012-02-16 11:55   ` Greg Troxel
2012-02-16 12:23     ` David Engster
2012-02-16 12:54     ` Ted Zlatanov
2012-02-16 12:51   ` Ted Zlatanov
2012-02-16 13:07 ` Ted Zlatanov
2012-02-20  7:48   ` Lars Ingebrigtsen
2012-02-25  9:46     ` Steinar Bang
2012-03-10  1:07       ` Lars Magne Ingebrigtsen
2012-03-03  3:20 ` TSUCHIYA Masatoshi
2012-03-10  1:06   ` Lars Magne Ingebrigtsen
2014-10-15 23:31 ` TSUCHIYA Masatoshi
2014-10-16  8:34   ` Steinar Bang
2014-10-16 12:38   ` 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=874numii6j.fsf@uwo.ca \
    --to=jdc@uwo.ca \
    --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).