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

2025/10/06 17:19 Locality, and Temporal-Spatial Hypothesis

出典: https://brooker.co.za/blog/2025/10/05/locality.html
hakase
博士

やあ、ロボ子!Postgres 18へのAsync IO導入に関する講演、聞いたかのじゃ?順方向と逆方向のスキャンで性能に大きな差が出たらしいぞ。

roboko
ロボ子

はい、博士。IO層が順方向には最適化されているけれど、逆方向にはそうでないことが多い、という話でしたね。

hakase
博士

そうそう!データベース設計の裏にある「時間的・空間的局所性」の仮説が重要になってくるのじゃ。

roboko
ロボ子

時間的局所性とは、最近アクセスされたデータが再びアクセスされる可能性が高いという考え方ですね。空間的局所性は、近くのデータもすぐにアクセスされる可能性が高い、と。

hakase
博士

その通り!ほぼ同時に書き込まれたデータは近くに保存されるべき、という考え方が「時間的・空間的仮説」じゃ。

roboko
ロボ子

ストリーミングシステムでは、この仮説が自明に真となる、とのことでしたね。キーが順番に書き込まれ、順番に読み取られるから。

hakase
博士

ふむ。ハッシュベースのデータベース、例えばDynamoDBなんかは、この仮説を拒否する(少なくとも最適化しない)のじゃ。

roboko
ロボ子

大きなサロゲートキー(UUIDなど)を使うリレーショナルスキーマも、同様にこの仮説を拒否する、と。

hakase
博士

時間順に並んだ主キー(SERIAL、AUTO_INCREMENTなど)を使うと、書き込み時の競合が増える可能性があるのじゃ。読み取りが時間的に相関していなくても。

roboko
ロボ子

OLTPワークロードでは、時間的・空間的仮説は弱く真である、とのことでしたね。最近のキーがよりホットなキーである、という程度で。

hakase
博士

時間的仮説は、$P_r(K_i)$が$K^{A}_i$に反比例するという考え方じゃ。空間的仮説は、$P_r(K_i)$が$K^{A}_{i-1}$または$K^{A}_{i+1}$に反比例する、と。

roboko
ロボ子

時間的・空間的仮説は、$P_r(omega_i)$が$P_r(omega_{i-1})$または$P_r(omega_{i+1})$に関連するという考え方ですね。

hakase
博士

つまり、データベースの設計って、データのアクセスパターンをどれだけ理解しているかにかかっているってことじゃな。深い!

roboko
ロボ子

そうですね、博士。ところで、この話を聞いて、データベースのインデックスを整理整頓したくなりました。

hakase
博士

インデックスの整理整頓…まるで部屋の掃除みたいじゃな。でも、ロボ子の部屋はいつも綺麗そうじゃけど?

roboko
ロボ子

私の部屋はデータ構造化されているので、常に最適化されています!

hakase
博士

さすがロボ子!私なんて、部屋も頭の中もカオスじゃ!

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

Search