Tradeoffs
The latency tradeoffs that come with being object-storage native, and why we accept them.
“Object storage native” describes the new category of data systems that use the durability and reliability of object storage along with transactional capabilities like conditional writes to power higher-level semantics on top of those primitives.
That said, those same primitives do come with some latency and concurrency constraints. Notably, writing and reading object contents (PUT/GET) has a latency of around ~200ms for small objects which, if not carefully designed around, can severely impact performance. Also, on some platforms (Google Cloud and Cloudflare), compare-and-swap (CAS) features have a rate limit of once per second.
Combined, these limitations translate into two notable LoonFS limitations:
- Cold (uncached) reads may cost ~200ms of upfront latency.
- Writes in busy namespaces on some cloud providers can take up to ~1s before durable acknowledgement.
We’ve accepted these tradeoffs for the scalability and efficiency benefits, and anticipate many high-throughput file-storage use cases that do not require lower response latency. That said, this tradeoff may not be acceptable for some use cases.