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

Michiel de Jong <mbdejong@mozilla.com> Wed, 02 December 2015 12:30 UTC

Return-Path: <mbdejong@mozilla.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 E7EC41A8961 for <storagesync@ietfa.amsl.com>; Wed, 2 Dec 2015 04:30:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.977
X-Spam-Level:
X-Spam-Status: No, score=-0.977 tagged_above=-999 required=5 tests=[AC_DIV_BONANZA=0.001, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, SPF_PASS=-0.001] 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 EB5w8tWn9K0N for <storagesync@ietfa.amsl.com>; Wed, 2 Dec 2015 04:30:47 -0800 (PST)
Received: from mail-ig0-x229.google.com (mail-ig0-x229.google.com [IPv6:2607:f8b0:4001:c05::229]) (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 8F0351A8960 for <storagesync@ietf.org>; Wed, 2 Dec 2015 04:30:47 -0800 (PST)
Received: by igcto18 with SMTP id to18so30098524igc.0 for <storagesync@ietf.org>; Wed, 02 Dec 2015 04:30:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mozilla-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=nuWPaDCufwsYZakiXw+Y8mF1Kx11bKJXp1z6ARk63TY=; b=e7M0VHXSPhWhMxVHVVIgK8ZeBS/9dViTFyIfk1UU5VmZUIXAWqQdnlpE7En1lm1Vau n1+hASrmCyJr+Z+lMWq9KeTWvNNMiS94n61haNki058+pzch2rtbRIyNh5tX6oo8S4we +/9z79XF9AHg1VY0HDjq5IB0TKYHyW2m5Sq9+vga1n/VdRHQy8gKZWcCQ3cgeosnkc3s bEXh26O0yG75uFwIlGDR8sqNQvyHqRiX52Q9ouuy5HnogLjTQU/8Ssi+sirOwGrdnx/p eY4xZ7MDxfQOZhDh2csqCFCiI5m813RU83i8TLCD1JAUl2H3SQxGinsEhsdcU6BFv39M nzdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=nuWPaDCufwsYZakiXw+Y8mF1Kx11bKJXp1z6ARk63TY=; b=HChjyK1rV9SELBXVIPgliBNc78igoBB72GuwpSEy69CWviMxFxgol9sIcfeoJvheve q3iwo4nhwpFUENAE6pz5MOL4ut+C3fASY6djevNM86UYXpgBmjsI6OVeRvuu8CN+xVV6 Pga650k4ijLoNMXniQMiXcZMe2f1ibStEOpfy1GbpLY1qMTCE/v8It/hpm/UZUb1fP/Q c53K8lriMTF9+1GDfUsfEsW0ZqNVcLPhy3SbLjVdRkbTglmnOsDrzMJrc9YrNG88YoxV xf3Ne7wps3x+Vh3zvogBVj7+lCKWXnH/Fn9Ps/ecxdbPxpBsxiq7IMfJHuEagSxvxU53 g7QA==
X-Gm-Message-State: ALoCoQnU+iJWgcpdldr6D7MAgCQnPBivzQlMoTIk357ktB1WaybBBFtFG62pajmf9cao5eA1USB8
MIME-Version: 1.0
X-Received: by 10.50.61.232 with SMTP id t8mr29970938igr.16.1449059446458; Wed, 02 Dec 2015 04:30:46 -0800 (PST)
Received: by 10.107.137.68 with HTTP; Wed, 2 Dec 2015 04:30:46 -0800 (PST)
In-Reply-To: <1449052128.3674794.455635937.667C3E1F@webmail.messagingengine.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>
Date: Wed, 02 Dec 2015 13:30:46 +0100
Message-ID: <CAPpPfeAdrCZcsYZo7=W6N14K4F2LutXN8BFTetikzKZSr8+vVA@mail.gmail.com>
From: Michiel de Jong <mbdejong@mozilla.com>
To: Hugo González Labrador <ietf@hugo.labkode.com>
Content-Type: multipart/alternative; boundary="047d7bdc05e89178bb0525e971cb"
Archived-At: <http://mailarchive.ietf.org/arch/msg/storagesync/w43f9arbYnr-ezHKOCLx9dArgeE>
Cc: Linhui Sun <lh.sunlinh@gmail.com>, storagesync <storagesync@ietf.org>, 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 12:30:52 -0000

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?

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