tumblr の dashboard / twitter の timeline がどのように構築されるのか
from 2022/08
tumblr の dashboard / twitter の timeline がどのように構築されるのか
2022/8 の https://www.tumblr.com/dashboard
https://gyazo.com/95bde19f756247f358082333d4ecba7b
/kentaro/タイムライン構築の主導権がプラットフォームに移っている
フォローフォロワー時代の終焉|えとみほ(江藤美帆)|note
タイムライン型の古き良きSNSは、おすすめショート動画型に駆逐されてしまうのか|徳力基彦(tokuriki)|note
そもそも、リアルタイムにフォロー/フォローイングの関係を表示していると信じて疑わなかった dashboard / timeline が、ただたんにそれっぽく表示していただけだったのかもしれない、とか思ったり思わなかったり
それが、ただたんに、あからさまになっただけ、みたいな
twitter の timeline や tumblr の dashboard のようなタイムラインの機能って何が出自なのだろうか? タイムライン
2019
結局、出自、わからず
メールの INBOX とか NetNews のスレッドっぽいような気がするんだけど
Ajax の夜明けは Gmail だし
それぞれのユーザーはそれぞれ異なるフォロー関係を持っているじゃないですか。そのユーザーにそれぞれのタイムラインを構成して表示するのって高コストですよね。そんなことよくやろうと思ったよなー、なんて思ったり思わなかったり https://twitter.com/taizooo/status/1092767990393667585
かつて tumblr には、とにかくたくさんフォローして、誰よりも流量の大きな dsbd を構築して、だれよりも速く深く潜ることが良いリブログを生むのだ、というマッチョな共感があった
それが endless summer につながるわけだが
時系列な dashboard を自らの手でランダムな並びに変えるという行為
tumblr の場合
highscalability.com の Tumblr のアーキテクチャについての記事を読んだ - @kyanny's blog
2012
あと内部用に Firehose があってね、という紹介。 Firehose って Twitter の限定された API のことかと思ってたけど、 Twitter 特有のものではなかったのね。こいつがリアルタイムなデータ配信のキモになっているらしいがこの次の Cell Design がこの記事のハイライトともいうべき一番面白い部分なので前座は省く。
Cell Design For Dashboard Inbox
まず前提として、現状の Dashboard は scatter-gather モデルで作られている。これは「データをばらまいて」から「かき集める」ということで、データつまり post は sharding されて保存され(ばらまく)、ユーザーの Dashboard を組み立てるために shard から都度取得される(かき集める)。このモデルは非常に限られた間しかうまく稼働しないと見ていて、もう長くないかもね、と言っている。
そこでどうするかというと、 inbox モデルへ移行するらしい。 inbox モデルとはどういうことか、という説明もこのあと出てくるのだけど、先に触れておくと、各ユーザーは自分の Dashborad にどの post が表示されるべきか、 post ID が記録された inbox を持っていて、だれかが何かを post するとその post を購読しているユーザー全員の inbox に post ID が書き込まれる、という仕組み。まぁ名前の通りメールの inbox なのだけど、 post そのものではなく post ID だけが記録されるのでストレージ容量を相当節約できるんだとか。これのいいところは、 Dashboard を組み立てるときにいちいち following/followers の関係を user ID から引っ張ってきて、それで得られたすべての user の post ID を集めて・・・という、検索処理が重い問題を解決できる点にある。で、それを Cell Based Architecture で実装していて、それは Facebook Messages のやり方に似てるんだそうで。
Tumblr Architecture - 15 Billion Page Views a Month and Harder to Scale than Twitter - High Scalability -
2012
https://gyazo.com/d2da8dbc8e02fe60473e455bdc0ce6a0
Tumblr Engineering — How Post Content is Stored on Tumblr
2021
Tumblr Engineering — How Reblogs Work
2019
/hub/How Reblogs Work
twitter の場合
秒間120万つぶやきを処理、Twitterシステムの“今” - @IT
2010
The Architecture Twitter Uses to Deal with 150M Active Users, 300K QPS, a 22 MB/S Firehose, and Send Tweets in Under 5 Seconds - High Scalability -
2013
https://gyazo.com/69d5cf5e865da4a91dab3d80f915fd02
Twitter now has 150M world wide active users, handles 300K QPS to generate timelines, and a firehose that churns out 22 MB/sec. 400 million tweets a day flow through the system and it can take up to 5 minutes for a tweet to flow from Lady Gaga’s fingers to her 31 million followers.