Skip to content

Hugoch/s3-consistency

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

S3 consistency test

Test consistency of S3-compliant object stores.

Object store eventual consistency

Object store are usually distributed storage and focus on availability/performances rather than consistency (see CAP theorem). Users may encounter unexpected behaviour with stale data being presented.

Testing consistency

Tool runs the following consistency tests:

Test Description
read-after-write Write a new file, try to read it immediately
read-after-delete Delete a file and try to read it immediately
read-after-overwrite Overwrite a file, read it immediately and check if data was updated
list-after-create Write a new file, list the content of the bucket and check if file exists
list-after-delete Delete a file, list the content of the bucket and check if file still exists

Build the tool

$ ./go-build-all.sh

Run the tool

$ s3-consistency \
      --endpoint https://s3.gra.storage.cloud.ovh.net \ 
      --region gra \
      --threads 70 \
      --iterations 100 \
      --bucket s3-consistency

Available options

$ s3-consistency --help
Usage of ./build/darwin-amd64/s3-consistency:
  -bucket string
        Bucket to use for test (default "s3-consistency")
  -chunk-size int
        Size in bytes of created files (default 1)
  -clean
        Clean bucket
  -endpoint string
        S3 endpoint to use (default "https://s3.us-east-1.amazonaws.com")
  -iterations int
        Number of iteration per thread per test. (default 5)
  -region string
        S3 endpoint to use (default "us-east-1")
  -threads int
        Number threads per test. (default 5)

References

About

S3 object storage consistency benchmark

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published