Thanks for this summary/status, very useful. Regarding goals, I think we want to have a read goal also about time to first bite, which is a performance metric which is particularly bad in the current filesystem-based object storage. Not sure what would be a reasonable goal though. Poke @olasd: any idea about a good target for this?
@zack, very good point about having a target for the "time to first byte when reading an object".
I don't know what would be a "good" target for that metric; my gut says that staying within 100ms for any given object would be acceptable, as long as the number of parallel readers doesn't impact the amount too much (of course, within the IOPS of the underlying media, etc.).
! In #3054, @olasd wrote:
@zack, very good point about having a target for the "time to first byte when reading an object".
I don't know what would be a "good" target for that metric; my gut says that staying within 100ms for any given object would be acceptable, as long as the number of parallel readers doesn't impact the amount too much (of course, within the IOPS of the underlying media, etc.).
In the following small objects are < 4KB and object storage software refers to the list of software from the description for which there are no blockers.
Scale out: a "full scale out" (e.g. SWIFT or Ceph) requires optimizing the internals of the object storage to be friendly to the "small immutable objects" workload.
Pros
Work done to achieve the desired performances and space saving does not need to be revisited as storage grows.
Work done to achieve the desired performances and space saving can be contributed back to the object storage software and does not need to be maintained in the long run.
Cons
No object storage software is a perfect fit for small objects. They have significant space amplification and/or degraded performances.
No object storage software targets immutable and never deleted content. They miss optimizations that take advantage of these features.
Improving the internals of an object storage software is a difficult task.
Metadata database: a "scale up metadata & scale out data" (e.g. EOS or seaweed) requires writing glue to nicely bundle the database and the object storage.
Pros
It is not difficult to develop the software to glue together a database and an object storage.
Cons
The database scales up and will need to be revisited as storage grows.
The software needs to be maintained in the long run.