[ 
https://issues.apache.org/jira/browse/ASTERIXDB-3552?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ritik Raj updated ASTERIXDB-3552:
---------------------------------
    Description: 
All major object storage like S3, GCS and Azure Blob Storage provide an API for 
performing a batch operation which can be clubbed in a single request, the 
catch with the API is unless the request payload is malformed, it will give 
status code 200 every time,
even if some or all the clubbed requests failed on the object storage server.

[GCS batch 
Operations|https://cloud.google.com/storage/docs/batch#:~:text=If%20the%20overall%20request%20isn%27t%20formatted%20correctly%20and%20Cloud%20Storage%20is%20unable%20to%20parse%20it%20into%20sub%2Drequests%2C%20you%20receive%20a%20400%20error.%20Otherwise%2C%20Cloud%20Storage%20returns%20a%20200%20status%20code%2C%20even%20if%20some%20or%20all%20of%20the%20sub%2Drequests%20fail]
[AWS S3 Batch Delete 
Objects|https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html#API_DeleteObjects_RequestSyntax:~:text=The%20request%20can,result%20as%20deleted]
[Azure Blob Batch 
Operations|https://learn.microsoft.com/en-us/dotnet/api/azure.storage.blobs.specialized.blobbatchclient.deleteblobs?view=azure-dotnet]

So in batch requests, the API responds to the status of each request in the 
response except in the case of S3 where it gives a list of the encountered 
errors. We should check the individual response and fail if either of them 
fails.

  was:
All major object storage like S3, GCS and Azure Blob Storage provide an api for 
performing batch operation which can be clubbed in a single request, the catch 
with the api is unless the request payload is malformed, it will give status 
code 200 everytime,

even if some or all the clubbed requested failed on the object storage server.

[GCS batch 
Operations|https://cloud.google.com/storage/docs/batch#:~:text=If%20the%20overall%20request%20isn%27t%20formatted%20correctly%20and%20Cloud%20Storage%20is%20unable%20to%20parse%20it%20into%20sub%2Drequests%2C%20you%20receive%20a%20400%20error.%20Otherwise%2C%20Cloud%20Storage%20returns%20a%20200%20status%20code%2C%20even%20if%20some%20or%20all%20of%20the%20sub%2Drequests%20fail]
[AWS S3 Batch Delete 
Objects|https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html#API_DeleteObjects_RequestSyntax:~:text=The%20request%20can,result%20as%20deleted]
[Azure Blob Batch 
Operations|https://learn.microsoft.com/en-us/dotnet/api/azure.storage.blobs.specialized.blobbatchclient.deleteblobs?view=azure-dotnet]

so in batch request, the api responds the status of each request in the 
response except in case of S3 where it gives a list consisting of the 
encountered errors. We should check the individual response and fail if either 
of them fails.


> Missing status check on cloud deletes
> -------------------------------------
>
>                 Key: ASTERIXDB-3552
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-3552
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: STO - Storage
>    Affects Versions: 0.9.10
>            Reporter: Ritik Raj
>            Priority: Critical
>             Fix For: 0.9.10
>
>
> All major object storage like S3, GCS and Azure Blob Storage provide an API 
> for performing a batch operation which can be clubbed in a single request, 
> the catch with the API is unless the request payload is malformed, it will 
> give status code 200 every time,
> even if some or all the clubbed requests failed on the object storage server.
> [GCS batch 
> Operations|https://cloud.google.com/storage/docs/batch#:~:text=If%20the%20overall%20request%20isn%27t%20formatted%20correctly%20and%20Cloud%20Storage%20is%20unable%20to%20parse%20it%20into%20sub%2Drequests%2C%20you%20receive%20a%20400%20error.%20Otherwise%2C%20Cloud%20Storage%20returns%20a%20200%20status%20code%2C%20even%20if%20some%20or%20all%20of%20the%20sub%2Drequests%20fail]
> [AWS S3 Batch Delete 
> Objects|https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html#API_DeleteObjects_RequestSyntax:~:text=The%20request%20can,result%20as%20deleted]
> [Azure Blob Batch 
> Operations|https://learn.microsoft.com/en-us/dotnet/api/azure.storage.blobs.specialized.blobbatchclient.deleteblobs?view=azure-dotnet]
> So in batch requests, the API responds to the status of each request in the 
> response except in the case of S3 where it gives a list of the encountered 
> errors. We should check the individual response and fail if either of them 
> fails.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to