آشنایی با مفهوم scaling horizontally وscaling vertically در دیتابیس ها
- توسط : علی حسین شهابی
- 0 نظر
با سلام خدمت دوستان گرامی
می خواهم خیلی خلاصه درباره دو مفهوم scaling horizontally و scaling vertically صحبت کنم که این اواخر خیلی زیاد پرسیده شده .
Horizontal scaling یا بزرگ کردن افقی به معنی افزایش مقیاس دیتابیس با استفاده از افزایش سرور ها است . به این منظور که شما به راحتی با افزایش سرورها و کنار هم قرار دادن آنها می توانید به بزرگ کردن scale بپردازید که در دیتابیس های جهان اغلب به صورت پارتیشن بندی کردن دیتاها ( partitioning ) انجام می شود که در این صورت هر node یا سرور تنها بخشی از کل دیتاها را نگهداری می کند .
Vertical scaling یا بزرگ کردن عمودی, بزرگ کردن و مقیاس دادن را با استفاده از افزایش resources های سرور یعنی تعداد cpu و ram در سرور جاری انجام می دهید . در Vertical scaling داده ها غالبا روی یک node یا سرور قرار دارند و شما می توانید در صورت نیاز به افزایش تعداد cpu و ram آن بپردازید .
معمولا پیاده سازی Horizontal scaling ساده تر و داینامیک تر می باشد و تغریبا بدون محدودیت می توانید سرورهای جدیدی را برای افزایش مقایس , اضافه کنیم اما در Vertical scaling نهایت دچار محدودیت ظرفیت cpu و ram می شویم.
مثال های خوبی که می توان برای Horizontal scaling زد :
- Cassandra
- MongoDB
مثالهایی که می توان برای Vertical scaling زد
برخی از دیتابیس های In-Memory نیز هستند که هر دو مدل Horizontal scaling و Vertical scaling را پشتیبانی می کنند:
که احتمالا دلیل این پشتیبانی این است که داده ها در دیسک ذخیره نمی شوند .
خوشحال میشوم تجربیات و نظرات خودتان را در مورد این دو مفهوم به منظور افزایش جا افتادن قضیه در نظرات اعلام کنید .