54 Implementation status and open issues
This chapter preserves the status notes formerly maintained on the cxLss implementation index. The open items are possible future work rather than descriptions of the current implementation or commitments, and some may have been superseded by later work.
Open issues and proposals
- Investigate the deadlock issue discussed in Deadlock bug, February 2022, including whether the lazy flusher can avoid locking the segment writer to update the flush position.
- Clip redundant RPM nodes from the tree and consider an alternative serialisation for sparse RPM nodes.
- Scale the
txLsstest for high-core-count machines and reduce its output verbosity. - Use a platform-independent 32-bit type for MSSN rather than
int. - Complete support for asynchronous serial-element loading and MVCC.
- Validate and refine RPM-node eviction.
- Develop a more advanced policy for choosing when to clean segments.
- Allow Linux permissions to be passed to
LinuxFileRAS::Open(). - Replace an assertion in
VisitLogRecordsInBuffer()with an appropriate run-time check. - Clarify assumptions about file-sector and page sizes.
- Provide a function that validates an entire LSS.
- Expand diagnostics, including store statistics, segment utilisation, packet listings and RPM browsing.
Recorded completed work
- Dedicated threads were replaced by
IoContextPool. LazyWriterandLazyCheckPointeruseAsyncSignaledTask.LazyFlusherusesAsyncPeriodicTimer.LazyCleanerusesAsyncRepeatedTask.- An LSS can be supplied with an
IoContextPool, or use the default pool provided bycxThread.