Skip to content

برگه‌ها

  • درباره من

تماس با من

برای ارتباط با بنده ایمیل های خود را به آدرس :
miladhzz@gmail.com
ارسال کنید
و یا به شماره 09384677005 پیامک ارسال کنید.

سایت میلاد حاتمی
  • پروژه ها
  • آموزش
  • برنامه نویسی
  • نرم افزار
  • درباره من
خانه » ساخت ID های منحصر به فرد در دیتابیس های توزیع شده ( قسمت اول)

ساخت ID های منحصر به فرد در دیتابیس های توزیع شده ( قسمت اول)

Post Views: 132
Leave a comment on ساخت ID های منحصر به فرد در دیتابیس های توزیع شده ( قسمت اول) ژوئن 7, 2024 ژوئن 7, 2024 علاقه شخصی
نویسنده

ساخت ID های منحصر به فرد در دیتابیس های توزیع شده ( قسمت اول)

سلام دوستان عزیز امیدوارم که حالتون خوب باشه. در کنارتون هستیم با یکی از پرکاربرد ترین و مهمترین مسئله های حوزه مهندسی نرم افزار و در حیطه سیستم های توزیع شده.
ما در قسمت قبل کمی درباره سیستم های توزیع شده و همینطور sharding صحبت کردیم و یه دید کلی نسبت بهش به دست آوردیم.
فرض کنید ما یک سیستم بزرگ داریم که با حجم مناسبی از داده ها سر و کار داریم ( منظورم بیگ دیتا نیست) و نیاز داریم که داده ها رو در دیتابیس های مختلفی ذخیره کنیم به جای این که یک سرور دیتابیس داشته باشیم و صفر تا صد رو داخل اون ذخیره کنیم.
اگر sql بدونید و با دیتابیس ها کار کرده باشید میدونید ما یک کلید داریم تحت عنوان primary key یا کلید اصلی. که معمولا یا یک مقدار منحصر به فرد مثل کد ملی داره و یا این که auto increment هست ( یعنی کلید هر ردیف رو به شکل اتوماتیک ست میکنه : ۱و۳و۵و… که تو این مثال کلید ها دو تا دوتا اضافه شدن).
ویژگی auto increment مزیت هایی داره :
یک ) مطمئن هستیم که هیچوقت کلید تکراری در یک دیتابیس تولید نمیشه.
دو) کلید ها از الگوی خاصی پیروی میکنن که این هم میتونه مزیت و هم عیب محسوب بشه.
اما این روش اشکالاتی هم داره. زمانی که شما میخواید از معماری توزیع شده استفاده کنید قطعا بیش از یک دیتابیس دارید. مثلا دو تا یا سه تا. و هر کدوم از این دیتابیس ها نمیتونن با یک الگوی خاص داده رو ذخیره کنن.( اینطوری کلید تکراری میخوریم و مشکل بزرگ ایجاد میشه برامون)
و اما راه حل چیه؟
راه حل اول : از الگو های متفاوتی استفاده کنیم برا auto increment به عنوان مثال در دیتابیس A و B مثال های زیر رو ببینین
A : 1,3,5,7,…
B: 2,4,6,8,…

به نظر راه حل خوبی میاد ولی چند اشکال داره:

۱.مقیاس پذیری دشوار
۲.اگر سروری کم و زیاد بشه مقیاس پذیری ما به F**k میره 🙂

این یه مقدمه ای بود راجع به این چالشی که این روزا زیاد باهاش دست و پنجه نرم میکنیم. تو قسمت بعدی به ارائه روش های مناسبتری برای حل این چالش میپردازیم

منبع:
https://t.me/tobecomesoftwareengineer

Post Views: 132

Add a Comment لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Time limit is exhausted. Please reload CAPTCHA.

© 2025 - All rights reserved