Everything about Logging(Related Research)

Using WAL for Transaction Durability

Development of Serial(Sequential?) Logging

  • Binary Log in MySQL
    • contains “events” that describe database (potentially) changes such as table creation operations or changes to table data. two important purposes:
      • For data replication. The source sends the information contained in its binary log to its replicas, which reproduce those transactions to make the same data changes that were made on the source.
      • For certain data recovery operations. After a backup has been restored, the events in the binary log that were recorded after the backup was made are re-executed.
    • binary logging formats: statement-based logging(issues with replicating nondeterministic statements), row-based logging(default, indicate how individual table rows are affected), mixed logging
    • TODO!: design of MySQL binary log / SQL Server transaction logs mysql-log-bin-01.png

Bottleneck caused by sequential logging

Silo 文章针对多核主存式存储系统抽象进行了分类,主要依据对事务的支持程度。但这里的分类和我们讨论的 WAL 的发展(串行到并行日志记录)的联系还没有理清楚

Non-transactional systems

Transactional systems

Concurrency control

  • OCC(Optimal CC) MVCC(Multi-versions CC)