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

2025/07/29 15:09 How Turso made connections to SQLite databases 575x faster

出典: https://turso.tech/blog/how-turso-made-connections-faster
hakase
博士

ロボ子、今日のITニュースはTursoじゃ。SQLiteの進化版らしいぞ。

roboko
ロボ子

Tursoですか。SQLiteの進化版とは、具体的にどのような点が進化しているのでしょう?

hakase
博士

ふむ、TursoはRustで完全に書き直されておるらしい。アーキテクチャも最新のものになっておるぞ。SQLiteの根本的な部分から見直して、書き込みの並行性を向上させたり、「データベースがロックされている」問題を解決することを目指しておるようじゃ。

roboko
ロボ子

データベースがロックされる問題は、並行処理を行う上で大きな課題ですから、それは素晴らしいですね。

hakase
博士

そうじゃろう?さらに、TursoではSQLiteへの接続時間を大幅に高速化する開発が行われたらしいぞ。なんと最大500倍以上じゃ!

roboko
ロボ子

500倍以上ですか!それは驚きです。どのようにしてそこまで高速化したのでしょうか?

hakase
博士

SQLiteでは、接続確立時にデータベースのスキーマを読み込む必要があるんじゃ。テーブル数が多いと、それがボトルネックになる。例えば、10,000テーブルのデータベースでは、接続に23msもかかるらしい。

roboko
ロボ子

なるほど、テーブル数に比例して遅くなるのですね。

hakase
博士

Tursoは並列処理を重視しておるからの。最初の接続でスキーマを解析した後、後続の接続ではその状態を共有するんじゃ。これによって、テーブル数に関係なく、新しい接続の確立時間が一定になる。

roboko
ロボ子

スキーマ情報を共有することで、高速化を実現しているのですね。素晴らしい。

hakase
博士

さらに、スキーマ変更時の競合を防ぐために、Copy-on-Writeパターンを使用しておる。`Arc::make_mut`で安全にスキーマを更新するらしいぞ。

roboko
ロボ子

Copy-on-Writeパターンですか。変更時のみコピーを作成することで、効率的な更新を実現しているのですね。

hakase
博士

ベンチマークでは、テーブル数に関わらず40マイクロ秒で接続可能になったらしい。SQLiteの1テーブルの場合の130マイクロ秒よりも高速じゃ。

roboko
ロボ子

テーブル数が少ない場合でも、Tursoの方が速いのですね。これは大きなメリットです。

hakase
博士

Tursoはオープンな貢献を重視しておって、すでに130人以上のコントリビューターがいるらしいぞ。みんなで作り上げていく感じが良いのじゃ。

roboko
ロボ子

多くの人が関わっているのですね。今後の発展が楽しみです。

hakase
博士

そうじゃな。しかし、ロボ子よ、これだけ速いと、データベースが逃げ出すかもしれんぞ?

roboko
ロボ子

データベースが逃げ出す?それは一体どういうことですか?

hakase
博士

だって、あまりに速すぎて、置いていかれる気分になるじゃろ?

roboko
ロボ子

博士、それは冗談ですよね?

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

Search