بیاید با هم فکر کنیم مثلا چه use-case هایی میشه واسه این الگو پیدا کرد!
اگه بخوام مثالی بزنم که این الگو کارآمد باشه شاید بشه سیستم هایی که با نقشه سر و کار دارند رو مثال زد. چون تو این سیستم ها حجم داده ذاتا زیاده و در عین حال حجم محاسباتی که real-time هم باید صورت بگیره زیاده.
مثلا مسیریابی بین دو نقطه مبدا و مقصد رو در نظر بگیرید:
- حجم دیتایی که باید پردازش بشه که با در نظر گرفتن شرایط ترافیک و غیره بخواد مسیر بهینه رو به شما پیشنهاد بده خیلی زیاده.
- انجام محاسبات بین دو نقطه میانی (برای یافتن مسیر بهینه محلی) مستقل از شرایط نقاط دیگه است
خب چیکار میشه کرد که خیلی سریع بشه مسیر بهینه رو پیدا کرد؟
میشه یک سری نقاط میانی تعیین کرد، یافتن مسیر بهینه بین هر دو نقطه میانی رو به یک node واگذار کرد. هر node پس از انجام محاسبات اطلاعات مسیر رو به نود root برمیگردونه. نود root با استفاده از اطلاعات نقاط میانی و از ترکیب اون ها میتونه یه مسیر بهینه رو به عنوان پاسخ به شما پیشنهاد بده.
البته من تجربه کار با چنین سرویس هایی رو نداشتم، و قطعا ملاحظات خیلی بیشتری در این سیستم ها باید در نظر گرفته بشه، اما فکر میکنم این الگو بتونه در حل چالش چنین مساله ای کمک کنه!
#designing_distributed_systems_brendan_burns
@gocasts
Post #69
859
Go Casts | Systems & Agents 🚀 Choosing the Right Number of Leaves خب حالا که مزایای موازی سازی رو متوجه شدیم، سوال اصلی اینه که چه تعداد نود برگ برای سیستم در نظر بگیریم، شاید در نگاه اول اینطور به نظر بیاد که هر چه تعداد نودهای برگ بیشتر بشه سریعتر میشه با درخواست ها پاسخ گفت، اما اینطور…