Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reliable storage lock #2014

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

Reliable storage lock #2014

wants to merge 4 commits into from

Commits on Dec 2, 2024

  1. Reliable storage lock

    Introduces a new `ReliableStorageLock` and `ReliableStorageLockGuard` to
    be used as a slower but more reliable alternative to the existing
    `StorageLock`.
    
    It uses the new If-None-Match atomic put operations in S3.
    
    This commit:
    - Upgrades the aws-sdk-cpp in vcpkg (which needed a few additions
      because of some problematic dependencies)
    - Adds `write_if_none_match` capability to `AsyncStore`'s S3 and to
      `InMemoryStore`
    - Logic for `ReliableStorageLock`
    - C++ tests using the `InMemoryStore`
    
    Follow up commit will introduce a python integration test with real aws
    s3.
    IvoDD committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    02f753a View commit details
    Browse the repository at this point in the history
  2. Real S3 storage python tests for ReliableStorageLock

    Adds a real s3 storage test (currently to be run with persistent storage
    tests mark) for the lock.
    IvoDD committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    027dfb6 View commit details
    Browse the repository at this point in the history
  3. Add a supports_atomic_writes predicate to storages.

    Currently all backends are unsupported apart from S3 (for which only some providers like AWS support it).
    
    Unfotrunately it's impossible to differentiate between aws and e.g. vast
    backends apart from looking at the endpoint which can be subject to
    rerouting etc.
    
    This commit also reworks the Guard to work only with aquired locks.
    IvoDD committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    a68719a View commit details
    Browse the repository at this point in the history
  4. Better naming for ReliableStorageLock

    - Addressing review comments on ReliableStorageLock pr
    - Mostly renames
    - Longer timeout before lock cleanup
    IvoDD committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    1bc9ddb View commit details
    Browse the repository at this point in the history