آشنایی با مفهوم scaling horizontally وscaling vertically در دیتابیس ها

  • خانه
  • آشنایی با مفهوم scaling horizontally وscaling vertically در دیتابیس ها
Image تحقیقات

آشنایی با مفهوم scaling horizontally وscaling vertically در دیتابیس ها

با سلام خدمت دوستان گرامی

می خواهم خیلی خلاصه درباره دو مفهوم 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 را پشتیبانی می کنند:

که احتمالا دلیل این پشتیبانی این است که داده ها در دیسک ذخیره نمی شوند .

خوشحال میشوم تجربیات و نظرات خودتان را در مورد این دو مفهوم  به منظور افزایش جا افتادن قضیه در نظرات اعلام کنید .