より多くのデータベースはシングルスレッドであるべきです。

2025/12/21 7:12

より多くのデータベースはシングルスレッドであるべきです。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

(欠落している要素を組み込む)**


要約

著者は、トランザクションデータベースは従来のマルチスレッドシャードではなく 単一スレッドで積極的にシャーディングされたシステム として構築すべきだと主張しています。各シャードに専用の書き込みスレッド(「シャードごとの単一ライター」)を割り当てることで、書き込み競合が排除され、高価な再試行やデッドロックなしでシリアライズ可能なトランザクションを実現できます。

従来の SQL トランザクションモード(READ COMMITTED, REPEATABLE READ, SERIALIZABLE)は小規模ではうまく機能しますが、重負荷下でロック競合、高い再試行率、不確定な失敗に悩まされます。提案モデルはこれらのボトルネックを取り除きます。

実際のトレードオフ:
初日からシャーディングすることで、複雑なクロスシャードクエリ、マイグレーション、トランザクション調整の必要性がなくなります。しかし、カウンタ、AUTO_INCREMENT カラム、シャード間での外部キー検証など、グローバル順序に依存する機能には制約を課します。

実現可能性の証拠:
既存システムはすでにこのアプローチを採用しています。ScyllaDB と VoltDB はシャードごとにコアを割り当てる設計であり、Cloudflare Workers や Rivet のようなアクターモデルプラットフォームも同様の「シャードあたり単一スレッド」概念を使用しています。

将来像:
著者は、Postgres 互換のデータベースが シャーディングされ、シャードごとに単一スレッドで完全にシリアライズ可能 であり、平均的なウェブ開発者でも利用できるようになり、規模拡大時に予測可能な性能を提供することを想像しています。

影響:
利点には概念の単純さ、デッドロックの排除、完全な水平スケーラビリティ、高いスレッドあたりのスループット、および予測可能な遅延が含まれます。このアーキテクチャは開発者にとってシステム設計を簡素化し、企業にとって運用複雑性を低減させ、データベース業界全体をシャード中心の設計へと影響する可能性があります。

本文

タイトル:攻撃的にシャーディングされた単一スレッド型データベースが最適解になる理由

昨晩、X(旧Twitter)で「ほとんどのトランザクション系データベースは単一スレッドで、かつ積極的にシャーディングすべきだ」と投稿しました。予想以上に注目を浴びたので、もう少し詳しく説明します。

「万能な解決策は存在しません。しかし、攻撃的にシャーディングされた単一スレッド型データベースが、実際にはあなたの期待よりも頻繁に最適であることをご納得いただけると信じています。たとえ汎用的なB2B SaaSアプリを構築しているだけでも同様です。」


現状

従来のSQLデータベースは行単位で読み書きを行い、他のライターが待つようにロックできます。
PostgreSQLでは次の3種類のトランザクションモードがあります。

モード保証内容
READ COMMITTED(デフォルト)現在の状態を読み取り、書き込みは失敗しない
REPEATABLE READトランザクション開始時点でスナップショットを取得。以降に行が変更されると書き込みは中止
SERIALIZABLEREPEATABLE READ と同様だが、依存関係のある任意の行変更でも中止

問題点:

  1. 起動時 – トランザクションが本当にシリアライズ可能であることをコンパイル時に保証できない。
  2. スケール – いずれも書き込みロックが必要。高負荷時にはデッドロックや再試行率の増加。
  3. 予測性 – 本番環境でのレースコンディションはデバッグが難しい。
  4. スループット – ロック競合がDBロードの最大30%を消費し、トラフィック増加に伴い失敗率が上昇。

多くのスタックでは、サーバーレスコンピュートは水平に無制限に拡張できる一方で、データベースがスケーリングのボトルネックになるケースが少なくありません。


実務的現実

多くの企業は「ユーザーが増えてから対策を講じる」といった形でこれらの問題を放置します。
もっとシンプルなアプローチがあるとしたら?


1. 単一ライター型データベース

核心的課題は競合する書き込みです。もし全トランザクションが書き込まないのであれば、

SERIALIZABLE READ ONLY DEFERRABLE
を使えば十分です。

アイディア:各シャードに対してグローバルロックを設け、単一ライターのみ許可する。SQLite が行っている手法そのものです。

  • メリット:完璧な順序保証、デッドロックなし
  • デメリット
    • 単一ライターはスループットを制限
    • ロックオーバーヘッド(ファイルシステムレベルのロック)
    • ライターが停滞すると他全員も停滞

2. ライタ―のシャーディング

単一ライターが限界に達する場合、水平にシャードします。

  1. データベースを多数の小さなシャードへ分割
  2. 各シャードは独自の 単一 ライタースレッドを持つ
  3. 読み取りはコアごとに並列化可能

メリット

機能利点
シャード単位でのシリアライズ再試行不要(失敗時のみ)
デッドロックなしシンプルな概念モデル
水平スケーリングノードを追加して容量拡張
高いスレッド単位スループットデータはライターが所有、スレッド間同期不要

課題

  • クロスシャードクエリ(複雑な結合や集計)が難しい
  • シャード横断トランザクションの実装が困難(2フェーズコミットやサガが必要)
  • マイグレーションは各シャードを個別に扱う必要

3. 実践的考慮点

問題一般的な影響対策
カウンタ/オートインクリメントシャード横断でサポート不可UUIDやタイムスタンプIDを使用
DBレベル制約クロスシャード外部キーは強制できないアプリケーション側で検証
クロスシャード結合遅く、複雑OLAPリプレイヤーに集計結果をマテリアライズ
マイグレーション(ダウンタイム vs 無停止)各シャードでトランザクショナルコミットが必要ツールを用意し、すべてのシャードで一括コミット

4. 既存システム例

  • ScyllaDB – コアごとにシャーディングされたアーキテクチャ
  • VoltDB – 同様のモデル
  • Cloudflare Workers / Rivet – アクターモデルを取り入れたデータベース

これらは大規模ケース向けですが、同じ原則が小規模プロジェクトにも適用できます。


5. なぜ検討すべきか

  1. 予測可能性 – 隠れたレース条件がない
  2. シンプルさ – 各シャードのトランザクションは設計上シリアライズ済み
  3. スケーラビリティ – 水平拡張が容易
  4. パフォーマンス – ロック競合と再試行を排除

もちろん、クロスシャード結合の制限やマイグレーションの複雑さなど一部トレードオフはあります。しかし、多くのB2B SaaSアプリではそのメリットがコストを上回ります。


結論

「データベースを初日からシャーディングし、マイグレーションやクロスシャードロジックを扱うツールに投資できる」なら、攻撃的にシャーディングされた単一スレッド型アーキテクチャは非常に強力で予測可能な基盤となります。
特に従来のロックメカニズムによるオーバーヘッドなしにシリアライズ可能なトランザクションを実現したい場合、この手法は最適解になるでしょう。

同じ日のほかのニュース

一覧に戻る →

2025/12/21 3:28

**Spotify のバックアップ**

## Japanese Translation: ``` ## Summary Anna’s Archive は、Spotify のカタログのほぼ全て(約 2億5600 万曲と 1億8600 万個のユニーク ISRC コード、Spotify 再生回数の約 99.6 %)を収録した、大規模で公開アクセス可能な保存プロジェクトを開始しました。アーカイブには約 8,600 万曲(≈300 TB)の音楽ファイル、SQLite データベースに格納された 200 GB 超の圧縮メタデータ、および音声特徴量データ(テンポ、キー、ダンス性など)を含む約 4,000 万行が含まれています。 配布は人気順でグループ化した大量トレント経由です。トップ 10,000 曲は OGG Vorbis 160 kbit/s で提供され、順位の低い曲は OGG Opus 75 kbit/s に再エンコードされています。追加コンテンツとしては、ファイル名プレフィックスでインデックスされたアルバムアートを含む tar‑torrent と、オーディオブック(約 70 万行)、オーディオブック章(約 2000 万件)、ポッドキャスト/ショー(約 500 万件)、エピソード(約 5400 万件)の原始 JSON データセットがあります。アーカイブには再エンコード状況、SHA256 ハッシュ、ライセンス情報、歌詞、言語、およびアーティストの役割を含む詳細な `track_files` テーブルもあります。 プレイリストデータも収録されています:フォロワー 1,000 人以上の約 660 万プレイリストがあり、総曲数は 17 億曲に達します。メタデータは 2025 年 12 月に発表され、音声ファイルは人気順で提供され、2025 年 7 月を境に追加されたトラックは欠落している可能性があります。Anna’s Archive はトレントのシーディングと寄付を奨励し、継続的な保存活動を支援しています。 研究者・AI 開発者・デジタルアーカイブ担当者にとって、このプロジェクトは Spotify のライブラリを分析、モデル学習、遺産保全のために利用できる前例のない高品質なスナップショットを提供し、ストリーミング業界における長期データ管理の新たな標準となり得ます。 ```

2025/12/21 4:56

アイルランド出身のディアムウィッド・エーリーが、マイクロソフト・エクセル世界選手権で優勝しました。

## Japanese Translation: Diarmuid Early はラスベガスで開催された 2025 年 Microsoft Excel ワールドチャンピオンシップを制覇し、60,000 ドルの賞金と選手権ベルトを獲得しました。この大会には世界中から 256 名の競技者が集まり、連続ノックアウトラウンドの後、24 名のファイナリストがタイム付きでグローバルに配信されるアリーナで対戦しました。試合は 30 分間ごとのチャレンジに分かれ、難易度が段階的に上昇し、正しいスプレッドシートの回答にポイントが与えられました。5 分ごとに自動的に「Thanks for playing, you’re out」というメッセージで除外されます。Early は「Excel スプレッドシートのレブロン・ジェームズ」と称され、ガリウイ出身でウォーターフォード育ち、現在はニューヨークで金融ビジネスを運営しています。彼はこのニックネームを自分の身長に起因するとユーモラスに語ります。3 回連続チャンピオンであるオーストラリア人アクチュエリスト Andrew Ngai を破りましたが、**全体で 2 位**となりました。 Excel e‑スポーツは金融中心の対戦から迷路ナビゲーション、ポーカー手札評価、カードソートバトルなど創造的な問題解決タスクへと移行し、コミュニティを活性化させています。大規模な WhatsApp グループが新参者にヒントや戦略の議論を提供しています。 今後は「Road to Las Vegas Battle」が 2026 年 1 月 22 日に開始され、オープン登録が行われます。Early の勝利は企業からの関心を呼び、彼はスプレッドシートコンサルティングを提供し、YouTube でウォークスルービデオをホストしています。 この選手権の可視化は Excel コンペティションへの企業エンゲージメントを高め、専門的なスプレッドシート研修需要を増加させる可能性があります。拡張されたストリーミングとコミュニティプラットフォームは参加者数をさらに伸ばす一方で、進化するトーナメント形式が金融・テックセクター全体でスプレッドシートスキルのマーケティング方法を再構築するかもしれません。

2025/12/21 6:00

**Show HN:** *Jmail – エプスタインファイル専用 Google スイート*

## Japanese Translation: **要約はすでにキーポイントリストの内容を正確に反映しており、追加の推測や曖昧な表現が含まれていないため、そのまま最終版として繰り返すことができます。** --- ## 最終まとめ 記事全体の内容は「Loading Jmail…」というフレーズです。これは単にJmail というプログラムまたはアプリケーションが起動中であるか、情報を取得している状態を示しています。追加の文脈・背景・今後の行動や影響については提供されていません。

より多くのデータベースはシングルスレッドであるべきです。 | そっか~ニュース