论文部分内容阅读
Logging and replication are commonly used recovery approaches in database systems.To guarantee that the database state is not corrupted due to system crash,database systems rely on a centralized logging method to persist log entries into a stable storage device;to prevent data loss due to device failure,a primary server in the database system periodically replicates its state to backup servers by copying log entries over networks.As the transaction execution in a modern database system is highly parallelized,the centralized logging with a single I/O channel tends to inhibit the scalability of the system.Meanwhile,log entries generated at high speed make a network with limited bandwidth a potential bottleneck for replication.In this paper,we propose an in-memory transaction engine named Plover with parallel logging and speedy replication for primary-backup replication systems.The parallel logging enables concurrent execution of logging by utilizing multiple log buffers associated with multiple stable storages.All log entries in the log buffers maintain a global sequence number (GSN),which ensures a partial order among transactions.The kernel of the speedy replication is an adaptive shipping method,which allows to transfer data increments instead of log entries to backups under heavy workloads.Experimental results using the YCSB and TPC-C benchmarks show that Plover scales well with the increasing number of worker threads and stable storage devices.And our adaptive shipping requires only one fifth network bandwidth of the conventional log shipping.