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

Hugo González Labrador <ietf@hugo.labkode.com> Wed, 02 December 2015 13:03 UTC

Return-Path: <ietf@hugo.labkode.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 8E2BC1A8A06 for <storagesync@ietfa.amsl.com>; Wed, 2 Dec 2015 05:03:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.298
X-Spam-Level:
X-Spam-Status: No, score=-2.298 tagged_above=-999 required=5 tests=[AC_DIV_BONANZA=0.001, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-0.7] 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 Syz-ixdNely9 for <storagesync@ietfa.amsl.com>; Wed, 2 Dec 2015 05:03:38 -0800 (PST)
Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 47B3F1A8A1C for <storagesync@ietf.org>; Wed, 2 Dec 2015 05:03:38 -0800 (PST)
Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id A82B120453 for <storagesync@ietf.org>; Wed, 2 Dec 2015 08:03:37 -0500 (EST)
Received: from web1 ([10.202.2.211]) by compute4.internal (MEProxy); Wed, 02 Dec 2015 08:03:37 -0500
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=labkode.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=VJQQ79ZHQNKsCE9dQsUPeR2HYKA=; b=sEjEcb Uu7z5UjbuhaMvQj+k//zD8eFbnAIDDGZZ9MF8yT4HBfH7mT+TYN3zRT4DdfD8oxe nvzjb0n/7iE5txlzQyCxs74mhjed/myE58NLyKuFfl6HWJV+8CNIeRlSXZZMg/Zk YTKShONJN4cRO9FGVzjtqZev4btw2v2H0velU=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=VJQQ79ZHQNKsCE9 dQsUPeR2HYKA=; b=ujAIBMNQznwfBOi9m2/HEMSJHMwVRBUI0QsFfIIO4Fgpkf+ TWLbAhtv2D+VmLM7fJWv8PVT4+lLQ+ORswDRolo61/8UNe6E8CzSUhw45B+9rTo9 +mHEWVTyB7q3IznPKHqUMVct3lsmlSvvABjaqD6mSaDgXZh9nopBtra5qiC8=
Received: by web1.nyi.internal (Postfix, from userid 99) id 5E6E6AEFBA1; Wed, 2 Dec 2015 08:03:37 -0500 (EST)
Message-Id: <1449061417.3729762.455755681.08D95D5B@webmail.messagingengine.com>
X-Sasl-Enc: qqTOheeNMz+69527WhGGiXY9K8iQKQiskl8JqsqRcG6M 1449061417
From: Hugo González Labrador <ietf@hugo.labkode.com>
To: Linhui Sun <lh.sunlinh@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: multipart/alternative; boundary="_----------=_144906141737297620"; charset="utf-8"
X-Mailer: MessagingEngine.com Webmail Interface - ajax-b94e6169
Date: Wed, 02 Dec 2015 14:03:37 +0100
In-Reply-To: <CAO_YprYp+cdCPQ1pEUJLcCh0uQL_mu-Y=MJOA7Oh92TWrM_tWQ@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> <1449060218.3721231.455737161.5D657D6D@webmail.messagingengine.com> <CAO_YprYp+cdCPQ1pEUJLcCh0uQL_mu-Y=MJOA7Oh92TWrM_tWQ@mail.gmail.com>
Archived-At: <http://mailarchive.ietf.org/arch/msg/storagesync/1s4XHjuger1J7LUhkI-bdkUAOZ4>
Cc: storagesync <storagesync@ietf.org>, Michiel de Jong <mbdejong@mozilla.com>, fkooman <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
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: Wed, 02 Dec 2015 13:03:42 -0000

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