سلام دوستان، امیدوارم حالتون خوب باشه، من باز اومدم با یه الگوی دیگه از دنیای distributed systems!
Scatter/Gather
الگوی بعدی که در موردش صحبت میکنیم، الگوی scatter/gather هست.
الگوی replicated از منظر «تعداد درخواست پردازش شده در ثانیه» به scalability توجه میکنه.
الگوی sharded از منظر «حجم دیتا» به scalability توجه میکنه.
الگوی scatter/gather با استفاده از الگوی replication از منظر «زمان» به scalability توجه میکنه.
خیلی ساده تر بخوام بگم این الگو موازی سازی(parallelism) رو امکانپذیر میکنه. به این صورت که اجازه میده به درخواست ها خیلی سریعتر از حالت sequential پاسخ بدید.
الگوی scatter/gather هم مثل الگوهای replicated و sharded یک الگوی درختی هست.
یعنی یک نود root داره که درخواست هارو به نودهای برگ میده و اونا پردازش میکنن.
اما این الگو یه تفاوت بزرگ و مهم با دو الگوی قبلی داره، اونم اینه که بصورت همزمان درخواست ورودی رو به همه ی نودهای برگ میفرسته و هر کدوم از اون نود ها مسئول پردازش بخش کوچیکی از دیتا هستند. هر نود برگ (leaf) بخشی از نتیجه رو به نود ریشه(root) برمیگردونه و نود ریشه بعد از ترکیب کردن همه نتایج یک جواب کامل رو به عنوان پاسخ برای درخواست ارسال میکنه.
#designing_distributed_systems_brendan_burns
@gocasts
Post #64
701
Go Casts | Systems & Agents 🚀 نکته آخری که میخوام بهش اشاره کنم اینه که شاید بپرسید الگوهایی مثل الگوی Sharded برای scale خیلی بالاست و احتمال خیلی زیاد شما تو کارتون بهش نیاز ندارید. جواب کوتاه من میشه:خیر. دلیل من هم اینه که با رشد تکنولوژی، بسترهای ارائه خدمات خیلی پیچیده تر و اصطلاحا…