[sheepdog] object cache reclaim refacotor & fix
Liu Yuan
namei.unix at gmail.com
Thu Aug 2 03:35:41 CEST 2012
On 08/01/2012 06:03 PM, Liu Yuan wrote:
> The old reclaim algorithm tries to push dirty object synchronously, which does
> lock/unlock mutex dance because push operation is considerably long opration.
> This dramtically obfuscate the code and logic.
>
> We don't actually do this dance because flush opreations is periodically issued
> from guests in a relatively short window (for e.g, less than 1 minuts in Linux)
> if there are dirty pages in kernel's memory. That is, in most cases, we'll see
> more 'clean' objects than dirty objects.
>
> The new algorithm is simple yet efficient (similar to Linux kernel's page cache):
> - only tries to reclaim 'clean' object, which doesn't has any dirty updates,
> in a LRU list.
> - spip the object when it is in R/W operation.
> - skip the dirty object if it is not in push(writeback) phase.
> - wait on the dirty object if it is in push phase.
>
> This patchset also fix other racy problems.
Applied this series.
Thanks,
Yuan
More information about the sheepdog
mailing list