Filestore was originally designed as an object store to enable developers to test Ceph on their local machines. Because of its stability, it quickly became the standard object store and found itself in use in production clusters throughout the world.
Initially, the thought behind filestore was that the upcoming B-tree file system (btrfs), which offered transaction support, would allow Ceph to offload the atomic requirements to btrfs. Transactions would allow an application to send a series of requests to btrfs and only receive acknowledgement once all were committed to stable storage. Without a transaction support, if there was an interruption halfway through a Ceph write operation, either the data or metadata could ...