حسین بیگی
حسین بیگی
خواندن ۲ دقیقه·۳ سال پیش

حکایت شیخ و مریدان : Sharding

روزی شیخ در زیر درختی نشسته بود ودرحال نشانه گیری بود که با پلخمون خود بزنه زیر چینگ چغوک!(با تیر کمان دستی خود بزنه زیر نوک گنجشک) که مریدی چغوک را پرانده و گفت:

- یا شیخ خوش رکاب را بین المللی کردیم، و به عنوان لژیونر استارتاپ های ده­مان فرستادیم بلاد فرنگ!

-باریکلا!نوش جونتون!برو که شکار را پراندی.

-آری اما به مشکلی بر خوردیم عجیب!

-چه شده ای مرید؟رنگت مانند پارس سفید پلاک کرج شد!

-ای شیخ سیستم عجیب کند شده!چه کنیم؟؟پارتیشن هم کردیم اما رم و cpu را چگونه هندل کنیم؟؟؟

تازه به طرز عجیبی میزان کانکشن ها به دیتابیس هم زیاد شده که این خود نیز مصداق ترافیک همت می باشد!به جان ما!

شیخ به نماد همیشگی دستی به ریش خود کشید و گفت : بشین که بریم روی منبر!

ببین مرید بابا!الان اوضاع شما فرق میکند دیگر روی یک سرور کار نمیشود کرد!از این رو برو و به DBAdmin خود بگو که برنامه Sharding را هماهنگ کند تا اوضاع به مانند خودروی ملی نشده!

ای شیخ این که گفتی یعنی چه؟؟؟

شیخ گفت :Sharding به مانند Partition می­باشد اما در اندازه سرور!یعنی شما به جای اینکه جدول را به مانند تکه های ته قوطی رانی کنی!سرور را این کار میکنی!(پیاده سازیش پوستت را میکند به مولا!)

العجب!برگام شیخ!بیشتر بگو؟؟چگونه اینکار کنیم؟؟

چگونه­اش که دیتابیس به دیتابیس متفاوت است، اما الگورتیم پیاده سازی را به تو میگویم!حلش باشد برای بعد.

بگذار از سر کلاینت توضیح را شروع کنیم!

مشتری تو در بلاد فرنگ درخواست چهارپای VIP میدهد، حال شما ID مخصوص مشتری را میگیری(فقط  IDنیست بسته به نوع ساختار پروژه میتونه هرچیزی باشه)و سپس با الگورتیم  Consistent Hashing(مقاله بعد در همین مورد هستش) آن را هش میکنی!سپس متوجه میشوی که به کدام سرور وصل شود  و اطلاعاتش در کدام سرور قرار دارند! به این صورت بار مشتریان خود را در بین سرور ها پخش می­نمایی!

از نعمات دینوی این کار بگویم که :

1-هم برای داده ها و هم برای منابع امکان Scalability داری

2-امنیت بیشتر میشود چون میتوانی بنا به داده های مشتری ها آنان را درسرور های جداگانه بگذاری

3-سایز جدول­هایت کوچک تر میشود که این خود یعنی Index کوچک یعنی ایول!

4- هزاران جوایز غیر نقدی دیگر

اما بدان و اگاه باش که این روش بسیار هزینه های فنی و مالی و مغز و اعصابی به بار می­آورد.اگر دیگر راهی نداشتی این کار را بکن!زیرا پیچیدگی های راه اندازی، یک بدبختی!نگهداری سرور ها، یک بدبختی!

sharding
شاید از این پست‌ها خوشتان بیاید