Re: [Storagesync] Storagesync Digest, Vol 5, Issue 1

"Fei Song" <fsong@bjtu.edu.cn> Fri, 04 December 2015 02:06 UTC

Return-Path: <fsong@bjtu.edu.cn>
X-Original-To: storagesync@ietfa.amsl.com
Delivered-To: storagesync@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 063491AD377 for <storagesync@ietfa.amsl.com>; Thu, 3 Dec 2015 18:06:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 4.478
X-Spam-Level: ****
X-Spam-Status: No, score=4.478 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, CN_BODY_35=0.339, J_CHICKENPOX_44=0.6, MIME_8BIT_HEADER=0.3, MIME_BASE64_BLANKS=0.001, MIME_CHARSET_FARAWAY=2.45, RCVD_IN_PSBL=2.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IqjVUdsDp4fA for <storagesync@ietfa.amsl.com>; Thu, 3 Dec 2015 18:06:24 -0800 (PST)
Received: from bjtu.edu.cn (mail.bjtu.edu.cn [218.249.29.198]) by ietfa.amsl.com (Postfix) with ESMTP id 720C61AD375 for <storagesync@ietf.org>; Thu, 3 Dec 2015 18:06:23 -0800 (PST)
Received: from PC-201001061KKK (unknown [211.71.74.217]) by Jdweb4 (Coremail) with SMTP id eJ5wygB3Wjy59WBWrxQHAA--.15931S2; Fri, 04 Dec 2015 10:08:57 +0800 (CST)
Date: Fri, 04 Dec 2015 10:06:18 +0800
From: Fei Song <fsong@bjtu.edu.cn>
To: Linhui Sun <lh.sunlinh@gmail.com>, Hugo González Labrador <ietf@hugo.labkode.com>
References: <mailman.108.1449000023.26068.storagesync@ietf.org> <1449004445.2745758.455126129.5028FD2B@webmail.messagingengine.com> <CAO_YprZhCmUxEf=aGCYL=+CLbjUoD1ifpDFsrS7N40Npo4wr+w@mail.gmail.com> <1449050174.3667910.455617161.12EEE3C5@webmail.messagingengine.com> <1449051540970-b577e6c2-393e54ef-bbe05be4@gmail.com> <1449052128.3674794.455635937.667C3E1F@webmail.messagingengine.com> <CAPpPfeAdrCZcsYZo7=W6N14K4F2LutXN8BFTetikzKZSr8+vVA@mail.gmail.com> <1449060218.3721231.455737161.5D657D6D@webmail.messagingengine.com> <CAO_YprYp+cdCPQ1pEUJLcCh0uQL_mu-Y=MJOA7Oh92TWrM_tWQ@mail.gmail.com> <1449061417.3729762.455755681.08D95D5B@webmail.messagingengine.com> <CAO_Ypra_PWf0Uxt2Rbp_k49hDdjq1zvTQs9qkeZqRo0v0E3+=g@mail.gmail.com> <CAPpPfeDeaTDUqNuQtiTwtWvf_3uUXNY6DTUOeRbOokf6En408A@mail.gmail.com> <CAO_Yprb0LzCmSU42BS=dnm66U+ACSbScmDDKxSGLYqDQ5uD2aA@mail.gmail.com> <CAPpPfeBFfwD3NU0Y_zSFQdsT1o3HO1-Cd5RpokOzBVUa-3fC4Q@mail.gmail.com> <52aa75c9.2c03.15167034cd6.Coremail.fsong@bjtu.edu.cn> <CA PpPfeB1KBmsWyCfsk8a+9gx3caek4V2oJrPjZbMV6kbZCVwjg@mail.gmail.com> <5ca31214.2c3d.151672efcf7.Coremail.fsong@bjtu.edu.cn> <1449136149.4121117.456781881.1C2D2EA8@webmail.messagingengine.com>, <CAO_YprYBNdpWAQGk7+qBSQqAx42VwXdgn2VXqFUCedQhLd2oNg@mail.gmail.com>
X-Priority: 3
X-Has-Attach: no
X-Mailer: Foxmail 7.0.1.91[cn]
Mime-Version: 1.0
Message-ID: <2015120410061804681024@bjtu.edu.cn>
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64
X-CM-TRANSID: eJ5wygB3Wjy59WBWrxQHAA--.15931S2
X-Coremail-Antispam: 1UD129KBjvAXoW3ur4xuFWrtryrur1DGr18Grg_yoW8Wr1xWo WfZrs2kw4xKr18WF4qkasrCa97Wa4Ykw18Aryqqw1UCFnYqaya9w4UCw4kWFZayr1UWr4U Ja48Xay3ZFWvqa4fn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73VFW2AGmfu7bjvjm3 AaLaJ3UjIYCTnIWjp_UUUYy7k0a2IF6F4UM7kC6x804xWl14x267AKxVWUJVW8JwAFc2x0 x2IEx4CE42xK8VAvwI8IcIk0rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj4 1l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4U JVW0owA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oV Cq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0 I7IYx2IY67AKxVWUGVWUXwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r 4UM4x0Y48IcxkI7VAKI48JM4xvF2IEb7IF0Fy264kE64k0F24lFcxC0VAYjxAxZF0Ex2Iq xwCY02Avz4vE14v_Gr1l42xK82IYc2Ij64vIr41l4IxYO2xFxVAFwI0_Jrv_JF1lx2IqxV Aqx4xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r12 6r1DMIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6x kF7I0E14v26r1j6r4UMIIF0xvE42xK8VAvwI8IcIk0rVWrJr0_WFyUJwCI42IY6I8E87Iv 67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJwCE64xvF2IEb7IF0Fy7Yx BIdaVFxhVjvjDU0xZFpf9x07j0OJOUUUUU=
X-CM-SenderInfo: aytwlqpemw3hxhgxhubq/
Archived-At: <http://mailarchive.ietf.org/arch/msg/storagesync/w4z5GyRw-W01k57cnIVbIxVaFIY>
Cc: storagesync <storagesync@ietf.org>, Michiel de Jong <mbdejong@mozilla.com>, Fran?ois Kooman <fkooman@tuxed.net>
Subject: Re: [Storagesync] Storagesync Digest, Vol 5, Issue 1
X-BeenThere: storagesync@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: fsong <fsong@bjtu.edu.cn>
List-Id: Mechanisms to synchronize client file systems with Internet-based data storage services <storagesync.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/storagesync>, <mailto:storagesync-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/storagesync/>
List-Post: <mailto:storagesync@ietf.org>
List-Help: <mailto:storagesync-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/storagesync>, <mailto:storagesync-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 04 Dec 2015 02:06:27 -0000

Good suggestion, "Pros and Cons" is not a good option for discussion in current phase.

So until now we have
1. Whether it is suitable to build on WebDAV
2. WebDAV vs remoteStorage
3. Advantages vs disadvantages of WebDAV
Maybe option 1 is the result of option 3, just like "Pros and Cons" is the result of option 1.

What do you think, Hugo?

--------------
Fei Song
>2015-12-03 17:49 GMT+08:00 Hugo González Labrador <ietf@hugo.labkode.com>:
>
>> What is the best way to collect the advantages and drawbacks of WebDAV vs
>> remoteStorage ?
>>
>> I propose to create a GitHub instead of/in addition to specify the
>> differences here. I think is clear to show this info in something like a
>> table on GitHub instead of in a series of mail messages.
>>
>That is a good way to discuss, but I think we should not saying the pros or
>cons, it's just about applicability here. A discussion about whether it is
>suitable to build on WebDAV is better.
>
>Regards,
>Linhui
>
>>
>> I can create the repo if it is okay for you.
>>
>> Best,Hugo
>>
>>
>> On Thu, Dec 3, 2015, at 10:31 AM, fsong@bjtu.edu.cn wrote:
>>
>> Great!
>>
>>
>>
>> -----原始邮件-----
>> *发件人:* "Michiel de Jong" <mbdejong@mozilla.com>
>> *发送时间:* 2015年12月3日 星期四
>> *收件人:* fsong@bjtu.edu.cn
>> *抄送:* "Linhui Sun" <lh.sunlinh@gmail.com>, storagesync <
>> storagesync@ietf.org>, fkooman <fkooman@tuxed.net>, "Hugo González
>> Labrador" <ietf@hugo.labkode.com>
>> *主题:* Re: [Storagesync] Storagesync Digest, Vol 5, Issue 1
>>
>> Yes! I'll discuss with Francois how we can make these boundaries clearer.
>> Maybe we can split along these lines:
>> * upload/manipulate/query/download protocol (e.g. WebDAV or the
>> GET/PUT/DELETE operations we currently define)
>> * CORS or other cross-origin access mechanism, OAUTH or other auth
>> mechanism, WebFinger or other discovery mechanism, ETag or other versioning
>> mechanism
>> * chunking/deduping/delta-updates
>>
>> And the remoteStorage spec should probably only define the middle part.
>>
>>
>> On Thu, Dec 3, 2015 at 9:44 AM, <fsong@bjtu.edu.cn> wrote:
>>
>> Hi Michiel and Linhui,
>>
>> I think it will be good to have a boundary for this draft and leave some
>> work for the applicaiton layer~
>>
>> -----原始邮件-----
>> *发件人:* "Michiel de Jong" <mbdejong@mozilla.com>
>> *发送时间:* 2015年12月2日 星期三
>> *收件人:* "Linhui Sun" <lh.sunlinh@gmail.com>
>> *抄送:* storagesync <storagesync@ietf.org>, fkooman <fkooman@tuxed.net>,
>> "Hugo González Labrador" <ietf@hugo.labkode.com>
>> *主题:* Re: [Storagesync] Storagesync Digest, Vol 5, Issue 1
>>
>> Ah sure, that's entirely appropriate, remoteStorage treats both the
>> Content-Type header value and the actual body of a document as opaque
>> strings of bytes. It doesn't "care" if you use it to store only data blocks
>> that are chunks of something else.
>> For instance, you could have a folder on a user's storage that contains
>> only inode-like JSON-documents, which list the URLs of binary documents
>> that make up 1Kb blocks of the actual data. Nice for deduping, delta
>> updates, and also renaming files without reuploading their content.
>>
>> But yeah, the argument is that *how* to create and manage these chunks, is
>> then still left up to the application developer (or to another spec on top
>> of the remoteStorage spec).
>>
>>
>> Cheers,
>> Michiel.
>>
>> On Wed, Dec 2, 2015 at 3:29 PM, Linhui Sun <lh.sunlinh@gmail.com> wrote:
>>
>> Hi
>>
>> 2015-12-02 22:05 GMT+08:00 Michiel de Jong <mbdejong@mozilla.com>:
>>
>> Cool! I created https://github.com/remotestorage/spec/issues/137 about
>> the need for  MOVE verb.
>> Application-level chunking is partially supported by HTTP itself through
>> `Content-Range` headers (although it's not clear whether these are allowed
>> on PUT requests as well as on GET requests, see
>> https://github.com/remotestorage/spec/issues/131). The problem is that
>> HTTP defines versioning at the document level, you cannot ask a server to
>> produce or check an ETag for a specific byte-range of a document, only for
>> the entire document.
>>
>>
>> Actually what I'm saying is a chunking before transmitting (using http),
>> in this way, they are treated as individual documents from the standpoint
>> of http. But I don't know whether this is appropriate for remoteStorage,
>> just a comment.
>>
>> Regards,
>> Linhui
>>
>>
>> A comparison document sounds good! See also
>> http://www.servicedenuages.fr/en/generic-storage-ecosystem.
>>
>>
>> Cheers,
>> Michiel.
>>
>>
>> On Wed, Dec 2, 2015 at 2:32 PM, Linhui Sun <lh.sunlinh@gmail.com> wrote:
>>
>> That's cool for me, a separate section for this might make sense.
>>
>> Another thing is do we need to include an application-layer chunking here
>> (not just for a browser sync), since if we want to further extend other
>> capabilities it is essential.
>>
>> Regards,
>> Linhui
>>
>> 2015-12-02 21:03 GMT+08:00 Hugo González Labrador <ietf@hugo.labkode.com>:
>>
>>
>> I propose to come up with a list of advantages and disadvantages of using
>> WebDAV and compare them against a JSON/REST based approach, like
>> remoteStorage.
>>
>> Does it sound good ?
>>
>>
>> On Wed, Dec 2, 2015, at 01:59 PM, Linhui Sun wrote:
>>
>>
>>
>> 2015-12-02 20:43 GMT+08:00 Hugo González Labrador <ietf@hugo.labkode.com>:
>>
>>
>>
>>
>>
>>
>> On Wed, Dec 2, 2015, at 01:30 PM, Michiel de Jong wrote:
>>
>> Hi all!
>> Thanks for all your reactions to the remoteStorage Internet-Draft.
>>
>> We get the question about WebDAV a lot, in the next version we should add
>> a remark about it in the intro. The folder descriptions returned when you
>> GET a URL that ends with a / are indeed a deviation from the XML returned
>> by WebDAV server, and this is just because nowadays JSON is easier to use
>> than XML for developers, both client-side and server-side.
>>
>>
>>
>> I totally agree here, this was going to happen soon or later and it is
>> really appreciated.
>>
>>
>>
>> The fact that we don't require servers to support WebDAV's custom verbs
>> like PROPPATCH etc. is for three reasons:
>> 1) it's a lot of work to implement this without using an existing WebDAV
>> library
>> 2) in practice, a lot of WebDAV servers get it wrong, or don't implement
>> all of WebDAV. It's very annoying for client implementers to have to deal
>> with servers that e.g. chose not to implement LOCK and UNLOCK.
>> 3) we don't really need all these advanced features on top of standard
>> HTTP, just supporting GET/PUT/DELETE for resources, and adding a simple
>> folder description format, is enough for most applications.
>>
>> Other than that, the remoteStorage Internet-Draft specifies a *lot* more
>> than just how each HTTP verb should behave:
>> * requiring support for OAuth implicit-grant flow
>> * requiring ETag support and nested versioning (i.e. the folder's ETag
>> changes if anything within that folder changes)
>> * requiring CORS headers
>> * requiring a WebFinger announcement for service discovery
>> It would be easy to add these three things on top of WebDAV, instead of
>> putting them on top of our minimal GET/PUT/DELETE API definition. In fact,
>> we could probably separate it into two Internet-Drafts: one for the
>> 'RESTful folders' API which is our simplification of WebDAV, and a second
>> one for OAuth/ETags/CORS/WebFinger on top of either WebDAV or 'RESTful
>> folders' or whatever other HTTP-based API you want.
>>
>>
>>
>> There is one requirement that all synchronisers need to handle: moving
>> resources. In this spec the alternative of a WebDAV MOVE is not specified.
>>
>> It is true that a MOVE could be replaced with a DELETE + UPLOAD but that
>> is not acceptable in most cases due to the inefficiency of such operation
>> (cpu, bandwidth consumption ...)
>>
>> Is there a plan to support such basic feature?
>>
>> From the current remoteStorage spec, the ownCloud sync protocol can be
>> implemented. The missing bit is tracking those remote moves.
>>
>> I agree with Hugo that MOVE is useful, sometimes if you just rename a file
>> it will be perfect. But the question I have is that whether we need to make
>> two documents? Multiple choices is not good for standardization. In my
>> view, webdav is something that we need to have a very clear decision on
>> whether to consider it or not.
>>
>> Regards,
>> Linhui
>>
>>
>>
>> Cheers
>>
>>
>> On Wed, Dec 2, 2015 at 11:28 AM, Hugo González Labrador <
>> ietf@hugo.labkode.com> wrote:
>>
>>
>>
>>
>>
>>
>> On Wed, Dec 2, 2015, at 11:18 AM, Linhui Sun wrote:
>>
>> Hi
>>
>> On 周三, 12月 2, 2015 at 17:56, Hugo González Labrador <ietf@hugo.labkode.com>
>> wrote:
>>
>>
>>
>>
>> On Wed, Dec 2, 2015, at 08:20 AM, Linhui Sun wrote:
>>
>> Hi
>>
>> 2015-12-02 5:14 GMT+08:00 Hugo González Labrador <ietf@hugo.labkode.com>:
>>
>> Hi,
>>
>> from my point of view the remoteStorage project addresses a subset of
>> the use cases of the  WebDAV specification.
>>
>> The main difference I can observe is that the specification is built on
>> REST instead of XML-based communication.
>>
>>
>> I personally like much more REST than WebDAV because it is more
>> developer friendly and it is faster to develop.
>>  Maybe the remoteStorage API becomes the next WebDAV :)
>>
>> However, the remoteStorage API does not provide a way of synchronising
>> data, this task is delegated to the developers.
>> Is there a plan to provide such feature based on the outcome of this
>> draft?
>>
>> I'm a little bit confused why you say the remoteStorage does not provide
>> that. Is that because remoteStorage does not perform like a typical sync
>> services (e.g. dropbox...) or you are saying something else?
>>
>> Yes, because it does not offer synchronisation capabilities.
>>
>> Got it. And What I am wondering is that do we need to include those
>> capabilities in a base specifications. Since it is hard to standardize the
>> capabilities like dedup or delta. Maybe a better way is to define those in
>> a separate specification,
>>
>>
>>
>>
>> Thanks for giving these examples - so by 'synchronisation capabilities'
>> you mean 1) deduplication and 2) delta updates? Anything else or is that an
>> exhaustive list?
>>
>>
>>
>> something like extensions. For a base document, we just need to define how
>> to perform sync operations.
>>
>>
>>
>> Yes, I agree that may be an extension of this draft could handle the
>> synchronisation part.
>>
>>
>>
>>
>>
>> Our Internet-Draft is heavily focused on the world wide web, whose URLs
>> are not content-addressable, we can't change that. So that architecture is
>> not very friendly to deduplication, compared to for instance BitTorrent. As
>> you already said, developers can still dedupe on the server-side when
>> storing blobs to disk, and can also dedupe on the client side before
>> creating the resources the client uploads.
>> As far as I know, delta updates are not supported by the ETag system - you
>> cannot do a range request to find out if certain bytes within a document
>> have changed. However, the folder system we define does encourage you, for
>> instance when you develop a To Do List app, put each task on its own
>> document, and then query the folder to see which of them changed, instead
>> of putting them all in one big document and retrieving the whole document
>> each time.
>>
>> Cheers,
>> Michiel.
>>
>>
>>
>>
>>
>>
>>
>> BTW, I want to introduce ClawIO ( <http://clawio.github.io/>
>> http://clawio.github.io), a research
>> project to benchmark different synchronisation protocols against
>> different data backends with special attention to provide a common sync
>> API.
>>
>> A common API for different sync protocols is being created based on the
>> architecture specified in this draft (control and data servers) and the
>>
>> I cannot find a distributed architecture in this draft. It seems that they
>> handle metadata and content data together, just like a normal web service.
>>
>>
>> ClawIO is fully distributed. Every logical unit is a different server than
>> be scaled out. Data and Metadata channels are independent from each other
>> and reside on different servers.
>>
>> That is widely employed in popular sync services. And that is also
>> beneficial to privacy to some extent. But in the context of sync in browser
>> (which is mainly considered in the remoteStorage), I don't know whether
>> this is reasonable. But I think we should deploy distributed architecture
>> although it will make things complicated.
>>
>>
>>
>> Of course, the remoteStorage is targeted to browsers, so syncing does not
>> make too much sense in this case.
>> With the rise of Linux container micro-service based architectures, the
>> deployment of  such highly complex systems should become easier and faster.
>>
>> Best,
>>
>>
>> Hugo
>>
>>
>>
>> Regards,
>> Linhui
>>
>>
>>
>>
>> Regards,
>> Linhui
>>
>> one from the CERN EOS project (management, disk and queue servers).
>>
>> The Phase I has implemented the ownCloud Sync Protocol and Phase II will
>> implement the SeaFile Sync Protocol.
>> The choice of these protocols among others is because they are really
>> opposed to each other in terms of syncing (delta vs non-delta,
>> state-based vs log/event/git-based sync …), so finding a common approach
>> is more challenging.
>>
>> Providing a base specification/architecture to measure the feasibility
>> of this draft is one of the objectives of the project.
>>
>> I believe that the work being done here and in ClawIO are supplementary
>> to each other and I think mutual collaboration could be beneficial for
>> both sides.
>>
>> Also, if there is interest, the remoteStorage API can be added to
>> ClawIO.
>>
>> Best regards,
>>
>> Hugo Gonzalez Labrador
>>
>> On Tue, Dec 1, 2015, at 09:00 PM, storagesync-request@ietf.org wrote:
>> > Send Storagesync mailing list submissions to
>> >       storagesync@ietf.org
>> >
>> > To subscribe or unsubscribe via the World Wide Web, visit
>> >        <https://www.ietf.org/mailman/listinfo/storagesync>
>> https://www.ietf.org/mailman/listinfo/storagesync
>> > or, via email, send a message with subject or body 'help' to
>> >       storagesync-request@ietf.org
>> >
>> > You can reach the person managing the list at
>> >       storagesync-owner@ietf.org
>> >
>> > When replying, please edit your Subject line so it is more specific
>> > than "Re: Contents of Storagesync digest..."
>> > Today's Topics:
>> >
>> >    1. New version of draft-dejong-remotestorage    Internet-Draft
>> >       available (Michiel de Jong)
>> >    2. Re: New version of draft-dejong-remotestorage Internet-Draft
>> >       available (Gihan Dias)
>> >    3. Re: New version of draft-dejong-remotestorage Internet-Draft
>> >       available (Fei Song)
>> > _______________________________________________
>> > Storagesync mailing list
>> > Storagesync@ietf.org
>> > <https://www.ietf.org/mailman/listinfo/storagesync>
>> https://www.ietf.org/mailman/listinfo/storagesync
>> > Email had 3 attachments:
>> > + [Storagesync] New version of draft-dejong-remotestorage
>> > Internet-Draft available
>> >   2k (message/rfc822)
>> > + Re: [Storagesync] New version of draft-dejong-remotestorage
>> > Internet-Draft available
>> >   1k (message/rfc822)
>> > + Re: [Storagesync] New version of draft-dejong-remotestorage
>> > Internet-Draft available
>> >   2k (message/rfc822)
>>
>> _______________________________________________
>> Storagesync mailing list
>> Storagesync@ietf.org
>> <https://www.ietf.org/mailman/listinfo/storagesync>
>> https://www.ietf.org/mailman/listinfo/storagesync
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> Storagesync mailing list
>> Storagesync@ietf.org
>> https://www.ietf.org/mailman/listinfo/storagesync
>>
>>
>>
>