X



膨大な呟きを管理するツイッター。過去ログは月ごとに分けて保管していた。ユーザーが見ようとするログの大半は最新月の分だけなので [988626156]
■ このスレッドは過去ログ倉庫に格納されています
0001番組の途中ですがアフィサイトへの転載は禁止です (スフッ Sdb3-t4Ri)
垢版 |
2023/08/24(木) 01:47:40.16ID:MTCLbPRYd?2BP(1000)

秒間120万つぶやきを処理、Twitterシステムの“今” 2010/04/19
https://atmarkit.itmedia.co.jp/news/201004/19/twitter.html


【時系列にパーティショニング】

 つぶやきの量が多すぎるため、単一のテーブルに保存するのは非現実的。かといって、ユーザーIDやつぶやきIDに基づいて何らかの形で分割するというのも、あまりうまくいかない。

 そこで現在のTwitterでは、時系列のパーティショニングを行っているという。1月のつぶやき、2月のつぶやき、3月のつぶやき、今月(4月)のつぶやき、というように時間軸に沿ってデータを分割しているのだという。


この分割戦略は「当初はとてもまずい実装のように思えた」(Kallen氏)という。n個のパーティションに分割したら、そのアクセス時間の平均はO(n)となるからだ。ところがTwitterというサービスには、Kallen氏が「時間的局所性」(temporal locality)と呼ぶ独特のアクセスパターンがある。「実際にはほとんどのクエリは、より新しい情報へのバイアスがかかっている」(同)からだ。ほとんどの人のリクエストは最新のパーティションに対するクエリで完結する。すべてのユーザーがアクティブなわけではないため、「あるユーザーの直近のつぶやき20件」は、複数のパーティションにさかのぼっていくことになるが、それでもこの戦略によりアクセス時間の平均は事実上O(1)となっているのだという。

 今後はFacebookで開発されたオープンソースのCassandraを使い、つぶやきのIDとユーザーIDのそれぞれをプライマリキーとしたテーブルを使う計画だという。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況