View
182
Download
3
Category
Preview:
Citation preview
بر روی کل ن داده هاShardingروش های
درباره ی شرکت: ارائه راه حل های رایانش ابری، مجازی سازی و مرکز داده● طراحی، تولید و توسعه نرم افزار برای محیط های رایانش ابری● ارائه خدمات در زمینه های مخابرات، آموزشی و بهداشت● به عنوا ن اولین شرکت در ایرا نOpenStack حمایت از بنیاد ● ایرا نOpenStack اولین حامی انجمن ●
innfinision.netروش های شاردینگ بر روی کل ن داده ها
:فهرستداستا ن مشتریا ن●●Sharding چیست؟ نیاز داریم؟Shardingچه زمانی به ● نیاز داریم؟Shardچه چند ●Shardingانواع ● انتخاب کنیم؟Shard Keyچگونه یک ●Shardingدلیل ●نتیجه گیری●
داستا ن مشتریا ن
روش های شاردینگ بر روی کل ن داده ها innfinision.net
روش های شاردینگ بر روی کل ن داده ها innfinision.net
Fouraquare :
میلیو ن کاربر۵۰ ●
میلیو ن افزایش می یابد)۶ میلیارد اعلم حضور در روز (روزی ۶ ●
میلیو ن نقاط و مکا ن های مورد علهقه۵۵ ●
میلیو ن تاجر از این برنامه برای بازاریابی استفاده می کنند۱،۷ ●
عملیات در ثانیه۳۰۰٫۰۰۰ ●
میلیو ن اسناد و مدارک۵٬۵ ●
روش های شاردینگ بر روی کل ن داده ها innfinision.net
cluster (mongoDB خوشه (۱۱ ●
۸) تا از آ ن ها خرد shardشده اند (
) بزرگترین خوشهcluster (۱۵(اعلم حضور ها) تا شارد دارد
خرد شده بر روی شناسه ی کاربرا ن
روش های شاردینگ بر روی کل ن داده ها innfinision.net
روش های شاردینگ بر روی کل ن داده ها innfinision.net
CarFax :
میلیارد اسناد۱۳ ●
میلیارد اسناد هر سال اضافه شده است۱٬۵●
سند است۲۰۰گزارش هر خودرو شامل ●
●۱۲ shard
replica set گره ۹●
●Replica دیتا سنتر توزیع شده اند۳ ها در
روش های شاردینگ بر روی کل ن داده ها innfinision.net
روش های شاردینگ بر روی کل ن داده ها innfinision.net
نتیجه نتیجه MongoDB MongoDB وضعیت وضعیت برابر سریعتر۴عملکرد ••Scale out با استفاده از
سرورهای ارزا ن هقیمتدارای افزونگی داخلی•شمای انعطاف پذیر مدل •
دادهسازگاری هقوی•تجزیه و تحلیل•
را انتخاب کردند.mongoDB ها، NoSQLپس از بررسی های فراوا ن
•MongoDB محل ذخیره سازی اصلی داده ها است
سرور۵۰ • شارد۱۰• در هر Replica Set گره ۵•
شارد
پایگاه داده تاریخچه •خودرویی
۱ میلیارد رکورد (هر ساله ۱۱•میلیارد اضافه می شود)
سنگین•پرهزینه•
روش های شاردینگ بر روی کل ن داده ها innfinision.net
Sharding چیست؟
روش های شاردینگ بر روی کل ن داده ها innfinision.net
PrimaryPrimary
SecondarySecondary
SecondarySecondary
Shard 1
PrimaryPrimary
SecondarySecondary
SecondarySecondary
Shard 2
PrimaryPrimary
SecondarySecondary
SecondarySecondary
Shard 3
PrimaryPrimary
SecondarySecondary
SecondarySecondary
Shard N
…
Query RouterQuery Router Query RouterQuery Router Query RouterQuery Router……
DriverDriver
ApplicationApplication
روش های شاردینگ بر روی کل ن داده هاروش های شاردینگ بر روی کل ن داده ها innfinision.net
وجود دارد:shardingسه نوع ●● Hash-based●Range-based●Tag-aware
کم و زیاد کرد ن فضای ذخیره سازی بر اساس نیاز●تعادل سازی خودکار●
روش های شاردینگ بر روی کل ن داده ها innfinision.net
mongod
مقیاس پذیری خواند ن/نوشتن
Key Range0..100
روش های شاردینگ بر روی کل ن داده ها innfinision.net
mongod mongod
Key Range0..50
Key Range51..100
مقیاس پذیری خواند ن/نوشتن
روش های شاردینگ بر روی کل ن داده ها innfinision.net
mongod mongod mongod mongod
Key Range0..25
Key Range26..50
Key Range51..75
Key Range76.. 100
مقیاس پذیری خواند ن/نوشتن
روش های شاردینگ بر روی کل ن داده ها innfinision.net
نیاز داریم؟Shardingچه زمانی به
روش های شاردینگ بر روی کل ن داده ها innfinision.net
:Replica set آیا یک سرور یا
دارای فضای کافی برای ذخیره سازی تمام اطلعات میباشد؟●
ها رسیدگی کند؟queryمی تواند به توا ن عملیاتی ●
ها سریعا پاسخ دهد؟queryمی تواند به تمام ●
مشخصات سرور
Disk Capacity
Disk IOPSRAMNetwork
Disk IOPSRAMNetwork
روش های شاردینگ بر روی کل ن داده ها innfinision.net
نیاز داریم؟Shardبه چند
روش های شاردینگ بر روی کل ن داده ها innfinision.net
فضای دیسک :
مجموع فضای دیسک در تمام شاردها باید بیشتر از اندازه ذخیره سازی مورد نیاز باشد.
مثال:3TBانداره ی ذخیره سازی کل =
2TBاندازه ی ذخیره سازی سرور =
شارد نیاز داریم۲به
مثال:3TBانداره ی ذخیره سازی کل =
2TBاندازه ی ذخیره سازی سرور =
شارد نیاز داریم۲به
روش های شاردینگ بر روی کل ن داده ها innfinision.net
Sharding در RAM :
Workset در سراسر شارد ها > RAMمجموع ●
Workset اا بیشتر دیده می شوند = مجموعه ای از اسناد که غالب
●Workset در RAM :
زما ن تأخیر کمتر
توا ن عملیاتی بالتر
مثال
Working Set = 428 GBServer RAM = 128 GB ۴۲۸ / ۱۲۸ = ۳،۳۴
شارد نیاز داریم۴به
مثال
Working Set = 428 GBServer RAM = 128 GB ۴۲۸ / ۱۲۸ = ۳،۳۴
شارد نیاز داریم۴به
روش های شاردینگ بر روی کل ن داده ها innfinision.net
)Working Set & Index Sizeاندازه گیری حجم شاخص و مجموعه کار (●
: اندازه شاخص هر مجموعه
db.stats()
:حدود حجم مجموعه کارdb.serverStatus({ workingSet: 1})
روش های شاردینگ بر روی کل ن داده ها innfinision.net
توا ن عملیاتی دیسک :
مورد نیاز باشدIOPS در سراسر شارد ها باید بیشتر از IOPSمجموع ●
بسیار دشوار استIOPSبرآورد ●
به روز رسانی توضیحات●
به روز رسانی شاخص ها●
اضافه کرد ن به جورنال●
ورود به ل�گ●
بهترین روش: ساخت یک نمونه اولیه و اندازه گیری●
روش های شاردینگ بر روی کل ن داده ها innfinision.net
توا ن عملیاتی دیسک :
مورد نیاز باشدIOPS در سراسر شارد ها باید بیشتر از IOPSمجموع ●
بسیار دشوار استIOPSبرآورد ●
به روز رسانی توضیحات●
به روز رسانی شاخص ها●
اضافه کرد ن به جورنال●
ورود به ل�گ●
بهترین روش: ساخت یک نمونه اولیه و اندازه گیری●
مثالIOPS = ۱۱۰۰۰ مورد نیازIOPS = ۵۰۰۰ سرور
شارد نیاز داریم۳به
مثالIOPS = ۱۱۰۰۰ مورد نیازIOPS = ۵۰۰۰ سرور
شارد نیاز داریم۳به
روش های شاردینگ بر روی کل ن داده ها innfinision.net
) :OPSعملیات در ثانیه (
● Sعملیات در ثانیه یک سرور =
● Gعملیات در ثانیه مورد نیاز =
● N تعداد شارد ها =
● G = N * S * 0.7
N = (G / 0.7S)
روش های شاردینگ بر روی کل ن داده ها innfinision.net
) :OPSعملیات در ثانیه (
● Sعملیات در ثانیه یک سرور =
● Gعملیات در ثانیه مورد نیاز =
● N تعداد شارد ها =
● G = N * S * 0.7
N = (G / 0.7S)
Sharding فوهقانیSharding فوهقانی
روش های شاردینگ بر روی کل ن داده ها innfinision.net
) :OPSعملیات در ثانیه (
● Sعملیات در ثانیه یک سرور =
● Gعملیات در ثانیه مورد نیاز =
● N تعداد شارد ها =
● G = N * S * 0.7
N = (G / 0.7S)
مثال
S = ۴۰۰۰G = ۱۰۰۰۰N = ۳،۵۷
شارد نیاز داریم۴به
مثال
S = ۴۰۰۰G = ۱۰۰۰۰N = ۳،۵۷
شارد نیاز داریم۴به
روش های شاردینگ بر روی کل ن داده ها innfinision.net
Shardingانواع
روش های شاردینگ بر روی کل ن داده ها innfinision.net
Range Sharding
mongod mongod mongod mongod
Key Range0..25
Key Range26..50
Key Range51..75
Key Range76.. 100
مقیاس پذیری خواند ن/نوشتن
روش های شاردینگ بر روی کل ن داده ها innfinision.net
Tag Aware Sharding
mongod mongod mongod mongod
Shard Tags
Shard Tag شروع پایا نزمستا ن 23 Dec 21 Mar
بهار 22 Mar 21 Jun
تابستا ن 21 Jun 23 Sep
پاییز 24 Sep 22 Dec
Tag Ranges
زمستا ن بهار تابستا ن پاییز
روش های شاردینگ بر روی کل ن داده ها innfinision.net
Hash Sharding
mongod mongod mongod mongod
Hash Range0000..4444
Hash Range4445..8000
Hash Rangei8001..aaaa
Hash Rangeaaab..ffff
روش های شاردینگ بر روی کل ن داده ها innfinision.net
Hash Sharding
مزایا :●
.داده ها به صورت مساوی توزیع می شوند
معایب :●
.ورودی و خروجی بروزرسانی داده های تصادفی و شاخص ها به صورت فشرده در می آیند
.پرس و جو هایی که بر اساس محدوده هستند به صورت پراکنده در می آیند
روش های شاردینگ بر روی کل ن داده ها innfinision.net
Range Sharding Document Distribution
روش های شاردینگ بر روی کل ن داده ها innfinision.net
Hashed Sharding Document Distribution
روش های شاردینگ بر روی کل ن داده ها innfinision.net
انتخاب کنیم؟Shard Keyچگونه یک
روش های شاردینگ بر روی کل ن داده ها innfinision.net
خوب :Shard Keyیک
کاردینالیتی کافی دارد.●
نوشته ها را به صورت مساوی توزیع می کند.●
ها).queryهدف دار می خواند (انزوا ●
Shard Key در صورت امکا ن در همه ی query : ها باشد
در غیر این صورت پراکنده جمع آوری می شوند. ●
روش های شاردینگ بر روی کل ن داده ها innfinision.net
خوب مهم است :Shard Keyانتخاب یک
بر عملکرد و مقیاس پذیری تأثیر زیادی دارد.●
اا تغییر داد ن آ ن گرا ن هقیمت خواهد بود. ● بعد
روش های شاردینگ بر روی کل ن داده ها innfinision.net
● Induces "jumbo chunks"● Examples: boolean field● Monotonically increasing shard key values cause "hot
spots" on inserts● Examples: timestamps, _id
روش های شاردینگ بر روی کل ن داده ها innfinision.net
Shardingدلیل
روش های شاردینگ بر روی کل ن داده ها innfinision.net
مقیاس پذیری :●
حجم داده ها
حجم پرس و جو ها
استقرار جهانی با نوشته های محلی :●
شاردینگ با هقابلیت آگاه بود ن از جغرافیا
ذخیره سازی طبقه بندی شده●
بازگرداند ن سریع پشتیبانی ها●
روش های شاردینگ بر روی کل ن داده ها innfinision.net
استقرار جهانی با نوشته های محلی
Primary:NYC
Secondary:NYC
Primary:LON
Primary:SYD
Secondary:LON
Secondary:NYC
Secondary:SYD
Secondary:LON
Secondary:SYD
روش های شاردینگ بر روی کل ن داده ها innfinision.net
ذخیره سازی لیه بندی شده
صرفه جویی در هزینه سخت افزار ها●
هقرار داد ن اسنادی که بیشتر دسترسی داشته اند روی سرور های سریعتر●
هقرار گرفتن داده ها و اسناد روی سرور های کندتر
Tag Aware Shardingاستفاده از ●
mongod mongod mongod mongod
فعلی فعلی آرشیو آرشیو
SSDSSD SSDSSD HDDHDD HDDHDD
روش های شاردینگ بر روی کل ن داده ها innfinision.net
بازگرداند ن سریع
ترابایت۴۰دیتابیس ●
ترابایتی۲۰ شارد ۲●
چالش :●
mongod mongod
20 TB 20 TB
روش های شاردینگ بر روی کل ن داده ها innfinision.net
بازگرداند ن سریع
ترابایت۴۰دیتابیس ●
ترابایتی۱۰ شارد ۴●
چالش :●
سریعتر انجام می گیرد.۵۰بازگرداند ن اطلعات %
mongod mongod
10 TB 10 TB
mongod mongod
10 TB 10 TB
روش های شاردینگ بر روی کل ن داده ها innfinision.net
نتیجه گیری
روش های شاردینگ بر روی کل ن داده ها innfinision.net
برای تعیین شارد های مورد نیاز نکات زیر را بررسی کنید:●
ذخیره سازی مورد نیازسرعت زما ن تاخیرتوا ن عملیاتی مورد نیاز
مشتق کل :●
ظرفیت دیسکتوا ن دیسکرم
تعداد شارد ها را بر اساس مشخصات فردی سرور ها تعیین کنید.●
روش های شاردینگ بر روی کل ن داده ها innfinision.net
:Shardingنقاط هقوت
مقیاس پذیری●
کلستر ها با هقابلیت آگاه بود ن از جغرافیا●
ذخیره سازی طبقه بندی شده●
بازگرداند ن سریع پشتیبانی ها●
روش های شاردینگ بر روی کل ن داده ها innfinision.net
متشکریم
Ali Hallaji
Ali.Hallaji@innfinision.net
innfinision.net
Recommended