Hi,

 

Would anybody be able to comment on this idea, as to whether or not it's
feasible.

 

I was wondering if it would be possible for all incoming writes to be
written to the cache tier regardless of whether or not the object is
currently residing there. This would avoid the requirement for a block to be
promoted before it can be appended in the cache tier and would hopefully
improve write latency for objects currently located in the EC tier.

 

Objects which are updated in the cache tier would then be flushed at a later
date, based on the pool flushing parameters. Objects which have been fully
overwritten could be directly flushed down to the EC tier and overwrite the
existing object. Flushing partially updated objects would involve reading
the existing object from the EC pool, merging them and then writing it back
down.

 

The only problem I see is dealing with reads to any partially updated
objects and I'm struggling to think of a good solution. Perhaps the object
could be split into smaller blocks and some sort of bitmap could track their
dirty status. Any blocks which are requested that haven't been marked in the
bitmap would be redirected to the base EC tier.

 

Comments from anyone are welcome,

Nick




_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to