Ny fampiharana an-tserasera midadasika dia lasa lavitra tao anatin'ny roapolo taona lasa. Ireo fanavaozana ireo dia nanova ny fomba fijerinay momba ny famolavolana rindrambaiko. Facebook, Instagram ary Twitter, ohatra, dia sehatra azo scalable avokoa.
Ireo rafitra ireo dia tsy maintsy amboarina hitantana ny fifamoivoizana sy angon-drakitra marobe satria olona an'arivony tapitrisa no mampiasa azy ireo amin'ny fotoana mitovy manerana izao tontolo izao. Izao no fotoana famolavolana rafitra miditra amin'ny sary.
Ny dingana amin'ny fametrahana ny maritrano, ny fifandraisana ary ny angona ho an'ny rafitra iray izay mahafeno fepetra sasany dia fantatra amin'ny anarana hoe famolavolana rafitra. Amin'ny alàlan'ny rafitra mirindra sy mahomby, ny famolavolana rafitra dia mamaly ny fitakian'ny orinasanao na ny fikambananao.
Rehefa voafaritry ny orinasanao na ny fikambananao ny fepetrany dia azonao atao ny manomboka mampiditra azy ireo amin'ny famolavolana rafitra ara-batana mifanaraka amin'ny fangatahan'ny mpanjifanao.
Na misafidy ny handeha amin'ny fampandrosoana manokana ianao, ny vahaolana ara-barotra, na ny fitambaran'ireo roa ireo, ny fomba famolavolanao ny rafitrao no hamaritra ny fomba hanangananao azy.
Hojerentsika amin'ny antsipiriany ny famolavolana rafitra an'ny timeline Twitter ato amin'ity lahatsoratra ity, miaraka amin'ny fampianarana. Andeha isika hanomboka.
Dingana 1: Famaritana ny tranga sy ny faneriterena
Fampiasana tranga
- Mpampiasa iray mandefa bitsika.
- Ny serivisy dia mandefa fampandrenesana sy mailaka ho an'ny mpanaraka ny bitsika.
- Ny lamin'ny mpampiasa dia jerena (asa avy amin'ny mpampiasa)
- Ny mpampiasa dia mijery ny fandaharam-potoana an-trano (hetsika avy amin'ny olona arahin'ny mpampiasa)
- Ny teny fototra dia karohin'ny mpampiasa.
- Ny serivisy dia tena azo idirana.
Lavitra ny sehatra
- Ny bitsika dia alefa any amin'ny Twitter Firehose sy ireo renirano hafa mampiasa ity serivisy ity.
- Ny serivisy dia manala ny bitsika mifototra amin'ny firafitry ny fahitana ny mpampiasa.
- Raha tsy manaraka an'ilay olona valiana koa ilay mpampiasa dia afeno ny valiny.
- Jereo ny safidy 'manafina retweet'.
- Analytics
Fepetra & vinavina
Fihevitry ny fanjakana
- Tsy mitovy ny fiparitahan’ny fifamoivoizana.
- Tokony ho tsotra ny fandefasana bitsika.
- Raha tsy manana mpanaraka an-tapitrisany ianao dia tokony ho haingana ny fandefasana bitsika amin'ny mpanaraka anao rehetra.
- Misy mpampiasa mavitrika 100 tapitrisa.
- Sioka 15 lavitrisa isam-bolana na sioka 500 tapitrisa isan'andro
- Ny sioka tsirairay dia manana fanoout 10 amin'ny salan'isa.
- Isan'andro dia mandefa sioka 5 miliara i fanout.
- Fanout dia mandefa sioka 150 lavitrisa isam-bolana.
- 250 lavitrisa ny fangatahana famakiana isam-bolana
- Fikarohana 10 miliara isam-bolana
Timeline
- Tokony ho mora ny fandehanana ny fandaharam-potoana.
- Ny Twitter dia momba ny famakiana bebe kokoa noho ny fanoratana.
- Amboary ny famakiana bitsika haingana
- Mandany fotoana ny fanjifana bitsika.
Mitady
- Tokony ho haingana ny fizotry ny fikarohana.
- Mandany fotoana ny fitadiavana.
Kajy ny fampiasana
Haben'ny bitsika tsirairay:
- 8 bytes tweet id
- 32 bytes mpampiasa-id
- 140 bita lahatsoratra
- haino aman-jery - eo ho eo amin'ny 10 KB
- Total: ~10 Kio
Isam-bolana, 150 TB amin'ny votoaty bitsika vaovao no avoaka.
- * Sioka 500 tapitrisa isan'andro * 30 andro isam-bolana * 10 KB isaky ny sioka
- Tao anatin'ny telo taona, nisy 5.4 PB ny votoaty bitsika vaovao.
Misy fangatahana famakiana 100,000 isa-tsegondra.
- * (400 fangatahana isan-tsegondra / 1 miliara fangatahana isam-bolana) 250 miliara fangatahana famakiana isam-bolana
Misy sioka 6,000 isa-tsegondra.
- * (400 fangatahana isan-tsegondra / 1 miliara fangatahana isam-bolana) 15 miliara sioka isam-bolana
Amin'ny fanout, sioka 60 arivo no alefa isaky ny segondra.
- Fanout dia mandefa sioka 150 miliara isam-bolana* (400 fangatahana isan-tsegondra / 1 miliara fangatahana isam-bolana).
4,000 ny fangatahana vaovao isan-tsegondra
- * (400 fangatahana isan-tsegondra / 1 miliara fangatahana isam-bolana) 10 miliara fikarohana isam-bolana
Ny sasany fiovam-po mahasoa
- Isan-bolana, 2.5 tapitrisa segondra no mandalo.
- Fangatahana 2.5 tapitrisa isam-bolana amin'ny fangatahana 1 isan-tsegondra
- Fangatahana 100 tapitrisa isam-bolana x fangatahana 40 isa-tsegondra
- Fangatahana 1 lavitrisa isam-bolana = fangatahana 400 isa-tsegondra
Dingana 2: kisary avo lenta
Dingana 3: Manazava ireo singa fototra
Afaka mitahiry ny bitsika manokana an'ny mpampiasa izahay mba hamenoana ny fandaharam-potoanan'ny mpampiasa (hetsika avy amin'ny mpampiasa) ao anaty angon-drakitra mifandraika raha mandefa bitsika izy ireo. Sarotra kokoa ny mandefa bitsika sy mamolavola ny fandaharam-potoana ao an-trano (hetsika avy amin'ny olona manaraka ny mpampiasa).
Ny angon-drakitra ara-pifandraisana mahazatra dia ho tototry ny fanaparitahana sioka ho an'ny mpanaraka rehetra (bioka 60 arivo no alefa isaky ny segondra). Mety te handeha amin'ny fitahirizana angon-drakitra haingana toy ny angona NoSQL na Memory Cache isika.
Ny famakiana 1 MB misesy avy amin'ny fitadidiana dia mitaky 250 microseconds eo ho eo, fa ny famakiana amin'ny SSD dia in-4 ny halavany, ary ny famakiana avy amin'ny kapila dia maharitra 80 heny.
Ny Object Store dia azo ampiasaina hitahiry angona toy ny sary sy horonan-tsary.
- Ny Web Server, izay miasa toy ny proxy mivadika, dia mahazo bitsika avy amin'ny Mpanjifa.
- Ny fangatahana dia nalefan'ny Web Server any amin'ny server Write API.
- Ny Write API dia mitahiry ny bitsika amin'ny angon-drakitra SQL ao amin'ny fandaharam-potoanan'ny mpampiasa.
Ny Fan-Out Service dia mifandray amin'ny Write API, ary manatanteraka ireto asa manaraka ireto.
- Mitadiava mpanaraka ny mpampiasa ao amin'ny Memory Cache amin'ny alàlan'ny fangatahana ny User Graph Service.
- Amin'ny Memory Cache, ny bitsika dia voatahiry ao amin'ny fandaharam-potoanan'ny mpanaraka ny mpampiasa.
- 1,000 mpanaraka = 1,000 fitadiavana sy fampidirana = O(n) fandidiana.
- Ny bitsika dia voatahiry ao amin'ny Search Index Service ho an'ny fikarohana haingana.
- Ny Object Store dia ampiasaina hitehirizana media.
- Mandefa fanairana fanosehana amin'ny mpanaraka amin'ny alàlan'ny serivisy fampahafantarana.
- Mba handefasana fampandrenesana asynchronous dia mampiasa Filaharana izy io.
Afaka mampiasa lisitra Redis teratany miaraka amin'ity rafitra manaraka ity isika raha Redis ny Memory Cache:
Havaozina miaraka amin'ny bitsika vaovao ny fandaharam-potoanan'ny mpampiasa, izay hotehirizina ao amin'ny Memory Cache. Hampiasa ity public REST API manaraka ity izahay:
Ny lamin'ny mpampiasa dia mijery ny mpampiasa.
- Ny Web Server dia mahazo fangatahan'ny mpampiasa timeline avy amin'ny Client.
- Ny fangatahana dia alefa amin'ny mpizara Read API amin'ny Web Server.
- Ny API Read dia manontany ny angona SQL momba ny fe-potoanan'ny mpampiasa.
Ny REST API dia hiasa mitovy amin'ny fandaharam-potoana ao an-trano, afa-tsy ny bitsika rehetra dia avy amin'ny mpampiasa fa tsy amin'ny olona arahiny.
Mitady teny fanalahidy ny mpampiasa iray:
- Ny Web Server dia mahazo fangatahana fikarohana avy amin'ny Client.
- Ny fangatahana dia nalefan'ny Web Server any amin'ny mpizara Search API.
Dingana 4: Timeline Twitter
Asa sarotra ny famoronana fandaharam-potoana. Ilaina ny mpizara mamorona fandaharam-potoana izay mifandray amin'ny tranonkala na lohamilina fampiharana.
Isaky ny miditra ny mpampiasa iray, ny serivisy fandaharam-potoana dia mitazona ireo bitsika vaovao avy amin'ireo mpampiasa ao amin'ny latabatry ny mpanaraka ary manavao na mamelombelona ny fandaharam-potoanan'ny mpampiasa.
Tsy mametraka karazana rafitra filaharana eto izahay; fa kosa, heverinay fa ireo bitsika 5 ambony indrindra avy amin'ny mpanaraka ny mpampiasa dia aseho amin'ny filaharan'ny fotoana famoronana. Afaka mitazona fahatapahana famelomana sioka 50 izahay. Mbola atsahatra ny famelombelomana na ny fananganana fandaharam-potoana rehefa tonga io fe-potoana io mandra-panavaozan'ny mpampiasa ny pejy.
Ny olana amin'ny fahatarana sy ny fampandehanana avo lenta dia ho avy amin'ny famoronana fahana mivantana an'ny mpampiasa. Fa kosa, ny famoronana stream an-tserasera izay azo aseho eo no ho eo no fomba tsara indrindra hanatsarana ny fampisehoana. Manaova lohamilina fandaharam-potoana voatokana izay mametaka tsy tapaka ny lohamilina fampiharana mba hamelombelona ny fahana mifototra amin'ny fotoana namoronana azy.
Ny algorithm filaharana dia tokony handinika famantarana manan-danja ary hanome lanja mba hiantohana fa tsy anjakan'ny fitaovana avy amin'ny kaonty iray na maromaro arahin'izy ireo ny fandaharam-potoanan'ny mpampiasa.
Raha ny marimarina kokoa, afaka misafidy endri-javatra mifandraika amin'ny maha-zava-dehibe ny singa famahanana isika, toy ny isan'ny tia, ny fanehoan-kevitra, ny fizarana ary ny fotoana fanavaozana. Ny tsirairay amin'ireo fepetra ireo dia tokony ampiasaina hanombanana ny bitsika, ary avy eo io laharana io dia tokony hampiasaina hanehoana bitsika amin'ny tsipika.
Tokony hampandrenesina hatrany ny mpampiasa ve isika rehefa misy votoaty vaovao ho an'ny vaovaon'izy ireo? Ny mpampiasa dia afaka mahita fa mahasoa ny fampitandremana rehefa misy angona vaovao. Amin'ny fitaovana finday anefa, rehefa lafo be ny fampiasana data, dia mety handany ny bandwidth izany.
Vokatr'izany dia afaka misafidy ny tsy hanosika angona amin'ny fitaovana finday izahay fa mamela ny mpampiasa "Hisintona hamelombelona" ho an'ny hafatra vaovao.
Dingana 5: Scaling design
Ny mety ho olana dia ny Fanout Service. Ireo mpampiasa Twitter manana mpanaraka an-tapitrisany dia tsy maintsy miandry minitra maromaro vao mivoaka ny bitsikany. Mety hiteraka hazakazaka miaraka amin'ny valin'ny bitsika izany, izay azontsika ialana amin'ny alàlan'ny famandrihana indray ny bitsika amin'ny fotoana fanompoany.
Azontsika atao koa ny manakana ny fanaparitahana sioka avy amin'ny olona manana mpanaraka betsaka. Fa kosa, mety hanao fikarohana sioka avy amin'ny olona tena sitraka isika, ampifandraisina amin'ny valin'ny fandaharam-potoana an-tranon'ilay mpampiasa ny valin'ny fikarohana, ary avy eo amboary ny bitsika amin'ny fotoana fanompoany.
Ny fanatsarana fanampiny dia ahitana:
- Tehirizo sioka an-jatony vitsivitsy ao amin'ny Memory Cache isaky ny fandaharam-potoana ao an-trano.
- Ao amin'ny Memory Cache, ny fampahalalana an-tranon'ireo mpampiasa mavitrika ihany no voatahiry.
- Azontsika amboarina indray ny fanisan-taona avy amin'ny Database SQL raha toa ka tsy navitrika tao anatin'ny 30 andro ny mpampiasa iray.
- Mba hahitana hoe iza ilay mpampiasa dia ampiasao ny User Graph Service.
- Ampio ny sioka ao amin'ny Memory Cache amin'ny alàlan'ny fakana azy ireo ao amin'ny SQL Database.
- Ny Sioka Info Service dia tsy afaka mitahiry sioka mandritra ny iray volana fotsiny.
- Ao amin'ny serivisy momba ny mpampiasa, ireo mpampiasa mavitrika ihany no voavonjy.
- Mba hanamafisana ny fahatarana dia mety mila mitazona ny bitsika ho fitadidiana ny Cluster Fikarohana.
Famaranana
Na dia fikambanana lehibe aza ny Twitter, manana tsara kokoa izy fahatakarana ny rafitra rafitra. Nanao izay azoko natao aho mba hanomezana anao fijery avo lenta momba ny fandaharam-potoana Twitter.
Manantena aho fa nahazo fampahalalana mahasoa avy amin'izany ianao ary azonao ampiasaina tsara.
Leave a Reply