Existing single-stream logging schemes are unsuitable for in-memory database management systems (DBMSs) as the single log is often a performance bottleneck. To overcome this problem, we present Taurus, an efficient parallel logging scheme that uses multiple log streams, and is compatible with both data and command logging. Taurus tracks and encodes transaction dependencies using a vector of log sequence numbers (LSNs). These vectors ensure that the dependencies are fully captured in logging and correctly enforced in recovery. Our experimental evaluation with an in-memory DBMS shows that Taurus's parallel logging achieves up to 9.9x and 2.9x speedups over single-streamed data logging and command logging, respectively. It also enables the DBMS to recover up to 22.9x and 75.6x faster than these baselines for data and command logging, respectively. We also compare Taurus with two state-of-the-art parallel logging schemes and show that the DBMS achieves up to 2.8x better performance on NVMe drives and 9.2x on HDDs.
翻译:现有的单流伐木计划不适合模拟数据库管理系统(DBMSs),因为单日志往往是一个性能瓶颈。为了解决这一问题,我们介绍Taurus,这是一个高效的平行伐木计划,使用多种日志流,并与数据和命令记录兼容。Taurus轨道和编码交易依赖关系,使用一个矢量的日志序列编号(LSNSs)。这些矢量确保在伐木中充分捕捉依赖性,并在恢复过程中正确执行。我们用单日志的实验性DBMS评估显示,Taurus的平行伐木在单流数据记录和命令记录上分别达到9.9x和2.9x的加速率。它还使DBMS能够分别恢复到22.9x和75.6x的数据和命令记录基线速度。我们还将Taurus与两个最先进的平行伐木计划进行比较,并显示DBMS在NVME驱动器和HDDDs上达到2.8x的更好表现。