بهبود کوئری ها و sharding در MongoDB 4.4

شرکت MongoDB که پایگاه داده noSQL و سند-گرای محبوب به همین نام را توسعه داده است، MongoDB 4.4 را با ویژگی های جدید و پیشرفت هایی در جهت تقویت توانایی پایگاه داده برای کار با اطمینان و در مقیاس، به صورت عمومی منتشر کرده است. در ادامه در مورد بهبود کوئری ها و sharding در MongoDB 4.4 بیشتر توضیح خواهیم داد.

بهبود کوئری ها و sharding در MongoDB 4.4

MongoDB مدت هاست مکانیزم هایی برای مقیاس بندی از طریق Sharding و یا توزیع داده ها در گره ها فراهم کرده است. اسناد (Documents) با استفاده از یک shard key با یک shard مشخص و یا گره پیوند داده می شوند. از آن جا که نمی توان shard key یک سند را بعد از تخصیص آن، تغییر داد، هر سندی تا پایان عمر خود فقط با یک shard key همراه است. این امر باعث می شود تا ایجاد مجدد بالانس shard ها به عنوان محتوای پایگاه داده دشوار شود.

بهبود کوئری ها و sharding در MongoDB 4.4

بهبود کوئری ها و sharding در MongoDB 4.4

برای حل این مشکل، MongoDB 4.4، کلید های Shard قابل تصحیح یا “refinable shard keys” را معرفی می کند که به shard key های اسناد این امکان را می دهد تا تغییر کنند تا اسناد بتوانند به shard های مختلف منتقل شوند. با استفاده از shard key های قابل تصحیح، اسنادی که با هم به یک shard تعلق دارند، می توانند یا تغییر نیازمندی ها به یکدیگر برسند. همچنین اسناد می توانند به صورت پویا یا برنامه ریزی شده، مجددا بالانس شوند تا بهتر بتوانند با الگو های دستیابی در حال تغییر، تطبیق یابند.

Aggregation ها در MongoDB 4.4

Aggregation ها در MongoDB یا همان کوئری ها، چندین قابلیت جدید در MongoDB 4.4 بدست آورده اند. Union ها به داده هایی که از dataset های مختلف در داخل MongoDB Collection قرار دارند، این امکان را می دهد تا در کوئری ها جمع شوند. به این ترتیب، دیگر نیازی نیست تا داده ها از طریق یک مرحله جداگانه ETL (استخراج، تبدیل، بارگذاری) پردازش شوند. می توان آن را در محل، روی سرور تلفیق کرد.

عبارت های سفارشی aggregation، مانند اگرتور function$ ، اکنون اجازه می دهد تا aggregation های بیشتری در سمت سرور انجام شود. این در اصل نسخه ای از رویه های ذخیره شده است. ویژگی که مدت طولانی در پایگاه های داده رابطه ای استفاده می شود اما برای اولین بار در MongoDB ظاهر می شود. با این وجود استفاده از function$ ممکن است در کارایی و پرفورمنس تأثیر بگذارد. بنابراین فقط زمانی که عبارت های aggregation داخلی کافی نباشند، از این قابلیت استفاده کنید.

سایر ویژگی های جدید، نحوه مدیریت خواندن از گره ها و درخواست ها را بهبود می بخشد. ویژگی “خواندن محافظت شده” یا hedged reads، درخواست های ورودی را خوانده و آن ها را به همه گره هایی که قادر به برآورده کردن درخواست هستند، هدایت می کند و سریعترین پاسخ را به درخواست ارائه می دهد.

QR:  بهبود کوئری ها و sharding در MongoDB 4.4
به اشتراک بگذارید