Hi ceph-devel,
Like some users of Ceph, we are using Ceph for a latency sensitive project, and 
scrubbing (especially deep-scrubbing) impacts the SLA in a non-trivial way, as 
commodity hardware could fail in one way or the other, I think it is essential 
to have scrubbing enabled to preserve data durability.

Inspired by how erasure coding backend implement scrubbing[1], I am wondering 
if the following changes is valid to somehow reduce the performance impact from 
scrubbing:
 1. Store the CRC checksum along with each physical copy of the object on 
filesystem (via xattr or omap?)
 2. For read request, it checks the CRC locally and if it mismatch, redirect 
the request to a replica and mark the PG as inconsistent.

This is just a general idea and details (like append) will need to further 
discussed.

By having such, we can schedule the scrubbing less aggresively but still 
preserve the durability for read.

Does this make some sense?

[1] http://ceph.com/docs/master/dev/osd_internals/erasure_coding/pgbackend/ 

Thanks,
Guang Yang--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to