the log-blocks sequentially. Transactional Flash File System
[24] provides transaction support for file systems in
micro-controllers in SSDs, but is designed for NOR flash
memory and does not support transactions in DBMSs
and other applications.
Recent work [19] has employed a single updating
window to track the recently allocated flash blocks for
parallel allocation while providing transaction support.
Although this approach works well for file systems
in which transactions are strictly isolated and serially
executed, they are not sufficient for DBMSs and other
applications with flexible transaction requirements, i.e.
the need for different isolation levels.
TxFlash [4] and Flag Commit [15] extend atomicity
to general transactions for different applications including
DBMSs. TxFlash [4] proposes two cyclic commit
protocols, SCC and BPCC, and links all pages in each
transaction in one cyclic list by keeping pointers in
the page metadata. The existence of the cyclic list is
used to determine the committed/uncommitted state of
each transaction. But the pointer-based protocol has two
limitations. First, garbage collection should be carefully
performed to avoid the ambiguity between the aborted
transactions and the partially erased committed transactions,
because neither of them has a cyclic list. SCC forces
the uncommitted pages to be erased before updating the
new version. BPCC uses a backpointer which points to
the last committed version. Only when the uncommitted
pages between the two committed versions are erased,
the page with the backpointer can be erased. Both of
them incur extra cost on garbage collection. Second,
the dependency between versions of each page prevents
concurrent execution of transactions that have accesses
to the same page and thus limits the exploitation of
internal parallelism. In contrast, LightTx aims to support
better transaction concurrency and reduce transaction
overhead by avoiding the pointer dependency check
and maintenance. Flag Commit [15] tries to reduce the
garbage collection overhead associated with the transaction
state tracking in SCC and BPCC, and proposes
AFC and CFC commit protocols by rewriting the page
metadata to reset the pointer. Because MLC NAND flash
does not support rewrite operations, AFC and CFC do
not apply to MLC NAND flash, which is increasingly
widespread as flash technology scales. TxCache [25] employs
byte-addressable non-volatile memories (NVMs)
as disk cache to reduce the transaction overhead. In
contrast, LightTx is designed to function in both SLC
and MLC NAND flash memory without requiring byteaddressable
NVMs.
MARS [26] also exports flexible interfaces to the software
from NVM-based SSDs. Since it is designed for
byte-addressable non-volatile memory, MARS uses WAL
and requires two copies for each update, one to the
log and one to its home location. In contrast, LightTx
is designed for flash memory and leverages the pagelevel
no-overwrite property of flash memory to support
transactional writes with only one copy.