Re: [ftpext] COMB command IETF draft proposal

Robert Oslin <rto@globalscape.com> Wed, 08 June 2011 19:59 UTC

Return-Path: <rto@globalscape.com>
X-Original-To: ftpext@ietfa.amsl.com
Delivered-To: ftpext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C430E21F84D8 for <ftpext@ietfa.amsl.com>; Wed, 8 Jun 2011 12:59:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.889
X-Spam-Level:
X-Spam-Status: No, score=-1.889 tagged_above=-999 required=5 tests=[AWL=0.711, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qervQjznD1hb for <ftpext@ietfa.amsl.com>; Wed, 8 Jun 2011 12:59:29 -0700 (PDT)
Received: from exchange.globalscape.com (exchange.globalscape.com [208.89.186.62]) by ietfa.amsl.com (Postfix) with ESMTP id B481421F84D7 for <ftpext@ietf.org>; Wed, 8 Jun 2011 12:59:29 -0700 (PDT)
Received: from exchange.forest.intranet.gs ([127.0.0.1]) by exchange2.forest.intranet.gs ([fe80::ccf3:ac5c:2f5e:19d5%10]) with mapi; Wed, 8 Jun 2011 14:59:29 -0500
From: Robert Oslin <rto@globalscape.com>
To: Robert McMurray <robmcm@microsoft.com>
Date: Wed, 08 Jun 2011 14:59:27 -0500
Thread-Topic: [ftpext] COMB command IETF draft proposal
Thread-Index: AQHMJfeJg/z1R+i7P06/FZc6+arpxJSzzQBQgAARSZA=
Message-ID: <F15941D3C8A2D54D92B341C20CACDF2311AC51B359@exchange>
References: <F15941D3C8A2D54D92B341C20CACDF2311AC408AB1@exchange> <01AA9EC92749BF4894AC2B3039EA4A2C1946D58A@CH1PRD0302MB131.namprd03.prod.outlook.com>
In-Reply-To: <01AA9EC92749BF4894AC2B3039EA4A2C1946D58A@CH1PRD0302MB131.namprd03.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "ftpext@ietf.org" <ftpext@ietf.org>
Subject: Re: [ftpext] COMB command IETF draft proposal
X-BeenThere: ftpext@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <ftpext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ftpext>, <mailto:ftpext-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ftpext>
List-Post: <mailto:ftpext@ietf.org>
List-Help: <mailto:ftpext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ftpext>, <mailto:ftpext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Jun 2011 19:59:30 -0000

Thanks for the feedback! Issuing a hash (or XCRC until HASH is formally ratified) makes a lot of sense and will be inserted as a strongly recommended practice (i.e. SHOULD). As for the delete operation, I would be careful to make it mandatory of the client, rather leaving it open to interpretation, as there are many ways for the server to execute the combine operation, which may or may not result in the original parts being available for deletion. For example a rudimentary concatenate operation by the server on ascii type files (which would be quite slow) would result in each part being removed by nature of the concatenation operation, hence a subsequent delete operation would result in 5xx errors returned to the client on each DELE request. Perhaps it would be wise to recommend that the client check for parts post operation and do cleanup if any parts remain? In our particular implementation (and in the handful of servers that support COMB so far), it is the server that does the cleanup as a function of the combine operation. Let me know if that makes sense, or if not, then how to deal with the myriad ways in which servers may go about combining files and how to deal with corner cases.

Robert Oslin

-----Original Message-----
From: Robert McMurray [mailto:robmcm@microsoft.com] 
Sent: Wednesday, June 08, 2011 2:11 PM
To: Robert Oslin; ftpext@ietf.org
Subject: RE: [ftpext] COMB command IETF draft proposal

Thanks, Robert.

I like the idea behind the COMB command; I could see where this could be quite useful for transferring large files.

One consideration that I have in your draft is verbiage that "The server-FTP process SHOULD delete each of the parts identified by the COMB command once the target file is created." I would think that the cleanup behavior for partial files would be left to the client, since the remaining parts of the draft place the responsibility on the client for splitting the file and keeping track of the parts. For example:

      C> STOR foo.txt
      S> 226 Transfer complete.
      C> STOR bar.txt
      S> 226 Transfer complete.
      C> COMB foobar.txt foo.txt bar.txt
      S> 250 COMB command successful.
      C> DELE foo.txt
      S> 250 DELE command successful.
      C> DELE bar.txt
      S> 250 DELE command successful.

As you mentioned in your draft, it would be advantageous if COMB was used with the HASH command to verify data integrity before the client takes care of the deletion tasks. For example:

      C> OPTS HASH MD5
      S> 200 MD5
      C> STOR foo.txt
      S> 226 Transfer complete.
      C> STOR bar.txt
      S> 226 Transfer complete.
      C> COMB foobar.txt foo.txt bar.txt
      S> 250 COMB command successful.
      C> HASH foobar.txt
      S> 213 MD5 426f62526f636b73 foobar.txt
      C> DELE foo.txt
      S> 250 DELE command successful.
      C> DELE bar.txt
      S> 250 DELE command successful.

Thanks again.

Robert McMurray
robmcm@microsoft.com

------------------------------
From: Robert Oslin [mailto:rto@globalscape.com] 
Sent: Wednesday, June 08, 2011 9:15 AM
To: ftpext@ietf.org
Subject: [ftpext] COMB command IETF draft proposal

"Any submission to the IETF intended by the Contributor for publication as all or part of an IETF Internet-Draft or RFC and any statement made within the context of an IETF activity is considered an "IETF Contribution".

It only took me 10+ years, but here's my contribution the FTP ext community (attached).

Essentially an early draft to ratify the commonly used COMB command for support of multi-part (a.k.a accelerated) uploads. I welcome comments/questions from the community. Ideally redlining the document (or via comments in the doc). I will resubmit using formal IETF draft (in ASCII) once I've addressed all comments/questions in the MS Word version (hope that's ok and doesn't break and IETF rules). 

Thanks,

Robert Oslin
Director of Product Management
Tel: 1 (210) 293-7902
Fax: 1 (210) 690-8824
Send me large files securely

www.globalscape.com
    (NYSE Amex:GSB) *This communication, including attachments, is for the exclusive use of the addressee and may contain proprietary, confidential or privileged information. If you are not the intended recipient, any use, copying, disclosure, dissemination or distribution is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return email and delete this communication and destroy all copies.