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

Linhui Sun <lh.sunlinh@gmail.com> Thu, 03 December 2015 08:13 UTC

Return-Path: <lh.sunlinh@gmail.com>
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 EBDD71B30CD for <storagesync@ietfa.amsl.com>; Thu, 3 Dec 2015 00:13:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[AC_DIV_BONANZA=0.001, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
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 pxP3a8qFqdy5 for <storagesync@ietfa.amsl.com>; Thu, 3 Dec 2015 00:13:51 -0800 (PST)
Received: from mail-wm0-x22b.google.com (mail-wm0-x22b.google.com [IPv6:2a00:1450:400c:c09::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3FD951B30BE for <storagesync@ietf.org>; Thu, 3 Dec 2015 00:13:51 -0800 (PST)
Received: by wmuu63 with SMTP id u63so10305071wmu.0 for <storagesync@ietf.org>; Thu, 03 Dec 2015 00:13:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=I5Q5NgC0pETu2exfd6dVmM+rigxgvJM++3mSWzoT++w=; b=kKQTbUqEutwtN/ZkJXDXLgIyCHymq0mHLM+xLldDTyu8Nr2tX7olRIliwbFPZQ3Q9c 32PPfJpMu9N2PSwcEazKZbBKGa15NqW4WOBNex/NFYGfwNGeVuyPniiz0SGBbP3AGX8g YBxgMIlmZNRfYFlPoeJCBRoyC4z4lCGcdG4SyqRPp0S2u0udgAiO2XKnbgzHgGRdfvYj 9oEzifbyXXGk/xvSY+LR6qnAD4CtKGAy8DYwfXS+/X3tzR0qBJojx7h9/Q4FpP8SupXD 959FNmTmLrkyQ8VmFbQGMl62twKurb19niGEuuJxVxQ3YoS6wF1wi0QEHaDHmpJVceys wZKQ==
X-Received: by 10.194.79.72 with SMTP id h8mr10395747wjx.136.1449130429812; Thu, 03 Dec 2015 00:13:49 -0800 (PST)
MIME-Version: 1.0
Received: by 10.28.27.147 with HTTP; Thu, 3 Dec 2015 00:13:29 -0800 (PST)
In-Reply-To: <CAPpPfeAdrCZcsYZo7=W6N14K4F2LutXN8BFTetikzKZSr8+vVA@mail.gmail.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>
From: Linhui Sun <lh.sunlinh@gmail.com>
Date: Thu, 03 Dec 2015 16:13:29 +0800
Message-ID: <CAO_Yprb8Hq2+H12OvTtUDnE4BJ_SOBO9j+5-DiH8Nv4qr7Wa+g@mail.gmail.com>
To: Michiel de Jong <mbdejong@mozilla.com>
Content-Type: multipart/alternative; boundary="047d7bb0499e8096b20525f9f84f"
Archived-At: <http://mailarchive.ietf.org/arch/msg/storagesync/J_QmFuvNe9U29Z4eRVB2z_IMeZk>
Cc: storagesync <storagesync@ietf.org>, fkooman <fkooman@tuxed.net>, Hugo González Labrador <ietf@hugo.labkode.com>
Subject: Re: [Storagesync] Storagesync Digest, Vol 5, Issue 1
X-BeenThere: storagesync@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
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: Thu, 03 Dec 2015 08:13:57 -0000

Hi

I've missed some part of your message yesterday, please see my comments
inline.

2015-12-02 20:30 GMT+08:00 Michiel de Jong <mbdejong@mozilla.com>:

> 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.
>
> 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.
>
> 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?
>
Yes and something like chunking (the one I've mentioned in the previous
message) and bundling. They are typically client capabilities (or referred
as service capabilities). These should be beyond the basic document like
the remoteStorage, but is important and useful to be defined in a companion
document.

> 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.
>
IMO, performing dedup. inside server or client itself is not interesting.
What we want for a sync service is to reduce the number of transmitting
packets between client and server. That requires both client and server
should be aware of which packet should be transmitted. And I think
capabilities like dedup. has nothing to do with whether you use a
distributed architecture.

>
> 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.
>
That's a delta update in essence, but is done by user behavior. And could
we make the "query the folder" something like server push (similar issue in
webpush WG)? When there is a change, the server will notify the client.

Regards,
Linhui

>
>
> 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
>>
>>
>>
>>
>>
>
>