Our group works on a device mapper target called dmDedup that performs inline data deduplication. The dmDedup target internally uses the Persistent Metadata API (located in linux/drivers/md/persistent-data)to manage its meta-data.
In our system, there is a main writer thread (or several of them) and a separate flusher thread. When a write request comes in, the writer thread checks for the duplicates in the data and updates corresponding meta-data. The flusher thread periodically (10 sec) flushes the meta-data to disk by calling the commit function in the transaction manager of Persistant Metadata API.
We want a metadata flush which is not affected by the writer thread so drastically. Specifically, we would like the flush to write out dirty buffers, while the writer still can update metadata (using COW to preserve consistency). Is it something that is possible with a current design of persistent metadata subsystem? Our current understanding is that during the commit all updates to the meta-data are blocked until all of the meta-data is written out.
We appreciate any suggestions!
Thank you!
-- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel