Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp996992pxb; Fri, 1 Oct 2021 00:38:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxg6PqgBrqK//opNRn3TJ/H1zYgJLTiQbXlZ0zyyPbbU6S1hRfd6SowP9WE6On6czp859Pq X-Received: by 2002:a17:90b:3841:: with SMTP id nl1mr11485338pjb.206.1633073901382; Fri, 01 Oct 2021 00:38:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633073901; cv=none; d=google.com; s=arc-20160816; b=sHZDfO3tcF8sO4/G+WckLTGxN6uiFiNY5hGVnq+f452exgQrWajOYWuDh4fXNpjGag OTMb0dwQgnZl6Sk+2eRgT4vev3tvL7FJB+wSUd3CD1ZepAiT546+fcyTVQfhElvR+swf zN0XX3xXvdGZjBb8nazMoLx304A7MnSlPzBRo1+MAyO4+jiAMWjecoO3iVowuCCb/8uW 6FwUz5RLCEFK6qyzjELM3w1wccvuswYWF2dt5hCwk2QHZI141G/MI/t1vCQ1MVJTv2lO YAmKzQMW4xfX64VG1Om9dmaIOd+2e5RqGDIuKINXedvMJPno4gSHNF9EJFDkTkKUuLmo 9MZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=DDD1eGBySDO0NO/+308bo+Lsl1OjPjzMbuZYXGHJ98s=; b=Qv+lJ/nTlKTmPEyih+bIX2L2EO9irNGKrR94XMLD1Tv5YSBzmaicaE1MxmsIm7dmGU h9WVwo8IiobhKW84g0yt+qLtpIM2g1z4cXOBoCXsv1dFUo0eXjoz0/FCIU+Xb6MDG1D/ QMq/FuAEw6Q6e2w54krcx697RcQPLFt99Mn2k/W1ZmYl3xHUxfr+zub72Nn3UXWoq2j7 hCWPHSAsmwljzWgxVp5+uNc3q10jpiYshbqcJp5QX9bVyO0zyznr5cZOEzEryXJlT7D7 2SCHPrLiD6Fhubdd/Y3hN9OFdA0fFbt8C7kM2KDzbkvTu8SMVpE9J7NKu7z8VHatAE5H zSUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=CUgDaxum; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 196si6091686pfw.354.2021.10.01.00.38.08; Fri, 01 Oct 2021 00:38:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=CUgDaxum; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231260AbhJAHiN (ORCPT + 99 others); Fri, 1 Oct 2021 03:38:13 -0400 Received: from mail.kernel.org ([198.145.29.99]:50040 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231222AbhJAHiI (ORCPT ); Fri, 1 Oct 2021 03:38:08 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1B28D61A56; Fri, 1 Oct 2021 07:36:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1633073784; bh=F7FORTn48/F8tKh/vrqU2iD+S5SdTTcOrGHdRF5xuhM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=CUgDaxumqVLgqn5UYFFs4mpQVt+mTF64KU4Ol2Hpz3AXUJbyqqHxxqzpxpovAyl17 dIw9UynDCXMIIzcTu011qomNHpSpWZm7DFTqorTSwaUFVQc9MJx728NI3CVmq2vf9E b911fk7Qfn0pqUfUDFQ9SJOCE+OaLeByr8CHx7ME= Date: Fri, 1 Oct 2021 09:36:22 +0200 From: Greg Kroah-Hartman To: Long Li Cc: Bart Van Assche , "longli@linuxonhyperv.com" , "linux-block@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-hyperv@vger.kernel.org" , Jonathan Corbet , KY Srinivasan , Haiyang Zhang , Stephen Hemminger , Wei Liu , Dexuan Cui , Bjorn Andersson , Hans de Goede , "Williams, Dan J" , Maximilian Luz , Mike Rapoport , Ben Widawsky , Jiri Slaby , Andra Paraschiv , Siddharth Gupta , Hannes Reinecke Subject: Re: [Patch v5 0/3] Introduce a driver to support host accelerated access to Microsoft Azure Blob for Azure VM Message-ID: References: <1628146812-29798-1-git-send-email-longli@linuxonhyperv.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Sep 30, 2021 at 10:25:12PM +0000, Long Li wrote: > > Greg, > > > > I apologize for the delay. I have attached the Java transport library (a tgz file) > > in the email. The file is released for review under "The MIT License (MIT)". > > > > The transport library implemented functions needed for reading from a Block > > Blob using this driver. The function for transporting I/O is > > Java_com_azure_storage_fastpath_driver_FastpathDriver_read(), defined > > in "./src/fastpath/jni/fpjar_endpoint.cpp". > > > > In particular, requestParams is in JSON format (REST) that is passed from a > > Blob application using Blob API for reading from a Block Blob. > > > > For an example of how a Blob application using the transport library, please > > see Blob support for Hadoop ABFS: > > https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgith > > ub.com%2Fapache%2Fhadoop%2Fpull%2F3309%2Fcommits%2Fbe7d12662e2 > > 3a13e6cf10cf1fa5e7eb109738e7d&data=04%7C01%7Clongli%40microsof > > t.com%7C3acb68c5fd6144a1857908d97e247376%7C72f988bf86f141af91ab2d7 > > cd011db47%7C1%7C0%7C637679518802561720%7CUnknown%7CTWFpbGZsb > > 3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0 > > %3D%7C1000&sdata=6z3ZXPtMC5OvF%2FgrtbcRdFlqzzR1xJNRxE2v2Qrx > > FL8%3D&reserved=0 Odd url :( > > In ABFS, the entry point for using Blob I/O is at AbfsRestOperation > > executeRead() in hadoop-tools/hadoop- > > azure/src/main/java/org/apache/hadoop/fs/azurebfs/services/AbfsInputStr > > eam.java, from line 553 to 564, this function eventually calls into > > executeFastpathRead() in hadoop-tools/hadoop- > > azure/src/main/java/org/apache/hadoop/fs/azurebfs/services/AbfsClient.ja > > va. > > > > ReadRequestParameters is the data that is passed to requestParams > > (described above) in the transport library. In this Blob application use-case, > > ReadRequestParameters has eTag and sessionInfo (sessionToken). They are > > both defined in this commit, and are treated as strings passed in JSON format > > to I/O issuing function > > Java_com_azure_storage_fastpath_driver_FastpathDriver_read() in the > > transport library using this driver. > > > > Thanks, > > Long > > Hello Greg, > > I have shared the source code of the Blob client using this driver, and the reason why the Azure Blob driver is not implemented through POSIX with file system and Block layer. Please wrap your text lines... Anyway, no, you showed a client for this interface, but you did not explain why this could not be implemented using a filesystem and block layer. Only that it is not what you did. > Blob APIs are specified in this doc: > https://docs.microsoft.com/en-us/rest/api/storageservices/blob-service-rest-api > > The semantic of reading data from Blob is specified in this doc: > https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob > > The source code I shared demonstrated how a Blob is read to Hadoop through ABFS. In general, A Blob client can use any optional request headers specified in the API suitable for its specific application. The Azure Blob service is not designed to be POSIX compliant. I hope this answers your question on why this driver is not implemented at file system or block layer. Again, you are saying "it is this way because we created it this way", which does not answer the question of "why were you required to do it this way", right? > Do you have more comments on this driver? Again, please answer _why_ you are going around the block layer and creating a new api that circumvents all of the interfaces and protections that the normal file system layer provides. What is lacking in the existing apis that has required you to create a new one that is incompatible with everything that has ever existed so far? thanks, greg k-h