There is some performance difference between pure RADOS writes ( ex. via RadosBench ) vs RGW writes. There are several factors contributing to this such as :
- Object storage access protocols ( S3 / Swift ) have higher overheads than native RADOS writes
- Client write requests are translated through RGW adds additional latency causing additional bottlenecks
- The most important factor is that “RGW maintains bucket indices that needs to be updated every time when a write operation is done. And further more RADOS writes does not have this over head of maintaining indexes / metadata”
In this blog post i will talk about a new feature landed in Ceph Jewel v10.1.0 which is officially known as Indexless Buckets and unofficially as Blind Buckets. Before diving into indexless buckets let’s understand what RGW does under the covers with a write request.