ຄໍາຮ້ອງສະຫມັກອອນໄລນ໌ຂະຫນາດໃຫຍ່ໄດ້ມາຫຼາຍໃນສອງທົດສະວັດທີ່ຜ່ານມາ. ນະວັດຕະກໍາເຫຼົ່ານີ້ໄດ້ປ່ຽນແປງຄວາມຮັບຮູ້ຂອງພວກເຮົາກ່ຽວກັບການພັດທະນາຊອບແວ. ສໍາລັບຕົວຢ່າງ, ເຟສບຸກ, Instagram, ແລະ Twitter ແມ່ນເວທີທີ່ສາມາດຂະຫຍາຍໄດ້ທັງຫມົດ.
ລະບົບເຫຼົ່ານີ້ຕ້ອງຖືກສ້າງຂຶ້ນເພື່ອຈັດການປະລິມານການຈະລາຈອນແລະຂໍ້ມູນຈໍານວນຫລາຍນັບຕັ້ງແຕ່ປະຊາຊົນຫຼາຍຕື້ຄົນໃຊ້ພວກມັນໃນເວລາດຽວກັນໃນທົ່ວໂລກ. ນີ້ແມ່ນເວລາທີ່ ການອອກແບບລະບົບ ເຂົ້າໄປໃນຮູບ.
ຂະບວນການສ້າງສະຖາປັດຕະຍະກໍາ, ການໂຕ້ຕອບ, ແລະຂໍ້ມູນສໍາລັບລະບົບທີ່ສອດຄ່ອງກັບເງື່ອນໄຂທີ່ແນ່ນອນແມ່ນເອີ້ນວ່າການອອກແບບລະບົບ. ໂດຍຜ່ານລະບົບທີ່ສອດຄ່ອງແລະມີປະສິດທິພາບ, ການອອກແບບລະບົບຕອບສະຫນອງຄວາມຕ້ອງການຂອງທຸລະກິດຫຼືອົງການຈັດຕັ້ງຂອງທ່ານ.
ເມື່ອບໍລິສັດຫຼືອົງການຂອງທ່ານໄດ້ກໍານົດເງື່ອນໄຂຂອງຕົນ, ທ່ານສາມາດເລີ່ມຕົ້ນການລວມເອົາພວກມັນເຂົ້າໃນການອອກແບບລະບົບທາງດ້ານຮ່າງກາຍທີ່ຕອບສະຫນອງຄວາມຕ້ອງການຂອງຜູ້ບໍລິໂພກຂອງທ່ານ.
ບໍ່ວ່າທ່ານຈະເລືອກທີ່ຈະໄປກັບການພັດທະນາ bespoke, ການແກ້ໄຂການຄ້າ, ຫຼືປະສົມປະສານຂອງທັງສອງ, ວິທີທີ່ທ່ານອອກແບບລະບົບຂອງທ່ານຈະກໍານົດວິທີທີ່ທ່ານສ້າງມັນ.
ພວກເຮົາຈະເບິ່ງລາຍລະອຽດກ່ຽວກັບການອອກແບບລະບົບຂອງທາມລາຍ Twitter ໃນໂພສນີ້, ສໍາເລັດດ້ວຍການສອນ. ໃຫ້ເລີ່ມຕົ້ນ.
ຂັ້ນຕອນທີ 1: ອະທິບາຍກໍລະນີການນໍາໃຊ້ & ຂໍ້ຈໍາກັດ
ກໍລະນີ
- ຜູ້ໃຊ້ອັບໂຫລດ tweet.
- ບໍລິການສົ່ງແຈ້ງການຊຸກຍູ້ແລະອີເມວໄປຫາຜູ້ຕິດຕາມ tweets.
- ທາມລາຍຂອງຜູ້ໃຊ້ຖືກເບິ່ງ (ການເຄື່ອນໄຫວຈາກຜູ້ໃຊ້)
- ຜູ້ໃຊ້ເບິ່ງຕາຕະລາງເວລາຢູ່ເຮືອນ (ກິດຈະກໍາຈາກຄົນທີ່ຜູ້ໃຊ້ຕິດຕາມ)
- ຄໍາສໍາຄັນແມ່ນຄົ້ນຫາໂດຍຜູ້ໃຊ້.
- ການບໍລິການແມ່ນສາມາດເຂົ້າເຖິງຢ່າງແທ້ຈິງ.
ເກີນຂອບເຂດ
- Tweets ຖືກສົ່ງໄປຫາ Twitter Firehose ແລະສາຍນ້ໍາອື່ນໆທີ່ໃຊ້ບໍລິການນີ້.
- ການບໍລິການເອົາ tweets ໂດຍອີງໃສ່ການຕັ້ງຄ່າການເບິ່ງເຫັນຂອງຜູ້ໃຊ້.
- ຖ້າຜູ້ໃຊ້ບໍ່ໄດ້ຕິດຕາມຄົນທີ່ຖືກຕອບກັບ, ເຊື່ອງການຕອບກັບ.
- ສັງເກດເບິ່ງທາງເລືອກ 'ເຊື່ອງ retweets'.
- ການວິເຄາະ
ຂໍ້ຈໍາກັດ & ການສົມມຸດຕິຖານ
ສົມມຸດຕິຖານຂອງລັດ
- ການຈະລາຈອນບໍ່ໄດ້ກະແຈກກະຈາຍເທົ່າທຽມກັນ.
- ມັນຄວນຈະງ່າຍດາຍທີ່ຈະສົ່ງ tweet.
- ເວັ້ນເສຍແຕ່ວ່າທ່ານມີຜູ້ຕິດຕາມຫຼາຍລ້ານຄົນ, ການສົ່ງ tweet ໄປຫາຜູ້ຕິດຕາມຂອງທ່ານທັງຫມົດຄວນຈະໄວ.
- ມີ 100 ລ້ານຜູ້ໃຊ້ທີ່ໃຊ້ວຽກ.
- 15 ຕື້ tweets ໃນແຕ່ລະເດືອນຫຼື 500 ລ້ານ tweets ທຸກໆມື້
- ແຕ່ລະ tweet ມີ fanout ຂອງ 10 ການຈັດສົ່ງໂດຍສະເລ່ຍ.
- ທຸກໆມື້, fanout ສົ່ງ 5 ຕື້ tweets.
- Fanout ສົ່ງ 150 ຕື້ tweets ທຸກໆເດືອນ.
- 250 ຕື້ຄໍາຮ້ອງຂໍການອ່ານປະຈໍາເດືອນ
- 10 ພັນລ້ານຄົ້ນຫາປະຈໍາເດືອນ
ກໍານົດເວລາ
- ທາມລາຍຄວນຈະງ່າຍໃນການນຳທາງ.
- Twitter ແມ່ນກ່ຽວກັບການອ່ານຫຼາຍກ່ວາການຂຽນ.
- ເພີ່ມປະສິດທິພາບສໍາລັບການອ່ານ tweet ໄວ
- ການບໍລິໂພກ Tweet ແມ່ນໃຊ້ເວລາຫຼາຍ.
ຄົ້ນຫາ
- ຂະບວນການຄົ້ນຫາຄວນຈະໄວ.
- ມັນໃຊ້ເວລາຫຼາຍໃນການຄົ້ນຫາ.
ການຄິດໄລ່ການນໍາໃຊ້
ຂະຫນາດຂອງແຕ່ລະ tweet:
- 8 bytes tweet id
- 32 bytes user-id
- 140 bytes ຂອງຂໍ້ຄວາມ
- media – ສະເລ່ຍ 10 KB
- ທັງໝົດ: ~10 KB
ທຸກໆເດືອນ, 150 TB ຂອງເນື້ອໃນ tweet ສົດແມ່ນຖືກສ້າງຂຶ້ນ.
- * 500 ລ້ານ tweets ທຸກໆມື້ * 30 ມື້ຕໍ່ເດືອນ * 10 KB ຕໍ່ tweet
- ໃນສາມປີ, ມີ 5.4 PB ຂອງເນື້ອໃນ tweet ສົດ.
ມີ 100,000 ຄໍາຮ້ອງຂໍອ່ານໃນແຕ່ລະວິນາທີ.
- * (400 ຄໍາຮ້ອງຂໍຕໍ່ວິນາທີ / 1 ຕື້ຄໍາຮ້ອງສະຫມັກຕໍ່ເດືອນ) 250 ຕື້ຄໍາຮ້ອງຂໍອ່ານໃນແຕ່ລະເດືອນ
ມີ 6,000 tweets ໃນແຕ່ລະວິນາທີ.
- * (400 ຄໍາຮ້ອງຂໍຕໍ່ວິນາທີ / 1 ຕື້ຄໍາຮ້ອງຂໍຕໍ່ເດືອນ) 15 ຕື້ tweets ທຸກໆເດືອນ
ໃນ fanout, 60 ພັນ tweets ຖືກສົ່ງທຸກໆວິນາທີ.
- Fanout ສົ່ງ 150 ຕື້ tweets ໃນແຕ່ລະເດືອນ * (400 ຄໍາຮ້ອງຂໍຕໍ່ວິນາທີ / 1 ຕື້ຄໍາຮ້ອງຂໍຕໍ່ເດືອນ).
4,000 ຄໍາຮ້ອງຂໍຂໍ້ມູນທຸກໆວິນາທີ
- * (400 ຄໍາຮ້ອງຂໍຕໍ່ວິນາທີ / 1 ຕື້ຄໍາຮ້ອງຂໍຕໍ່ເດືອນ) 10 ພັນລ້ານຄົ້ນຫາໃນແຕ່ລະເດືອນ
ການປ່ຽນໃຈເຫລື້ອມໃສທີ່ເປັນປະໂຫຍດບາງຢ່າງ
- ທຸກໆເດືອນ, 2.5 ລ້ານວິນາທີຜ່ານໄປ.
- 2.5 ລ້ານຄໍາຮ້ອງຂໍຕໍ່ເດືອນທີ່ 1 ຄໍາຮ້ອງຂໍຕໍ່ວິນາທີ
- 100 ລ້ານຄໍາຮ້ອງຂໍຕໍ່ເດືອນ x 40 ຄໍາຮ້ອງຂໍຕໍ່ວິນາທີ
- 1 ຕື້ຄໍາຮ້ອງຂໍຕໍ່ເດືອນ = 400 ຄໍາຮ້ອງຂໍຕໍ່ວິນາທີ
ຂັ້ນຕອນທີ 2: ແຜນວາດລະດັບສູງ
ຂັ້ນຕອນທີ 3: ອະທິບາຍອົງປະກອບຫຼັກ
ພວກເຮົາສາມາດບັນທຶກ tweets ຂອງຜູ້ໃຊ້ເອງເພື່ອຕື່ມຂໍ້ມູນໄລຍະເວລາຂອງຜູ້ໃຊ້ (ກິດຈະກໍາຈາກຜູ້ໃຊ້) ໃນຖານຂໍ້ມູນທີ່ກ່ຽວຂ້ອງຖ້າພວກເຂົາສົ່ງ tweet. ມັນເປັນການຍາກກວ່າທີ່ຈະສົ່ງ tweets ແລະພັດທະນາໄລຍະເວລາຂອງບ້ານ (ກິດຈະກໍາຈາກບຸກຄົນທີ່ຜູ້ໃຊ້ປະຕິບັດຕາມ).
ຖານຂໍ້ມູນຄວາມສໍາພັນປົກກະຕິຈະຖືກ overwhelmed ໂດຍ fanning ອອກ tweets ກັບຜູ້ຕິດຕາມທັງຫມົດ (60 ພັນ tweets ສົ່ງໃນແຕ່ລະວິນາທີ). ພວກເຮົາອາດຈະຕ້ອງການທີ່ຈະໄປກັບການເກັບຮັກສາຂໍ້ມູນທີ່ຂຽນໄວເຊັ່ນຖານຂໍ້ມູນ NoSQL ຫຼື Memory Cache.
ການອ່ານ 1 MB ຕາມລໍາດັບຈາກຫນ່ວຍຄວາມຈໍາໃຊ້ເວລາປະມານ 250 ໄມໂຄວິນາທີ, ແຕ່ການອ່ານຈາກ SSD ໃຊ້ເວລາ 4 ເທົ່າ, ແລະການອ່ານຈາກແຜ່ນໃຊ້ເວລາ 80 ເທື່ອ.
ຮ້ານຄ້າວັດຖຸສາມາດຖືກນໍາໃຊ້ເພື່ອເກັບຮັກສາຂໍ້ມູນເຊັ່ນ: ຮູບພາບແລະວິດີໂອ.
- ເຊີບເວີເວັບ, ເຊິ່ງເຮັດໜ້າທີ່ເປັນຕົວແທນທີ່ກົງກັນຂ້າມ, ໄດ້ຮັບ tweet ຈາກລູກຄ້າ.
- ການຮ້ອງຂໍແມ່ນຖືກສົ່ງໄປຫາເຄື່ອງແມ່ຂ່າຍຂອງ Write API ໂດຍເຄື່ອງແມ່ຂ່າຍເວັບ.
- Write API ບັນທຶກ tweet ໄວ້ໃນຖານຂໍ້ມູນ SQL ໃນ timeline ຂອງຜູ້ໃຊ້.
ບໍລິການ Fan-Out ແມ່ນຕິດຕໍ່ໂດຍ Write API, ແລະມັນປະຕິບັດວຽກງານຕໍ່ໄປນີ້.
- ຊອກຫາຜູ້ຕິດຕາມຂອງຜູ້ໃຊ້ໃນ Memory Cache ໂດຍການສອບຖາມບໍລິການ User Graph.
- ໃນ Memory Cache, tweet ຈະຖືກບັນທຶກໄວ້ໃນ timeline ເຮືອນຂອງຜູ້ຕິດຕາມຂອງຜູ້ໃຊ້.
- 1,000 ຜູ້ຕິດຕາມ = 1,000 ການຊອກຫາແລະການແຊກ = O(n) ການດໍາເນີນງານ.
- tweet ໄດ້ຖືກບັນທຶກໄວ້ໃນ Search Index Service ສໍາລັບການຊອກຫາໄວ.
- Object Store ຖືກນໍາໃຊ້ເພື່ອເກັບຮັກສາສື່.
- ສົ່ງການແຈ້ງເຕືອນໃຫ້ຜູ້ຕິດຕາມຜ່ານບໍລິການການແຈ້ງເຕືອນ.
- ເພື່ອສົ່ງການແຈ້ງເຕືອນແບບບໍ່ກົງກັນ, ມັນໃຊ້ຄິວ.
ພວກເຮົາສາມາດໃຊ້ບັນຊີລາຍການ Redis ພື້ນເມືອງທີ່ມີໂຄງສ້າງຕໍ່ໄປນີ້ຖ້າ Memory Cache ຂອງພວກເຮົາແມ່ນ Redis:
ຕາຕະລາງເວລາຢູ່ເຮືອນຂອງຜູ້ໃຊ້ຈະຖືກປັບປຸງດ້ວຍ tweet ໃຫມ່, ເຊິ່ງຈະຖືກເກັບໄວ້ໃນ Memory Cache. ພວກເຮົາຈະໃຊ້ REST API ສາທາລະນະຕໍ່ໄປນີ້:
ໄລຍະເວລາຂອງຜູ້ໃຊ້ຖືກເບິ່ງໂດຍຜູ້ໃຊ້.
- ເຊີບເວີເວັບໄດ້ຮັບການຮ້ອງຂໍກໍານົດເວລາຂອງຜູ້ໃຊ້ຈາກລູກຄ້າ.
- ການຮ້ອງຂໍແມ່ນຖືກສົ່ງໄປຫາເຄື່ອງແມ່ຂ່າຍຂອງ Read API ໂດຍເຄື່ອງແມ່ຂ່າຍເວັບ.
- Read API ສອບຖາມຖານຂໍ້ມູນ SQL ສໍາລັບໄລຍະເວລາຂອງຜູ້ໃຊ້.
REST API ຈະເຮັດວຽກຄ້າຍຄືກັນກັບຕາຕະລາງເວລາໃນບ້ານ, ໂດຍຍົກເວັ້ນວ່າ tweets ທັງຫມົດຈະມາຈາກຜູ້ໃຊ້ຫຼາຍກວ່າຄົນທີ່ເຂົາເຈົ້າຕິດຕາມ.
ຜູ້ໃຊ້ຄົ້ນຫາຄໍາສໍາຄັນ:
- ເຊີບເວີເວັບໄດ້ຮັບການຮ້ອງຂໍການຊອກຫາຈາກລູກຄ້າ.
- ການຮ້ອງຂໍແມ່ນຖືກສົ່ງໄປຫາເຄື່ອງແມ່ຂ່າຍຂອງ API ຄົ້ນຫາໂດຍເຄື່ອງແມ່ຂ່າຍເວັບ.
ຂັ້ນຕອນທີ 4: ກໍານົດເວລາ Twitter
ການສ້າງທາມລາຍເປັນວຽກທີ່ຍາກ. ກຳນົດເວລາສ້າງເຊີບເວີທີ່ເຊື່ອມຕໍ່ກັບເວັບ ຫຼືເຊີບເວີແອັບພລິເຄຊັນ.
ທຸກໆຄັ້ງທີ່ຜູ້ໃຊ້ເຂົ້າສູ່ລະບົບ, ການບໍລິການກໍານົດເວລາຮັກສາການຕິດຕາມ tweets ໃຫມ່ຫຼ້າສຸດຈາກຜູ້ໃຊ້ໃນຕາຕະລາງຂອງຜູ້ຕິດຕາມແລະປັບປຸງຫຼືໂຫຼດຫນ້າຈໍຄືນເວລາຂອງຜູ້ໃຊ້.
ພວກເຮົາບໍ່ໄດ້ປະຕິບັດການຈັດລຽງຂອງລະບົບການຈັດອັນດັບໃດໆຢູ່ທີ່ນີ້; ແທນທີ່ຈະ, ພວກເຮົາສົມມຸດວ່າ 5 tweets ເທິງສຸດຈາກຜູ້ຕິດຕາມຂອງຜູ້ໃຊ້ໄດ້ຖືກນໍາສະເຫນີຢູ່ໃນເສັ້ນເວລາຕາມລໍາດັບເວລາສ້າງ. ພວກເຮົາສາມາດຮັກສາການຕັດການໂຫຼດຫນ້າຈໍຄືນ 50-tweet. ພວກເຮົາຍັງຄົງຢຸດການໂຫຼດຂໍ້ມູນຄືນໃໝ່ ຫຼືສ້າງຕາຕະລາງເວລາຫຼັງຈາກເຖິງເກນນັ້ນຈົນກວ່າຜູ້ໃຊ້ຈະໂຫຼດໜ້າຄືນໃໝ່.
ຄວາມເປັນຫ່ວງໃນການຕອບສະໜອງ ແລະປະສິດທິພາບສູງຈະມາຈາກການສ້າງຟີດຂອງຜູ້ໃຊ້ສົດ. ແທນທີ່ຈະ, ການສ້າງການຖ່າຍທອດແບບອອບໄລນ໌ທີ່ສາມາດນໍາສະເຫນີໄດ້ທັນທີແມ່ນວິທີທີ່ດີທີ່ສຸດເພື່ອປັບປຸງປະສິດທິພາບ. ແລ່ນເຊີບເວີກໍານົດເວລາສະເພາະທີ່ ping ເຄື່ອງແມ່ຂ່າຍຂອງແອັບພລິເຄຊັນເປັນປະຈໍາເພື່ອໂຫຼດຂໍ້ມູນໃຫມ່ໂດຍອີງໃສ່ເວລາທີ່ມັນຖືກສ້າງຂຶ້ນ.
ສູດການຄິດໄລ່ການຈັດອັນດັບຄວນຄໍານຶງເຖິງສັນຍານທີ່ສໍາຄັນແລະສະຫນອງນ້ໍາຫນັກເພື່ອຮັບປະກັນວ່າໄລຍະເວລາຂອງຜູ້ໃຊ້ບໍ່ໄດ້ຖືກຄອບງໍາໂດຍເນື້ອຫາຈາກບັນຊີຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນທີ່ພວກເຂົາຕິດຕາມ.
ຊັດເຈນກວ່ານັ້ນ, ພວກເຮົາສາມາດເລືອກຄຸນສົມບັດທີ່ກ່ຽວຂ້ອງກັບຄວາມກ່ຽວຂ້ອງຂອງລາຍການອາຫານຕ່າງໆ ເຊັ່ນ: ຈໍານວນການຖືກໃຈ, ຄຳເຫັນ, ການແບ່ງປັນ ແລະເວລາອັບເດດ. ແຕ່ລະເງື່ອນໄຂເຫຼົ່ານີ້ຄວນຈະຖືກນໍາໃຊ້ເພື່ອຈັດອັນດັບ tweet, ແລະຫຼັງຈາກນັ້ນການຈັດອັນດັບນັ້ນຄວນຈະຖືກນໍາໃຊ້ເພື່ອສະແດງ tweets ໃນເສັ້ນເວລາ.
ພວກເຮົາຄວນເຕືອນຜູ້ໃຊ້ຢ່າງຕໍ່ເນື່ອງເມື່ອເນື້ອຫາໃຫມ່ສໍາລັບ newsfeed ຂອງເຂົາເຈົ້າມີໃຫ້? ຜູ້ໃຊ້ສາມາດພົບເຫັນວ່າມັນເປັນປະໂຫຍດທີ່ຈະໄດ້ຮັບການແຈ້ງເຕືອນໃນເວລາທີ່ຂໍ້ມູນໃຫມ່ມີໃຫ້. ໃນອຸປະກອນມືຖື, ຢ່າງໃດກໍຕາມ, ໃນເວລາທີ່ການນໍາໃຊ້ຂໍ້ມູນແມ່ນຂ້ອນຂ້າງຄ່າໃຊ້ຈ່າຍ, ມັນສາມາດສູນເສຍແບນວິດ.
ດັ່ງນັ້ນ, ພວກເຮົາສາມາດເລືອກທີ່ຈະບໍ່ຍູ້ຂໍ້ມູນໄປຍັງອຸປະກອນມືຖືແລະແທນທີ່ຈະອະນຸຍາດໃຫ້ຜູ້ໃຊ້ "ດຶງເພື່ອໂຫຼດຫນ້າຈໍຄືນ" ສໍາລັບການປະກາດໃຫມ່.
ຂັ້ນຕອນທີ 5: ການອອກແບບຂະຫນາດ
ຄໍຂວດທີ່ເປັນໄປໄດ້ແມ່ນການບໍລິການ Fanout. ຜູ້ໃຊ້ Twitter ທີ່ມີຜູ້ຕິດຕາມຫຼາຍລ້ານຄົນຈະຕ້ອງລໍຖ້າເວລາຫຼາຍໆນາທີເພື່ອໃຫ້ tweets ຂອງພວກເຂົາຈະອອກມາ. ນີ້ອາດຈະເຮັດໃຫ້ເກີດການແຂ່ງຂັນທີ່ມີການຕອບກັບ tweet, ເຊິ່ງພວກເຮົາສາມາດຫຼີກເວັ້ນໄດ້ໂດຍການສັ່ງຄືນ tweets ໃນເວລາໃຫ້ບໍລິການ.
ພວກເຮົາຍັງສາມາດປ້ອງກັນການເຜີຍແຜ່ tweets ຈາກຄົນທີ່ມີຈໍານວນຜູ້ຕິດຕາມຈໍານວນຫລາຍ. ແທນທີ່ຈະ, ພວກເຮົາອາດຈະເຮັດການຄົ້ນຫາ tweets ຈາກບຸກຄົນທີ່ມີການຕິດຕາມສູງ, ປະສົມປະສານຜົນການຄົ້ນຫາກັບຜົນໄດ້ຮັບຕາມເວລາບ້ານຂອງຜູ້ໃຊ້, ແລະຫຼັງຈາກນັ້ນຈັດລໍາດັບ tweets ໃນເວລາຮັບໃຊ້.
ການປັບປຸງເພີ່ມເຕີມລວມມີ:
- ຮັກສາພຽງແຕ່ສອງສາມຮ້ອຍ tweets ໃນ Memory Cache ສໍາລັບແຕ່ລະເສັ້ນເວລາໃນເຮືອນ.
- ໃນ Memory Cache, ມີແຕ່ຂໍ້ມູນທາມລາຍຢູ່ເຮືອນຂອງຜູ້ໃຊ້ທີ່ໃຊ້ວຽກເທົ່ານັ້ນຖືກບັນທຶກ.
- ພວກເຮົາສາມາດສ້າງລໍາດັບເຫດການຄືນໃຫມ່ຈາກຖານຂໍ້ມູນ SQL ຖ້າຜູ້ໃຊ້ບໍ່ມີການເຄື່ອນໄຫວໃນ 30 ມື້ກ່ອນຫນ້າ.
- ເພື່ອຊອກຫາວ່າຜູ້ໃຊ້ແມ່ນໃຜ, ໃຫ້ໃຊ້ User Graph Service.
- ເພີ່ມ tweets ໃນ Memory Cache ໂດຍການດຶງພວກມັນມາຈາກຖານຂໍ້ມູນ SQL.
- ການບໍລິການຂໍ້ມູນ Tweet ສາມາດປະຫຍັດ tweets ມູນຄ່າຫນຶ່ງເດືອນເທົ່ານັ້ນ.
- ໃນການບໍລິການຂໍ້ມູນຜູ້ໃຊ້, ມີພຽງແຕ່ຜູ້ໃຊ້ທີ່ໃຊ້ວຽກຖືກບັນທຶກໄວ້.
- ເພື່ອຮັກສາເວລາ latency ຕໍ່າ, Search Cluster ສ່ວນຫຼາຍອາດຈະຕ້ອງການທີ່ຈະຮັກສາ tweets ໃນຄວາມຊົງຈໍາ.
ສະຫຼຸບ
ເຖິງແມ່ນວ່າ Twitter ເປັນອົງການຈັດຕັ້ງຂະຫນາດໃຫຍ່, ມັນມີທີ່ດີກວ່າ ຄວາມເຂົ້າໃຈໃນການອອກແບບລະບົບ. ຂ້າພະເຈົ້າໄດ້ເຮັດດີທີ່ສຸດເພື່ອໃຫ້ທ່ານມີພາບລວມລະດັບສູງຂອງເວລາ Twitter.
ຂ້ອຍຫວັງວ່າເຈົ້າຈະໄດ້ຮັບຂໍ້ມູນທີ່ເປັນປະໂຫຍດຈາກມັນແລະສາມາດເຮັດໃຫ້ມັນໃຊ້ໄດ້ດີ.
ອອກຈາກ Reply ເປັນ