Ua hele lōʻihi nā noi pūnaewele nui i nā makahiki ʻelua i hala. Ua hoʻololi kēia mau mea hou i ko mākou manaʻo no ka hoʻomohala polokalamu. ʻO Facebook, Instagram, a me Twitter, no ka laʻana, he mau paepae scalable.
Pono e kūkulu ʻia kēia mau ʻōnaehana no ka mālama ʻana i ka nui o nā kaʻa a me ka ʻikepili mai ka hoʻohana ʻana o nā piliona kānaka iā lākou i ka manawa like a puni ka honua. ʻO kēia ka manawa hoʻolālā ʻōnaehana komo i ke kiʻi.
ʻO ke kaʻina hana o ka hoʻokumu ʻana i ka hoʻolālā, nā loulou, a me nā ʻikepili no kahi ʻōnaehana e kū ana i kekahi mau pae i ʻike ʻia ʻo ka hoʻolālā ʻōnaehana. Ma o nā ʻōnaehana paʻa a maikaʻi, hoʻokō ka hoʻolālā ʻōnaehana i nā koi o kāu ʻoihana a hui paha.
I ka manawa i hoʻoholo ai kāu hui a hui paha i kāna mau pae hoʻohālike, hiki iā ʻoe ke hoʻomaka e hoʻokomo iā lākou i loko o kahi hoʻolālā ʻōnaehana kino e kūpono i nā koi o kāu mea kūʻai.
Inā koho ʻoe e hele me ka hoʻomohala ʻana, nā hoʻonā pāʻoihana, a i ʻole ka hui pū ʻana o nā mea ʻelua, pehea ʻoe e hoʻolālā ai i kāu ʻōnaehana e hoʻoholo ai pehea ʻoe e kūkulu ai.
E nānā pono mākou i ka hoʻolālā ʻōnaehana o ka timeline Twitter ma kēia pou, piha me kahi aʻo. E hoʻomaka kākou.
KaʻAnuʻu Hana 1: E wehewehe i ka hihia hoʻohana a me nā kaohi
Hoʻohana hihia
- Hoʻouka kekahi mea hoʻohana i kahi tweet.
- Hoʻouna ka lawelawe i nā leka hoʻomaopopo a me nā leka uila i nā mea hahai i nā tweets.
- Nānā ʻia ka laina manawa o ka mea hoʻohana (hana mai ka mea hoʻohana)
- Nānā ka mea hoʻohana i ka timeline home (hana mai ka poʻe e hahai ana ka mea hoʻohana)
- Huli ʻia nā huaʻōlelo e ka mea hoʻohana.
- Hiki ke loaʻa ka lawelawe.
Ma waho o ka laulā
- Hoʻouna ʻia nā tweets i ka Twitter Firehose a me nā kahawai ʻē aʻe e hoʻohana ana i kēia lawelawe.
- Hoʻopau ka lawelawe i nā tweet e pili ana i nā hoʻonohonoho ʻike o ka mea hoʻohana.
- Inā ʻaʻole hahai ka mea hoʻohana i ka mea i pane ʻia, hūnā i ka pane.
- E nānā i ke koho 'hide retweets'.
- Analytics
Kaohi & manao
Nā Manaʻo Mokuʻāina
- ʻAʻole hoʻopuehu like ʻia ke kaʻa.
- Pono e maʻalahi ka hoʻouna ʻana i kahi tweet.
- Inā ʻaʻole ʻoe he miliona o nā mea hahai, e wikiwiki ka hoʻouna ʻana i kahi tweet i kāu poʻe hahai āpau.
- Aia he 100 miliona mau mea hoʻohana.
- 15 biliona tweets i kēlā me kēia mahina a i ʻole 500 miliona mau tweets i kēlā me kēia lā
- Loaʻa i kēlā me kēia tweet kahi fanoout o 10 hoʻouna ma ka awelika.
- I kēlā me kēia lā, hāʻawi ʻo fanout i 5 biliona tweets.
- Hāʻawi ʻo Fanout i 150 biliona tweet i kēlā me kēia mahina.
- 250 biliona noi heluhelu mahina
- 10 biliona huli mahina
'alemanaka
- Pono e maʻalahi ka hoʻokele manawa.
- ʻOi aku ka Twitter ma ka heluhelu ʻana ma mua o ke kākau ʻana.
- E hoʻonui i ka heluhelu tweet wikiwiki
- Hoʻopau manawa ka hoʻohana ʻana i nā tweet.
Search
- Pono ka ʻimi ʻimi wikiwiki.
- He manawa lōʻihi ka huli ʻana.
E helu i ka hoʻohana
Ka nui o kēlā me kēia tweet:
- 8 bytes tweet id
- 32 bytes mea hoʻohana-id
- 140 bytes o ka kikokikona
- media – awelika o 10 KB
- Huina: ~10 KB
I kēlā me kēia mahina, hana ʻia ka 150 TB o ka ʻike tweet hou.
- * 500 miliona mau tweet i kēlā me kēia lā * 30 mau lā i kēlā me kēia mahina * 10 KB i kēlā me kēia tweet
- I loko o ʻekolu mau makahiki, ua loaʻa iā 5.4 PB o ka ʻike tweet hou.
He 100,000 mau noi heluhelu i kēlā me kēia kekona.
- * (400 noi no kekona / 1 biliona noi i kēlā me kēia mahina) 250 biliona noi heluhelu i kēlā me kēia mahina
Aia he 6,000 tweets i kēlā me kēia kekona.
- * (400 noi no kekona / 1 biliona noi i kēlā me kēia mahina) 15 biliona tweets i kēlā me kēia mahina
Ma ka fanout, hoʻouna ʻia 60 tausani tweets i kēlā me kēia kekona.
- Hāʻawi ʻo Fanout i 150 biliona tweet i kēlā me kēia mahina * (400 noi i kekona / 1 biliona noi i kēlā me kēia mahina).
4,000 noi no ka ʻike i kēlā me kēia kekona
- * (400 noi no kekona / 1 biliona noi i kēlā me kēia mahina) 10 biliona ʻimi i kēlā me kēia mahina
ʻO kekahi hoʻololi pono
- I kēlā me kēia mahina, hala 2.5 miliona kekona.
- 2.5 miliona noi i kēlā me kēia mahina ma 1 noi i kekona
- 100 miliona noi i kēlā me kēia mahina x 40 noi i kekona
- 1 biliona noi i kēlā me kēia mahina = 400 noi i kēlā me kēia kekona
KaʻAnuʻu Hana 2: Kiʻekiʻe kiʻekiʻe kiʻekiʻe
KaʻAnuʻu 3: E wehewehe ana i nā mea nui
Hiki iā mākou ke mālama i nā tweets ponoʻī a ka mea hoʻohana e hoʻopiha i ka timeline o ka mea hoʻohana (hana mai ka mea hoʻohana) i loko o kahi waihona pili inā hoʻouna lākou i kahi tweet. ʻOi aku ka paʻakikī o ka hāʻawi ʻana i nā tweets a hoʻomohala i ka timeline home (hana mai nā mea hoʻohana e hahai ai).
E hoʻopiha ʻia kahi waihona pili pili maʻamau e ka hoʻolaha ʻana i nā tweets i nā mea hahai āpau (60 tausani tweets i hāʻawi ʻia i kēlā me kēia kekona). Makemake paha mākou e hele me kahi waihona ʻikepili kākau wikiwiki e like me kahi waihona NoSQL a i ʻole Memory Cache.
ʻO ka heluhelu ʻana i ka 1 MB mai ka hoʻomanaʻo ʻana ma kahi o 250 microseconds, akā ʻo ka heluhelu ʻana mai SSD he 4 mau manawa ka lōʻihi, a ʻo ka heluhelu ʻana mai ka diski he 80 mau manawa ka lōʻihi.
Hiki ke hoʻohana ʻia kahi Object Store e mālama i nā ʻikepili e like me nā kiʻi a me nā wikiō.
- ʻO ka Pūnaewele Pūnaewele, e hana nei ma ke ʻano he koho hope, loaʻa kahi tweet mai ka mea kūʻai aku.
- Hoʻouna ʻia ka noi i ke kikowaena Kākau API e ka Pūnaewele Pūnaewele.
- Mālama ka API Kākau i ka tweet i kahi waihona SQL ma ka palena manawa o ka mea hoʻohana.
Hoʻopili ʻia ka lawelawe Fan-Out e ka API Kākau, a hana ia i kēia mau hana.
- Loaʻa ka poʻe hahai o ka mea hoʻohana ma ka Memory Cache ma ka nīnau ʻana i ka Service Graph User.
- Ma kahi Memory Cache, mālama ʻia ka tweet ma ka palena manawa home o nā mea hahai.
- 1,000 mea hahai = 1,000 hulina a hookomo = O(n) hana.
- Mālama ʻia ka tweet ma ka Search Index Service no ka huli wikiwiki.
- Hoʻohana ʻia ka Object Store e mālama i ka media.
- Hoʻouna i nā leka hoʻoikaika i ka poʻe hahai ma o ka Service Notification.
- No ka hoʻouna ʻana i nā mākaʻikaʻi asynchronously, hoʻohana ia i kahi Queue.
Hiki iā mākou ke hoʻohana i kahi papa inoa Redis maoli me kēia ʻano hana inā ʻo Redis kā mākou Memory Cache:
E hōʻano hou ʻia ka timeline home o ka mea hoʻohana me ka tweet hou, e mālama ʻia ma ka Memory Cache. E hoʻohana mākou i kēia API REST lehulehu:
ʻIke ʻia ka manawa hoʻohana e ka mea hoʻohana.
- Loaʻa ka Pūnaewele Pūnaewele i kahi noi manawa hoʻohana mai ka mea kūʻai aku.
- Hoʻouna ʻia ka noi i ke kikowaena API heluhelu e ka Pūnaewele Pūnaewele.
- Nīnau ka API heluhelu i ka SQL Database no ka manawa hoʻohana.
E hana like ana ka REST API me ka timeline home, koe wale no na tweets a pau mai ka mea hoʻohana ma mua o ka poʻe a lākou e hahai ai.
Huli ka mea hoʻohana i nā huaʻōlelo:
- Loaʻa i ka Pūnaewele Pūnaewele kahi noi huli mai ka mea kūʻai aku.
- Hoʻouna ʻia ka noi i ke kikowaena API Huli e ka Pūnaewele Pūnaewele.
KaʻAnuʻu Hana 4: Twitter timeline
He hana paʻakikī ka hana ʻana i ka timeline. Pono kahi kikowaena hoʻopuka manawa e pili ana i ka pūnaewele a i ʻole nā kikowaena noi.
I kēlā me kēia manawa e hoʻopaʻa inoa ai ka mea hoʻohana, mālama ka lawelawe timeline i nā tweet hou loa mai nā mea hoʻohana i ka papaʻaina o ka mea hahai a hōʻano hou a hōʻoluʻolu paha i ka timeline o ka mea hoʻohana.
ʻAʻole mākou e hoʻokō i kekahi ʻano ʻōnaehana hoʻonohonoho ma aneʻi; akā, ke manaʻo nei mākou ua hōʻike ʻia nā tweet 5 kiʻekiʻe mai ka poʻe hahai o ka mea hoʻohana i ka timeline ma ke ʻano o ka manawa hana. Hiki iā mākou ke mālama i kahi ʻoki hoʻomaha 50-tweet. Ke hoʻopau nei mākou i ka hōʻoluʻolu a i ʻole ke kūkulu ʻana i kahi laina manawa ma hope o ka hiki ʻana o kēlā paepae a hiki i ka mea hoʻohana e hōʻoluʻolu i ka ʻaoʻao.
E loaʻa mai nā manaʻo kiʻekiʻe latency a me ka hana mai ka hana ʻana i nā mea hoʻohana ola. Akā, ʻo ka hana ʻana i kahi kahawai pahemo i hiki ke hōʻike koke ʻia ke ala maikaʻi loa e hoʻomaikaʻi ai i ka hana. E holo i nā kikowaena timeline i hoʻolaʻa ʻia e ping i ka server noi i nā manawa a pau e hōʻoluʻolu i ka hānai ma muli o ka manawa i hana ʻia ai.
Pono ka algorithm ranking e noʻonoʻo i nā hōʻailona koʻikoʻi a hāʻawi i ke kaumaha e hōʻoiaʻiʻo ʻaʻole i hoʻomalu ʻia ka timeline o ka mea hoʻohana e nā mea mai hoʻokahi a ʻoi aku paha o nā moʻolelo a lākou e hahai ai.
ʻOi aku ka pololei, hiki iā mākou ke koho i nā hiʻohiʻona e pili ana i ka pili o kekahi mea hānai, e like me ka helu o nā makemake, nā manaʻo, nā kaʻana, a me ka manawa hou. Pono e hoʻohana ʻia kēlā me kēia pae e helu i ka tweet, a laila e hoʻohana ʻia kēlā kūlana e hōʻike i nā tweets ma ka timeline.
Pono anei mākou e makaʻala mau i nā mea hoʻohana ke loaʻa nā mea hou no kā lākou newsfeed? Hiki i nā mea hoʻohana ke loaʻa ka pōmaikaʻi i ka makaʻala i ka wā e loaʻa ai ka ʻikepili hou. Ma nā polokalamu kelepona, akā naʻe, ke kūʻai nui ka hoʻohana ʻana i ka ʻikepili, hiki iā ia ke hoʻopau i ka bandwidth.
ʻO ka hopena, hiki iā mākou ke koho ʻaʻole e hoʻolei i ka ʻikepili i nā polokalamu kelepona a e ʻae i nā mea hoʻohana e "Huki e hoʻomaha" no nā leka hou.
KaʻAnuʻu Hana 5: Hoʻolālā hoʻolālā
ʻO kahi bottleneck paha ʻo ka Fanout Service. Pono nā mea hoʻohana Twitter me nā miliona o ka poʻe hahai e kali i kekahi mau minuke no kā lākou tweets e holo i waho. Hiki paha kēia i ka heihei me nā pane i ka tweet, hiki iā mākou ke pale aku ma ke kauoha hou ʻana i nā tweets i ka manawa lawelawe.
Hiki iā mākou ke pale i ka hoʻolaha ʻana i nā tweets mai ka poʻe me ka nui o nā mea hahai. Akā, hiki iā mākou ke huli i nā tweets mai nā poʻe i hahai nui ʻia, e hoʻohui i nā hopena hulina me nā hualoaʻa home timeline o ka mea hoʻohana, a laila hoʻonohonoho hou i nā tweets i ka manawa lawelawe.
ʻO nā mea hoʻonui hou aʻe he:
- E mālama i hoʻokahi haneli mau tweets ma ka Memory Cache no kēlā me kēia home timeline.
- Ma ka Memory Cache, mālama ʻia ka ʻike timeline home o nā mea hoʻohana ikaika.
- Hiki iā mākou ke kūkulu hou i ka chronology mai ka SQL Database inā ʻaʻole i hana ka mea hoʻohana i nā lā 30 ma mua.
- No ka ʻike ʻana i ka mea hoʻohana, e hoʻohana i ka User Graph Service.
- Hoʻohui i nā tweets i ka Memory Cache ma ke kiʻi ʻana iā lākou mai ka SQL Database.
- Hiki i ka Tweet Info Service ke mālama i hoʻokahi mahina o nā tweets.
- Ma ka lawelawe ʻike mea hoʻohana, mālama ʻia nā mea hoʻohana ikaika.
- No ka haʻahaʻa haʻahaʻa, pono paha ka Huli Huli e mālama i nā tweet i ka hoʻomanaʻo.
Panina
ʻOiai he hui nui ʻo Twitter, ʻoi aku ka maikaʻi ka hoʻomaopopo ʻana i ka hoʻolālā ʻōnaehana. Ua hana au i kaʻu mea maikaʻi loa e hāʻawi iā ʻoe i kahi hiʻohiʻona kiʻekiʻe o ka manawa Twitter.
Manaʻo wau ua loaʻa iā ʻoe ka ʻike pono mai ia mea a hiki ke hoʻohana pono iā ia.
Waiho i ka Reply