Features/QED/OutstandingWork: Difference between revisions

From QEMU
No edit summary
Line 16: Line 16:


* Encryption
* Encryption
* Improve parallel allocating write performance
** QED currently queues allocating write requests.
** An initial per-L1/L2 table fine-grained locking approach improved performance somewhat but also regressed a benchmark.
** Needs more investigation for a good scalable solution.


==Possible future work==
==Possible future work==

Revision as of 11:10, 1 February 2011

Outstanding features

  • Zero clusters
    • Patch on mailing list, awaiting review and merge.
  • Reducing time window during which dirty flag is set
    • Images with backing file don't need to set dirty bit during allocating write [merged].
    • Piggyback clearing dirty bit on guest flush operation.
    • Periodic flush in order to clear dirty bit.
  • Block device support (i.e. QED on LVM volumes)
    • Solution: Keep a physical file size field in the QED header, update lazily using dirty bit logic
  • Live migration on shared storage
    • Reopen file (open read-only first to prevent consistency check).
  • Encryption
  • Improve parallel allocating write performance
    • QED currently queues allocating write requests.
    • An initial per-L1/L2 table fine-grained locking approach improved performance somewhat but also regressed a benchmark.
    • Needs more investigation for a good scalable solution.

Possible future work

  • Discard support
    • Solution: Add a freelist to the image format
    • Solution: Pass discard to underlying file. Loses compact image characteristic.
  • Internal snapshots
    • Probably not worth adding since external snapshotting is being implemented
  • Compression
    • No strong use case for this feature

Non-technical issues

Thanks to Kevin Wolf for contributing these points:

  • Burden of maintaining an additional image format (basically doubles image format related work; both development and QA) [Update: Sharing code might reduce the burden, though I guess for QA purposes it would stay two independent formats.]
  • There are concerns that starting with a simple image format core and then adding one new thing after another on top is going to make code complexity grow very fast.
  • Conversion of existing images is needed to take advantage of QED.
  • Code review has brought up some corruption issues that are fixed by now, but have we covered everything?
    • First dirty flag had to be added
    • Then a bdrv_flush after COW
    • What's next?