You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "Ivan Andika (Jira)" <ji...@apache.org> on 2025/09/24 09:55:00 UTC

[jira] [Updated] (HDDS-13117) Add support for S3 conditional requests

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

Ivan Andika updated HDDS-13117:
-------------------------------
    Description: 
[https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html]

Last year, AWS S3 supported conditional writes (although GCS has supported it for a long time). Conditional reads have been supported for a while.

This feature has been used by some applications (databases on s3). One blog ([https://www.morling.dev/blog/leader-election-with-s3-conditional-writes/]) also implemented a PoC of leader election based on s3 conditional writes.

HDDS-10656 has already implemented a atomic rewrite key feature, but we need to check whether we can use this feature. 

Currently OM HA has only a single Raft group with a single applier thread (see Ratis StateMachineUpdater), therefore it should be quite straightforward (at least for conditional writes). However, a short design doc will be useful. We can separate this tickets to multiple smaller tickets
 # Conditional reads (HeadObject / GetObject)
 # Conditional copy (CopyObject)
 # Conditional writes

  was:
[https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html]

Last year, AWS S3 supported conditional writes (although GCP has supported it for a long time). Conditional reads have been supported for a while.

This feature has been used by some applications (databases on s3). One blog ([https://www.morling.dev/blog/leader-election-with-s3-conditional-writes/]) also implemented a PoC of leader election based on s3 conditional writes.

HDDS-10656 has already implemented a atomic rewrite key feature, but we need to check whether we can use this feature. 

Currently OM HA has only a single Raft group with a single applier thread (see Ratis StateMachineUpdater), therefore it should be quite straightforward (at least for conditional writes). However, a short design doc will be useful. We can separate this tickets to multiple smaller tickets
 # Conditional reads (HeadObject / GetObject)
 # Conditional copy (CopyObject)
 # Conditional writes


> Add support for S3 conditional requests
> ---------------------------------------
>
>                 Key: HDDS-13117
>                 URL: https://issues.apache.org/jira/browse/HDDS-13117
>             Project: Apache Ozone
>          Issue Type: Sub-task
>            Reporter: Ivan Andika
>            Priority: Major
>
> [https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html]
> Last year, AWS S3 supported conditional writes (although GCS has supported it for a long time). Conditional reads have been supported for a while.
> This feature has been used by some applications (databases on s3). One blog ([https://www.morling.dev/blog/leader-election-with-s3-conditional-writes/]) also implemented a PoC of leader election based on s3 conditional writes.
> HDDS-10656 has already implemented a atomic rewrite key feature, but we need to check whether we can use this feature. 
> Currently OM HA has only a single Raft group with a single applier thread (see Ratis StateMachineUpdater), therefore it should be quite straightforward (at least for conditional writes). However, a short design doc will be useful. We can separate this tickets to multiple smaller tickets
>  # Conditional reads (HeadObject / GetObject)
>  # Conditional copy (CopyObject)
>  # Conditional writes



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org