From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/75127 Path: news.gmane.org!not-for-mail From: Ted Zlatanov Newsgroups: gmane.emacs.gnus.general Subject: Re: gnus-sync ideas Date: Thu, 16 Dec 2010 11:19:15 -0600 Organization: =?utf-8?B?0KLQtdC+0LTQvtGAINCX0LvQsNGC0LDQvdC+0LI=?= @ Cienfuegos Message-ID: <87sjxxr5yk.fsf@lifelogs.com> References: <87zks9ecf7.fsf@dod.no> <87r5djxahm.fsf_-_@lifelogs.com> <871v5iviaq.fsf@lifelogs.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1292520018 12330 80.91.229.12 (16 Dec 2010 17:20:18 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 16 Dec 2010 17:20:18 +0000 (UTC) To: ding@gnus.org Original-X-From: ding-owner+M23482@lists.math.uh.edu Thu Dec 16 18:20:14 2010 Return-path: Envelope-to: ding-account@gmane.org Original-Received: from util0.math.uh.edu ([129.7.128.18]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PTHV0-00073A-4a for ding-account@gmane.org; Thu, 16 Dec 2010 18:20:14 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu) by util0.math.uh.edu with smtp (Exim 4.63) (envelope-from ) id 1PTHUL-0003Y0-W6; Thu, 16 Dec 2010 11:19:34 -0600 Original-Received: from mx1.math.uh.edu ([129.7.128.32]) by util0.math.uh.edu with esmtps (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1PTHUK-0003Xn-Oe for ding@lists.math.uh.edu; Thu, 16 Dec 2010 11:19:32 -0600 Original-Received: from quimby.gnus.org ([80.91.231.51]) by mx1.math.uh.edu with esmtp (Exim 4.72) (envelope-from ) id 1PTHUG-0001R5-K9 for ding@lists.math.uh.edu; Thu, 16 Dec 2010 11:19:32 -0600 Original-Received: from lo.gmane.org ([80.91.229.12]) by quimby.gnus.org with esmtp (Exim 4.72) (envelope-from ) id 1PTHUF-0004pq-Sz for ding@gnus.org; Thu, 16 Dec 2010 18:19:27 +0100 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1PTHUF-0006Xd-NE for ding@gnus.org; Thu, 16 Dec 2010 18:19:27 +0100 Original-Received: from 38.98.147.130 ([38.98.147.130]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 16 Dec 2010 18:19:27 +0100 Original-Received: from tzz by 38.98.147.130 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 16 Dec 2010 18:19:27 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 40 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: 38.98.147.130 X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6;d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT= D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx" User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/24.0.50 (gnu/linux) Cancel-Lock: sha1:EVODWkFYmg9R6ngMMEaOVbhUwfg= X-Spam-Score: -0.7 (/) List-ID: Precedence: bulk Xref: news.gmane.org gmane.emacs.gnus.general:75127 Archived-At: On Thu, 16 Dec 2010 17:08:07 +0100 Lars Magne Ingebrigtsen wrote: LMI> Ted Zlatanov writes: >> So, data-sync.el would let you: >> >> 1) choose a storage backend, which can be many things but will at least >> have the choice to be a file (which, of course, can use Tramp). >> >> 2) query a key and find out the latest value, data type, CAS key, and >> timestamp (you'd use the CAS key in the CAS ops below) >> >> 3) set a key with a data type (unconditionally or CAS) >> >> 4) delete a key (unconditionally or CAS) >> >> 5) merge data into a key with a data type and a policy (overwrite, >> prepend, append, set-if-present, set-if-absent) (unconditionally or CAS) >> >> 6) do all of the above as a batch LMI> If there's one thing that the nnimap experience shows, then it's that LMI> round trips kill you. So ideally the client would issue just one LMI> command, like LMI> GIVE-ME-DATA-CHANGED-SINCE 12167121621 LMI> and then we'd just get a stream of data back. LMI> So all CRUD operations to the store has to be timestamped and LMI> categorised for this to be fast, I think. All of the above can be batched, yes, and the query will have just one timestamp instead of one per key. LMI> As for how to actually store things like, say, the group topics... I LMI> don't really have a clear idea how that would actually look... ELisp, of course. It's just like reading them back from the newsrc.eld file. Ted