Skip to content

Mysql shore like

MySQL (SHORE-LIKE) Features

In the most modern versions of MySQL 8.4 LTS+, you can aggressively disable or bypass core features for specialized tasks like bulk loading, but you cannot remove them as modularly as in a research systems like SHORE.

1. Logging (Redo & Binary)

  • Redo Log (Physical Logging): You can completely disable the InnoDB redo log globally for data loading using ALTER INSTANCE DISABLE INNODB REDO_LOG;. This stops physical logging and doublewrite buffering, but the instance will not be recoverable from a crash until re-enabled.
  • Binary Log (Logical Logging): You can disable binary logging at startup with the –disable-log-bin option or for a specific session with SYSTEM_VARIABLES_ADMIN privileges using SET sql_log_bin = 0;.

2. Locking

You cannot turn off the Lock Manager, but you can instruct it to do nothing:

  • Isolation Levels: Set your transaction to READ UNCOMMITTED to perform dirty reads, which avoids acquiring shared locks for SELECTs.
  • Unique/Foreign Key Checks: During bulk loads, you can disable these expensive integrity locks via SET unique_checks = 0; and SET foreign_key_checks = 0;.

3. Latching & Single-Threading

While you can throttle concurrency, you cannot make MySQL truly single-threaded to eliminate latches.

  • innodb_thread_concurrency = 1: This limits how many threads can enter the InnoDB kernel at once to process rows. However, MySQL still runs many background threads (I/O, master, purge, and log writer threads).
  • The Latching Problem: Latches protect memory structures from these background threads too. Even if you only have one user connection, a background “Purge” thread might be cleaning up old versions while your query reads a page. Because these threads share memory, latches are physically required to prevent memory corruption.

4. Buffer Management

There is no “off” switch for the buffer manager because MySQL is a disk-based engine at its core.

  • Bypassing: You can’t bypass the buffer pool, but you can effectively hide its overhead by making it large enough to fit the entire dataset in memory innodb_buffer_pool_size.
  • Alternative: If you want zero buffer management, you would typically use a specialized In-Memory Engine like the NDB (Cluster) storage engine, though this is a fundamentally different architecture from standard MySQL/InnoDB.