درک دو بعد مقیاس بندی برای جستجوی پایگاه داده و دریافت بارهای کاری، و اینکه چگونه اشتراک گذاری می تواند مقیاس بندی را الاستیک کند – یا نه.
مقیاسسازی توان عملیاتی و عملکرد موضوعات طراحی حیاتی برای همه پایگاههای داده توزیعشده هستند و به اشتراک گذاشتن معمولاً بخشی از راهحل است. با این حال، طرحی که عملکرد را افزایش میدهد همیشه به عملکرد کمک نمیکند و بالعکس. حتی زمانی که یک طرح از هر دو پشتیبانی میکند، افزایش و کاهش همزمان آنها همیشه آسان نیست.
این پست این دو نوع مقیاسبندی را برای بارهای کاری پرس و جو و جذب توصیف میکند و تکنیکهای اشتراکگذاری را که باعث انعطافپذیری آنها میشود، مورد بحث قرار میگیرد. قبل از ورود به دنیای پایگاه داده، اجازه دهید ابتدا نمونهای از توان عملیاتی الاستیک و مقیاسبندی عملکرد از زندگی روزمره را مرور کنیم.
افکتهای مقیاسپذیری در رستوران فستفود
نانسی در حال افتتاح یک رستوران فست فود است و سناریوهایی را برای بهینه سازی هزینه های عملیاتی خود در روزهای مختلف هفته ارائه می کند. شکل ۱ کسب و کار او را در یک روز آرام نشان می دهد. برای باز بودن رستوران، دو خط وجود دارد که باید باز بمانند: درایو عبور و راه رفتن. هر کدام به یک کارمند برای پوشش نیاز دارند. به طور متوسط، هر نفر برای پردازش یک سفارش به شش دقیقه زمان نیاز دارد و دو کارمند باید بتوانند ۲۰ مشتری در ساعت رستوران را پوشش دهند.
شکل ۱: عملکرد رستوران در یک روز آرام.
فرض میکنیم که حداکثر دو نفر میتوانند یک سفارش را به صورت موازی پردازش کنند، یکی نوشیدنی و دیگری غذا میسازد. کارمندان نانسی آموزش دیده اند که در صورت خالی بودن خط، به خط دیگر کمک کنند. دوبرابر کردن در یک خط، زمان پردازش سفارش را به سه دقیقه کاهش میدهد و به ثابت نگه داشتن عملکرد زمانی که مشتریان در فواصل زمانی مختلف وارد خطوط میشوند، کمک میکند.
شکل ۲ یک روز شلوغ تر را با حدود ۵۰ درصد مشتریان بیشتر نشان می دهد. افزودن یک کارمند باید ۵۰% افزایش درآمد را پوشش دهد. نانسی از تیمش می خواهد که انعطاف پذیر باشند:
- اگر هر بار فقط یک مشتری به خط مراجعه کند، یک نفر باید بین دو خط بدود تا زمان پردازش را کاهش دهد تا فوراً برای کمک به مشتریان جدید در دسترس باشد.
- اگر چند مشتری همزمان وارد شوند، کارمندان باید خط جدیدی را برای کمک به حداقل دو مشتری همزمان باز کنند، زیرا نانسی میداند که مشتریان حاضر در هنگام دریافت سفارشهایشان خوشحالتر میشوند. اما با پردازش شش دقیقه ای بسیار قابل تحمل است.
شکل ۲: عملیاتی که ۵۰٪ مشتریان بیشتری را پوشش می دهد.
نانسی برای مدیریت راحت شلوغ ترین روزهای سال که حدود ۸۰ مشتری در ساعت را جذب می کند، در مجموع چهار پیشخوان ایجاد می کند: یک درایو و سه راهپیمایی، همانطور که در شکل ۳ نشان داده شده است. از زمان اضافه کردن نفر سوم برای کمک به سفارش کمکی به کاهش زمان سفارش نمی کند، او قصد دارد تا دو کارمند در هر پیشخوان استخدام کند. چند روز در سال، زمانی که شهر یک رویداد بزرگ برگزار میکند و خیابان را میبندد (که مسیر رانندگی را غیرقابل دسترس میکند)، نانسی میپذیرد که حداکثر توان خروجی او ۶۰ مشتری در ساعت خواهد بود.
شکل ۳: عملیات در یک روز شلوغ.
استراتژی رسیدگی به سفارش نانسی بهطور انعطافپذیری خرید مشتری را کاهش میدهد (یعنی مقیاسها در صورت نیاز) و در عین حال انعطافپذیری را برای سریعتر کردن زمان پردازش سفارش (یعنی عملکرد) اعمال میکند. نکات مهم قابل توجه:
- فاکتور مقیاسبندی عملکرد حداکثر (حداکثر تعداد کارمندانی که در یک سفارش کمک میکنند) دو است. نانسی نمیتواند این فاکتور را تغییر دهد اگر بخواهد به همان غذاهایی که ارائه میدهد پایبند باشد.
- حداکثر توان خروجی ۸۰ مشتری در ساعت است زیرا حداکثر تعداد کانترها چهار است. نانسی میتواند این عامل را تغییر دهد اگر فضایی برای افزودن پیشخوانهای بیشتری به رستورانش داشته باشد.
افکتهای مقیاسبندی در سیستم پایگاه داده اشتراکی
همانند عملیات در یک رستوران فست فود، یک سیستم پایگاه داده باید ساخته شود تا از مقیاس بندی الاستیک توان عملیاتی و عملکرد برای بارهای کاری درخواستی و دریافتی پشتیبانی کند.
بار کاری پرس و جو
تعریف اصطلاح:
- مقیاسسازی پرس و جو: توانایی مقیاسسازی تعداد جستارهای اجرا شده در مدت زمان مشخصی مانند یک ثانیه یا یک دقیقه.
- مقیاسسازی عملکرد پرس و جو: توانایی اجرای سریعتر یا کندتر پرس و جو.
- مقیاسبندی الاستیک: توانایی مقیاسپذیری توان عملیاتی یا عملکرد بالا و پایین بر اساس ترافیک یا سایر نیازها.
نمونهها
فرض کنید دادههای فروش ما در یک مکان ذخیرهسازی قابل دسترسی مانند یک دیسک محلی یا یک دیسک راه دور یا یک ابر ذخیره میشوند. سه تیم در شرکت، گزارش، بازاریابی و فروش، میخواهند این دادهها را مرتباً جستجو کنند. اولین تنظیم ما، که در شکل ۴ نشان داده شده است، داشتن یک گره پرس و جو برای دریافت تمام پرس و جوها از هر سه تیم، خواندن داده ها و برگرداندن نتایج پرس و جو است.
شکل ۴: یک گره پرس و جو همه درخواست ها را مدیریت می کند.
در ابتدا این راهاندازی به خوبی کار میکند، اما وقتی درخواستهای بیشتر و بیشتری اضافه میشوند، زمان انتظار برای بازگشت نتایج بسیار زیاد میشود. بدتر از آن، بسیاری از اوقات به دلیل وقفه های زمانی، پرس و جوها گم می شوند. برای مقابله با درخواستهای افزایش توان عملیاتی پرس و جو، تنظیم جدیدی که در شکل ۵ نشان داده شده است، چهار گره پرس و جو را ارائه میکند. هر یک از این گره ها به طور مستقل برای اهداف مختلف تجاری ما کار می کنند: یکی برای تیم گزارش، یکی برای تیم بازاریابی، یکی برای تیم فروش با تمرکز بر مشتریان کوچک، و دیگری برای تیم فروش که بر مشتریان بزرگ متمرکز است.
شکل ۵: گره های پرس و جوی بیشتری را اضافه کنید، یکی برای هر هدف تجاری، برای رسیدگی به توان عملیاتی بیشتر.
تنظیم جدید به خوبی با حجم بالای خروجی مطابقت دارد و هیچ درخواستی گم نمیشود. با این حال، برای برخی از سوالات حساس به زمان که تیم ها باید فوراً به آنها واکنش نشان دهند، چند دقیقه منتظر ماندن برای بازگرداندن نتیجه به اندازه کافی خوب نیست. برای حل این مشکل، دادهها به طور مساوی به چهار خرده تقسیم میشوند، جایی که هر خرده شامل دادههای ۱۲ یا ۱۳ حالت است، همانطور که در شکل ۶ نشان داده شده است. از آنجایی که تیم گزارشگر حساسترین پرسوجوها را به تأخیر اجرا میکند، یک خوشه پرس و جو از چهار گره ساخته میشود. تا آنها پرسشها را چهار برابر سریعتر انجام دهند. تیم بازاریابی هنوز از راهاندازی تک گره خود راضی است، بنابراین دادههای همه خردهها به آن یک گره هدایت میشوند.
شکل ۶: دادههای خرد شده و گرههای Query اضافه کنید تا دادههای خرد شده را به صورت موازی مدیریت کنید.
تیم فروش با پرس و جوهای حساس به زمان سروکار ندارد، اما با بزرگتر شدن این تیم، تعداد درخواستهای پرس و جو افزایش مییابد. بنابراین، تیم فروش باید از مقیاسسازی عملکرد برای بهبود توان استفاده کند و از رسیدن به حداکثر توان در آینده نزدیک اجتناب کند. این کار با جایگزینی دو گره پرس و جو مستقل با دو خوشه پرس و جو مستقل، یکی با چهار گره و دو گره دیگر، بر اساس رشد مربوطه آنها انجام می شود.
شکل ۷: اندازه خوشه گزارش را بر اساس نیازهای عملکرد تیم گزارشدهنده تنظیم کنید و یک خوشه فروش را بر اساس نیازهای خروجی تیم فروش تعطیل کنید.
در مواقعی از سال که تیم گزارشگر نیازی به رسیدگی به پرس و جوهای حساس به زمان ندارد، دو گره پرس و جو از خوشه آن به طور موقت حذف می شود تا منابع ذخیره شود، همانطور که در شکل ۷ نشان داده شده است. به طور مشابه، زمانی که تیم فروش نیازی ندارد برای رسیدگی به بارهای کاری با توان عملیاتی بالا، به طور موقت یکی از خوشه های خود را حذف می کند و همه پرس و جوها را به دسته های باقی مانده هدایت می کند.
تیمها از تنظیم پوستهبندی الاستیک خود راضی هستند. راهاندازی کنونی به همه تیمها اجازه میدهد تا با افزودن یا حذف خوشههای پرس و جو، توان عملیاتی را به راحتی بالا و پایین کنند. با این حال، تیم گزارش متوجه می شود که عملکرد پرس و جو آن فراتر از ضریب حد چهار گره پرس و جو بهبود نمی یابد. مقیاس بندی گره های پرس و جو فراتر از این محدودیت کمکی نمی کند. بنابراین میتوانیم بگوییم که مقیاسپذیری پرسوجو تیم گزارشدهنده کاملاً کشسان است، اما مقیاسبندی عملکرد پرس و جو آن فقط تا ضریب مقیاس چهار کشسان است.
تنها راهی که تیم گزارشدهنده میتواند عملکرد جستوجو را بیشتر کند، تقسیم دادهها به خردههای بیشتر و کوچکتر است، که بیاهمیت نیست. در ادامه در این مورد بحث خواهیم کرد.
مبارزه کاری را وارد کنید
تعریف اصطلاح:
- مقیاسسازی پردازش ورودی: توانایی مقیاس کردن مقدار دادههای دریافتشده در مدت زمان مشخصی مانند یک ثانیه یا یک دقیقه.
- مقیاسسازی عملکرد مصرف: توانایی افزایش یا کاهش سرعت دریافت مجموعهای از دادهها در سیستم.
نمونهها
شکل ۸: یک گره ورودی همه دادههای دریافت شده را کنترل میکند.
برای داشتن چهار خرده داده فروش همانطور که در بالا توضیح داده شد، داده های دریافتی باید در زمان بارگذاری به اشتراک گذاشته شوند. شکل ۸ یک گره ورودی را نشان میدهد که همه درخواستهای ورودی را میگیرد، آنها را بر اساس آن خرد میکند، کارهای قبل از ورود را مدیریت میکند، و سپس دادهها را در قطعه سمت راست ذخیره میکند.
اما، هنگامی که دادههای دریافتی افزایش مییابد، یک گره دریافت دیگر با درخواستها تماس نمیگیرد و دادههای بلع از بین میرود. بنابراین یک راهاندازی جدید نشاندادهشده در شکل ۹ ساخته شده است تا گرههای ورودی بیشتری را اضافه کند، که هر کدام دادهها را برای مجموعهای از درخواستهای نوشتن مدیریت میکند تا از توان ورودی بالاتر پشتیبانی کند.
شکل ۹: گرههای جذب را اضافه کنید، که هر کدام زیرمجموعهای از درخواستهای نوشتن را مدیریت میکنند تا از توان عملیاتی بیشتری پشتیبانی کنند.
اگرچه راهاندازی جدید حجم ورودی بالاتری را انجام میدهد و هیچ دادهای از بین نمیرود، افزایش تقاضا برای تأخیر دریافت کمتر باعث میشود تیمها فکر کنند که باید تنظیمات را بیشتر تغییر دهند. گرههای دریافتی که به تأخیر دریافت کمتری نیاز دارند، به خوشههای بلع تبدیل میشوند که در شکل ۱۰ نشان داده شده است.
در اینجا هر خوشه شامل یک گره خرده ای است که مسئول به اشتراک گذاری داده های آینده و گره های ورودی اضافی است. هر گره ورودی مسئول پردازش کار قبل از خوردن برای خرده های اختصاص داده شده خود و ارسال داده ها به ذخیره سازی خرده سمت راست است. عملکرد Ingest Cluster 2 دو برابر Ingest Node 1 است، زیرا تأخیر اکنون تقریباً نیمی از تنظیمات قبلی است. Ingest Cluster 3 تقریباً چهار برابر سریعتر از Ingest Node 1 است.
شکل ۱۰: برای سرعت بخشیدن به جذب داده، گره های جذب را به خوشه های بلع تبدیل کنید.
در زمانهایی از سال که تأخیر حیاتی نیست، چند گره بهطور موقت از Ingest Cluster 3 حذف میشوند تا در منابع ذخیره شود. وقتی ورودی خرد حداقل باشد، Ingest Cluster 2 و Ingest Cluster 3 حتی خاموش میشوند و همه درخواستهای نوشتن برای دریافت به Ingest Node 1 هدایت میشوند.
تیمهای گزارشدهی، بازاریابی و فروش، همانند بارهای کاری درخواستی خود، از تنظیم مقیاس کشسانی برای بارهای کاری دریافتی خود بسیار راضی هستند. با این حال، آنها متوجه شدهاند که حتی اگر با افزودن و حذف خوشههای جذب، توان عملیاتی دریافت به راحتی افزایش و کاهش مییابد، زمانی که Ingest Cluster 3 به ضریب مقیاس خود رسیده است، افزودن گرههای دریافت بیشتر به خوشه آن عملکرد را بهبود نمیبخشد. بنابراین میتوانیم بگوییم که مقیاس پذیری ورودی آن کاملاً الاستیک است، اما مقیاسگذاری عملکرد دریافت آن فقط به مقیاس ضریب چهار کشسان است.
آماده شدن برای کشش آینده
همانطور که در مثالها نشان داده شد، مقیاسبندی پرس و جو و پردازش ورودی تنظیمات در شکل ۶ و شکل ۱۰ کاملاً الاستیک هستند، اما مقیاسبندی عملکرد آنها فقط به ضریب مقیاس چهار انعطافپذیر است. برای پشتیبانی از ضریب مقیاسبندی عملکرد بالاتر، دادهها باید به خردههای کوچکتر تقسیم شوند، به عنوان مثال، یک تکه در هر حالت. با این حال، وقتی با یک عامل مقیاس کوچکتر پیش می رویم، بسیاری از خرده ها باید به یک گره پرس و جو در خوشه پرس و جو نگاشت شوند. به طور مشابه، یک گره ورودی باید داده های بسیاری از خرده ها را مدیریت کند.
یکی از محدودیتهای مقیاسگذاری عملکرد این است که افزایش ضریب مقیاس (یعنی تقسیم دادهها به خردههای کوچکتر) به این معنا نیست که سیستم به دلیل سربار یا محدودیتهای هر مورد استفاده، آنطور که انتظار میرود مقیاس میشود – همانطور که در فست فود نانسی دیدیم. رستوران، که در آن حداکثر ضریب مقیاس عملکرد دو کارمند در هر سفارش بود.
توان عملیاتی الاستیک و مقیاسهای عملکردی که در این پست توضیح داده شده است فقط نمونههایی هستند که به ما کمک میکنند نقش آنها را در یک سیستم پایگاه داده درک کنیم. طرحهای واقعی برای پشتیبانی از آنها بسیار پیچیدهتر هستند و باید عوامل بیشتری را در نظر بگیرند.
نگا تران یک مهندس نرم افزار کارکنان در InfluxData و یکی از اعضای IOx ، که در حال ساخت موتور ذخیره سازی سری زمانی نسل بعدی برای InfluxDB است. قبل از InfluxData، Nga بیش از یک دهه با Vertica Analytic DBMS بود. او یکی از مهندسین کلیدی بود که بهینه ساز پرس و جو را برای Vertica ساخت و بعداً تیم مهندسی Vertica را اداره کرد.
—
New Tech Forum مکانی برای کاوش و بحث در مورد فناوری سازمانی نوظهور در عمق و وسعت بی سابقه ای فراهم می کند. انتخاب ذهنی است، بر اساس انتخاب ما از فناوری هایی که معتقدیم مهم هستند و برای خوانندگان InfoWorld بیشترین علاقه را دارند. InfoWorld وثیقه بازاریابی را برای انتشار نمی پذیرد و حق ویرایش تمام محتوای ارائه شده را برای خود محفوظ می دارد. همه سوالات را به newtechforum@infoworld.com ارسال کنید.
پست های مرتبط
مقیاس دهی توان و عملکرد در یک سیستم پایگاه داده اشتراکی
مقیاس دهی توان و عملکرد در یک سیستم پایگاه داده اشتراکی
مقیاس دهی توان و عملکرد در یک سیستم پایگاه داده اشتراکی