They both seem to satisfy the basic requirements of API versioning, backwards compatibility and fast throughput. With small IO operations it's critical that the API serialize and deserialize quickly so as not to introduce to much latency. Generally 4K writes in Ceph and Gluster are pretty terrible and there's a variety of reasons why but RPC overhead is a big part of it. The other big part is just physics of moving packets to replicas and waiting for the last writer to respond before responding to the client with success.
They both seem to satisfy the basic requirements of API versioning, backwards compatibility and fast throughput. With small IO operations it's critical that the API serialize and deserialize quickly so as not to introduce to much latency. Generally 4K writes in Ceph and Gluster are pretty terrible and there's a variety of reasons why but RPC overhead is a big part of it. The other big part is just physics of moving packets to replicas and waiting for the last writer to respond before responding to the client with success.