Features/QED/OutstandingWork: Difference between revisions
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?