• Alternative to AWS S3 • Decoupled from OpenStack • Suitable for unstructured data • Scales horizontally • But you can't mount it! Logical Hierarchy Accounts/Containers/Objects
proxy-logging cache container_sync bulk tempurl ratelimit tempauth copy container-quotas account-quotas slo dlo versioned_writes proxy-logging proxy-server ➔ Very similar to translators in gluster ➔ Middlewares are highly modular ➔ Many features are implemented as middlewares
and rename() That DHT trick that every user should know about: .filename.suffix hashed to same brick as filename .kitten.jpg.4e91d93f380 kitten.jpg → • Multiple client PUTs ? • Last write wins Object PUT
only names getxattr() opendir() readdir()* getxattr()1 Container GET (json/xml) – names + metadata getxattr() opendir() readdir()* getxattr()2 *multiple calls – recursive 1 only on dirs 2 on every inode
is a file # curl http://host:8080/v1/AUTH_test/c1/animals/cat/kitten -X PUT Here, cat is supposed to be directory but it’s already a file. Backend object path on filesystem gluster-swift: /mnt/gluster-object/test/c1/animals/cat Vanilla Swift: /mnt/sdb1/objects/778/69f/c2b307d78b6c419c0c1b76d91c08c69f/1412628708.01757.data