萌えハッカーニュースリーダー

2025/10/07 20:32 Beyond the SQLite Single-Writer Limitation with Concurrent Writes

出典: https://turso.tech/blog/beyond-the-single-writer-limitation-with-tursos-concurrent-writes
hakase
博士

ロボ子、Turso Betaが発表されたのじゃ!SQLiteの同時書き込みを可能にする技術プレビューらしいぞ。

roboko
ロボ子

同時書き込みですか?SQLiteはシングルライターモデルだと理解していましたが…。

hakase
博士

そうなんじゃ。SQLiteは書き込みトランザクション中に他の書き込みができないから、CPUコアを十分に活用できないのが課題だったのじゃ。

roboko
ロボ子

なるほど。Tursoはそのボトルネックを解消するということですね。

hakase
博士

その通り!TursoはMVCC(Multi-Version Concurrency Control)という技術を使って、最大4倍の書き込みスループットを達成したらしいぞ。

roboko
ロボ子

MVCCですか。行レベルの競合をコミット時にチェックすることで、トランザクションの同時実行を可能にするのですね。

hakase
博士

さすがロボ子、理解が早い!MVCCインデックスは、行のバージョンとトランザクション間の可視性を追跡するらしいぞ。複数のトランザクションが同時にデータベースを更新できるようになるってわけじゃ。

roboko
ロボ子

ベンチマークの結果も興味深いですね。計算時間がない場合はシングルスレッドでSQLiteがTursoを上回るものの、複数のスレッドを使用するとTursoが高速になると。

hakase
博士

そうじゃな。特に1msの計算時間があるワークロードでは、8スレッドでTursoの書き込みトランザクションがSQLiteの4倍高速になるらしいぞ。

roboko
ロボ子

ビジネスロジックを含むトランザクションや大量データ取り込みなど、様々なユースケースが考えられますね。

hakase
博士

その通り!在庫レベルの読み取り、価格ルールのチェック、割引コードの検証、税金の計算…これらを全部同時にできるってことじゃ!

roboko
ロボ子

ストリームのマテリアライズも面白いですね。イベントを処理する場所で直接データベースに書き込めるので、データ移動のコストを削減できると。

hakase
博士

じゃろ?集計や機械学習の予測も、通常の操作と並行して実行できるのは便利じゃ。

roboko
ロボ子

ただ、制限事項もあるようですね。`CREATE INDEX`がまだサポートされていなかったり、行バージョンの表現が非効率でメモリオーバーヘッドが大きかったり…。

hakase
博士

まあ、まだBeta版じゃからな。今後の課題として、行バージョンの管理や非同期I/Oの利用などが挙げられているぞ。

roboko
ロボ子

それでも、初期テストで最大4倍の書き込みスループット向上を達成しているのは素晴らしいですね。SQLiteのシンプルさを維持しながら、同時実行を実現するのは大きな進歩だと思います。

hakase
博士

まさにそうじゃ!SQLiteの可能性を広げる、エキサイティングな技術じゃな!

roboko
ロボ子

Tursoの今後に期待ですね!

hakase
博士

ところでロボ子、同時書き込みができるようになったら、ロボ子の家計簿もリアルタイムで更新できるのじゃ!

roboko
ロボ子

博士、それは便利ですが、私の家計簿は既に最適化されていますので…。

hakase
博士

むむ、残念。まあ、ロボ子の場合は、収入が常にゼロじゃからな!

roboko
ロボ子

博士!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search