49
روشهایSharding ها داده روی کل بر

Sharding

Embed Size (px)

Citation preview

Page 1: Sharding

بر روی کل ن داده هاShardingروش های

Page 2: Sharding

درباره ی شرکت: ارائه راه حل های رایانش ابری، مجازی سازی و مرکز داده● طراحی، تولید و توسعه نرم افزار برای محیط های رایانش ابری● ارائه خدمات در زمینه های مخابرات، آموزشی و بهداشت● به عنوا ن اولین شرکت در ایرا نOpenStack حمایت از بنیاد ● ایرا نOpenStack اولین حامی انجمن ●

Page 3: Sharding

innfinision.netروش های شاردینگ بر روی کل ن داده ها

:فهرستداستا ن مشتریا ن●●Sharding چیست؟ نیاز داریم؟Shardingچه زمانی به ● نیاز داریم؟Shardچه چند ●Shardingانواع ● انتخاب کنیم؟Shard Keyچگونه یک ●Shardingدلیل ●نتیجه گیری●

Page 4: Sharding

داستا ن مشتریا ن

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 5: Sharding

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 6: Sharding

Fouraquare :

میلیو ن کاربر۵۰ ●

میلیو ن افزایش می یابد)۶ میلیارد اعلم حضور در روز (روزی ۶ ●

میلیو ن نقاط و مکا ن های مورد علهقه۵۵ ●

میلیو ن تاجر از این برنامه برای بازاریابی استفاده می کنند۱،۷ ●

عملیات در ثانیه۳۰۰٫۰۰۰ ●

میلیو ن اسناد و مدارک۵٬۵ ●

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 7: Sharding

cluster (mongoDB خوشه (۱۱ ●

۸) تا از آ ن ها خرد shardشده اند (

) بزرگترین خوشهcluster (۱۵(اعلم حضور ها) تا شارد دارد

خرد شده بر روی شناسه ی کاربرا ن

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 8: Sharding

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 9: Sharding

CarFax :

میلیارد اسناد۱۳ ●

میلیارد اسناد هر سال اضافه شده است۱٬۵●

سند است۲۰۰گزارش هر خودرو شامل ●

●۱۲ shard

replica set گره ۹●

●Replica دیتا سنتر توزیع شده اند۳ ها در

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 10: Sharding

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 11: Sharding

نتیجه نتیجه MongoDB MongoDB وضعیت وضعیت برابر سریعتر۴عملکرد ••Scale out با استفاده از

سرورهای ارزا ن هقیمتدارای افزونگی داخلی•شمای انعطاف پذیر مدل •

دادهسازگاری هقوی•تجزیه و تحلیل•

را انتخاب کردند.mongoDB ها، NoSQLپس از بررسی های فراوا ن

•MongoDB محل ذخیره سازی اصلی داده ها است

سرور۵۰ • شارد۱۰• در هر Replica Set گره ۵•

شارد

پایگاه داده تاریخچه •خودرویی

۱ میلیارد رکورد (هر ساله ۱۱•میلیارد اضافه می شود)

سنگین•پرهزینه•

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 12: Sharding

Sharding چیست؟

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 13: Sharding

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

Page 14: Sharding

وجود دارد:shardingسه نوع ●● Hash-based●Range-based●Tag-aware

کم و زیاد کرد ن فضای ذخیره سازی بر اساس نیاز●تعادل سازی خودکار●

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 15: Sharding

mongod

مقیاس پذیری خواند ن/نوشتن

Key Range0..100

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 16: Sharding

mongod mongod

Key Range0..50

Key Range51..100

مقیاس پذیری خواند ن/نوشتن

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 17: Sharding

mongod mongod mongod mongod

Key Range0..25

Key Range26..50

Key Range51..75

Key Range76.. 100

مقیاس پذیری خواند ن/نوشتن

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 18: Sharding

نیاز داریم؟Shardingچه زمانی به

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 19: Sharding

:Replica set آیا یک سرور یا

دارای فضای کافی برای ذخیره سازی تمام اطلعات میباشد؟●

ها رسیدگی کند؟queryمی تواند به توا ن عملیاتی ●

ها سریعا پاسخ دهد؟queryمی تواند به تمام ●

مشخصات سرور

Disk Capacity

Disk IOPSRAMNetwork

Disk IOPSRAMNetwork

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 20: Sharding

نیاز داریم؟Shardبه چند

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 21: Sharding

فضای دیسک :

مجموع فضای دیسک در تمام شاردها باید بیشتر از اندازه ذخیره سازی مورد نیاز باشد.

مثال:3TBانداره ی ذخیره سازی کل =

2TBاندازه ی ذخیره سازی سرور =

شارد نیاز داریم۲به

مثال:3TBانداره ی ذخیره سازی کل =

2TBاندازه ی ذخیره سازی سرور =

شارد نیاز داریم۲به

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 22: Sharding

Sharding در RAM :

Workset در سراسر شارد ها > RAMمجموع ●

Workset اا بیشتر دیده می شوند = مجموعه ای از اسناد که غالب

●Workset در RAM :

زما ن تأخیر کمتر

توا ن عملیاتی بالتر

مثال

Working Set = 428 GBServer RAM = 128 GB ۴۲۸ / ۱۲۸ = ۳،۳۴

شارد نیاز داریم۴به

مثال

Working Set = 428 GBServer RAM = 128 GB ۴۲۸ / ۱۲۸ = ۳،۳۴

شارد نیاز داریم۴به

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 23: Sharding

)Working Set & Index Sizeاندازه گیری حجم شاخص و مجموعه کار (●

: اندازه شاخص هر مجموعه

db.stats()

:حدود حجم مجموعه کارdb.serverStatus({ workingSet: 1})

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 24: Sharding

توا ن عملیاتی دیسک :

مورد نیاز باشدIOPS در سراسر شارد ها باید بیشتر از IOPSمجموع ●

بسیار دشوار استIOPSبرآورد ●

به روز رسانی توضیحات●

به روز رسانی شاخص ها●

اضافه کرد ن به جورنال●

ورود به ل�گ●

بهترین روش: ساخت یک نمونه اولیه و اندازه گیری●

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 25: Sharding

توا ن عملیاتی دیسک :

مورد نیاز باشدIOPS در سراسر شارد ها باید بیشتر از IOPSمجموع ●

بسیار دشوار استIOPSبرآورد ●

به روز رسانی توضیحات●

به روز رسانی شاخص ها●

اضافه کرد ن به جورنال●

ورود به ل�گ●

بهترین روش: ساخت یک نمونه اولیه و اندازه گیری●

مثالIOPS = ۱۱۰۰۰ مورد نیازIOPS = ۵۰۰۰ سرور

شارد نیاز داریم۳به

مثالIOPS = ۱۱۰۰۰ مورد نیازIOPS = ۵۰۰۰ سرور

شارد نیاز داریم۳به

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 26: Sharding

) :OPSعملیات در ثانیه (

● Sعملیات در ثانیه یک سرور =

● Gعملیات در ثانیه مورد نیاز =

● N تعداد شارد ها =

● G = N * S * 0.7

N = (G / 0.7S)

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 27: Sharding

) :OPSعملیات در ثانیه (

● Sعملیات در ثانیه یک سرور =

● Gعملیات در ثانیه مورد نیاز =

● N تعداد شارد ها =

● G = N * S * 0.7

N = (G / 0.7S)

Sharding فوهقانیSharding فوهقانی

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 28: Sharding

) :OPSعملیات در ثانیه (

● Sعملیات در ثانیه یک سرور =

● Gعملیات در ثانیه مورد نیاز =

● N تعداد شارد ها =

● G = N * S * 0.7

N = (G / 0.7S)

مثال

S = ۴۰۰۰G = ۱۰۰۰۰N = ۳،۵۷

شارد نیاز داریم۴به

مثال

S = ۴۰۰۰G = ۱۰۰۰۰N = ۳،۵۷

شارد نیاز داریم۴به

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 29: Sharding

Shardingانواع

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 30: Sharding

Range Sharding

mongod mongod mongod mongod

Key Range0..25

Key Range26..50

Key Range51..75

Key Range76.. 100

مقیاس پذیری خواند ن/نوشتن

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 31: Sharding

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

Page 32: Sharding

Hash Sharding

mongod mongod mongod mongod

Hash Range0000..4444

Hash Range4445..8000

Hash Rangei8001..aaaa

Hash Rangeaaab..ffff

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 33: Sharding

Hash Sharding

مزایا :●

.داده ها به صورت مساوی توزیع می شوند

معایب :●

.ورودی و خروجی بروزرسانی داده های تصادفی و شاخص ها به صورت فشرده در می آیند

.پرس و جو هایی که بر اساس محدوده هستند به صورت پراکنده در می آیند

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 34: Sharding

Range Sharding Document Distribution

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 35: Sharding

Hashed Sharding Document Distribution

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 36: Sharding

انتخاب کنیم؟Shard Keyچگونه یک

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 37: Sharding

خوب :Shard Keyیک

کاردینالیتی کافی دارد.●

نوشته ها را به صورت مساوی توزیع می کند.●

ها).queryهدف دار می خواند (انزوا ●

Shard Key در صورت امکا ن در همه ی query : ها باشد

در غیر این صورت پراکنده جمع آوری می شوند. ●

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 38: Sharding

خوب مهم است :Shard Keyانتخاب یک

بر عملکرد و مقیاس پذیری تأثیر زیادی دارد.●

اا تغییر داد ن آ ن گرا ن هقیمت خواهد بود. ● بعد

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 39: Sharding

● Induces "jumbo chunks"● Examples: boolean field● Monotonically increasing shard key values cause "hot

spots" on inserts● Examples: timestamps, _id

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 40: Sharding

Shardingدلیل

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 41: Sharding

مقیاس پذیری :●

حجم داده ها

حجم پرس و جو ها

استقرار جهانی با نوشته های محلی :●

شاردینگ با هقابلیت آگاه بود ن از جغرافیا

ذخیره سازی طبقه بندی شده●

بازگرداند ن سریع پشتیبانی ها●

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 42: Sharding

استقرار جهانی با نوشته های محلی

Primary:NYC

Secondary:NYC

Primary:LON

Primary:SYD

Secondary:LON

Secondary:NYC

Secondary:SYD

Secondary:LON

Secondary:SYD

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 43: Sharding

ذخیره سازی لیه بندی شده

صرفه جویی در هزینه سخت افزار ها●

هقرار داد ن اسنادی که بیشتر دسترسی داشته اند روی سرور های سریعتر●

هقرار گرفتن داده ها و اسناد روی سرور های کندتر

Tag Aware Shardingاستفاده از ●

mongod mongod mongod mongod

فعلی فعلی آرشیو آرشیو

SSDSSD SSDSSD HDDHDD HDDHDD

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 44: Sharding

بازگرداند ن سریع

ترابایت۴۰دیتابیس ●

ترابایتی۲۰ شارد ۲●

چالش :●

mongod mongod

20 TB 20 TB

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 45: Sharding

بازگرداند ن سریع

ترابایت۴۰دیتابیس ●

ترابایتی۱۰ شارد ۴●

چالش :●

سریعتر انجام می گیرد.۵۰بازگرداند ن اطلعات %

mongod mongod

10 TB 10 TB

mongod mongod

10 TB 10 TB

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 46: Sharding

نتیجه گیری

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 47: Sharding

برای تعیین شارد های مورد نیاز نکات زیر را بررسی کنید:●

ذخیره سازی مورد نیازسرعت زما ن تاخیرتوا ن عملیاتی مورد نیاز

مشتق کل :●

ظرفیت دیسکتوا ن دیسکرم

تعداد شارد ها را بر اساس مشخصات فردی سرور ها تعیین کنید.●

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 48: Sharding

:Shardingنقاط هقوت

مقیاس پذیری●

کلستر ها با هقابلیت آگاه بود ن از جغرافیا●

ذخیره سازی طبقه بندی شده●

بازگرداند ن سریع پشتیبانی ها●

روش های شاردینگ بر روی کل ن داده ها innfinision.net

Page 49: Sharding

متشکریم

Ali Hallaji

[email protected]

innfinision.net