۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

موتورهای داده نسل بعدی عملکرد ابرداده را تغییر می دهند

معماری های جدید موتور داده مانند Speedb عملکرد ابرداده را افزایش می دهد، تأخیر را کاهش می دهد، زمان جستجو را تسریع می کند و مصرف CPU را بهینه می کند. در اینجا نحوه

معماری های جدید موتور داده مانند Speedb عملکرد ابرداده را افزایش می دهد، تأخیر را کاهش می دهد، زمان جستجو را تسریع می کند و مصرف CPU را بهینه می کند. در اینجا نحوه

رشد سریع موارد استفاده فشرده از داده‌ها مانند شبیه‌سازی‌ها، برنامه‌های پخش جریانی (مانند IoT و فیدهای حسگر)، و داده‌های بدون ساختار، اهمیت انجام سریع عملیات پایگاه داده مانند نوشتن و خواندن داده‌ها را افزایش داده است – به‌ویژه زمانی که این برنامه‌ها شروع می‌شوند. مقیاس کردن تقریباً هر مؤلفه در یک سیستم به طور بالقوه می تواند به یک گلوگاه تبدیل شود، از لایه های ذخیره سازی و شبکه از طریق CPU گرفته تا رابط کاربری گرافیکی برنامه.

همانطور که در “بهینه سازی عملکرد ابرداده برای برنامه های کاربردی در مقیاس وب” بحث کردیم، یکی از دلایل اصلی تنگناهای داده، نحوه مدیریت عملیات داده توسط موتور داده است که موتور ذخیره سازی نیز نامیده می شود. -عمیق ترین قسمت پشته نرم افزار که داده ها را مرتب و نمایه می کند. موتورهای داده در ابتدا برای ذخیره ابرداده ها، «داده های مهم درباره داده ها» که شرکت ها برای توصیه فیلم ها برای تماشا یا محصولاتی برای خرید استفاده می کنند، ایجاد شدند. این ابرداده همچنین به ما می‌گوید که داده‌ها چه زمانی ایجاد شده‌اند، دقیقاً کجا ذخیره شده‌اند، و موارد دیگر.

ناکارآمدی‌های ابرداده اغلب به شکل الگوهای خواندن تصادفی، عملکرد کند پرس‌وجو، رفتار ناهماهنگ پرس و جو، قطع شدن ورودی/خروجی و توقف نوشتن ظاهر می‌شوند. با بدتر شدن این مشکلات، مسائلی که از این لایه منشا می‌گیرند می‌توانند در پشته ظاهر شوند و به کاربر نهایی نشان داده شوند، جایی که می‌توانند به صورت خواندن آهسته، نوشتن آهسته، تقویت نوشتن، تقویت فضا، ناتوانی در مقیاس‌بندی و موارد دیگر نشان داده شوند.

معماری های جدید گلوگاه ها را حذف می کنند

موتورهای داده نسل بعدی در پاسخ به تقاضاهای بارهای کاری با تأخیر کم و داده فشرده که به مقیاس پذیری و عملکرد قابل توجهی نیاز دارند، پدید آمده اند. آن‌ها با تنظیم سه نوع تقویت یا نوشتن و بازنویسی داده‌ها که توسط موتورها انجام می‌شوند، تنظیم عملکرد دقیق‌تر را امکان‌پذیر می‌کنند: تقویت نوشتن، تقویت خواندن و تقویت فضا. آنها همچنین با ترفندهای اضافی در مورد نحوه یافتن و ذخیره داده ها توسط موتور پیش می روند.

Speedb، شرکت ما، یکی از موتورهای داده را به عنوان جایگزینی برای طراحی کرد استاندارد صنعت de facto، RocksDB. ما Speedb منبع باز را بر اساس فناوری ارائه شده در یک نسخه سازمانی در دو سال گذشته به جامعه توسعه دهندگان باز می کنیم. p>

روبی 3.3.0 با تجزیه کننده جدید به انتشار نزدیک می شود

بسیاری از توسعه دهندگان با RocksDB آشنا هستند، یک موتور داده فراگیر و جذاب که برای بهره برداری از بسیاری از CPU ها برای بارهای کاری محدود به IO بهینه شده است. استفاده آن از یک ساختار داده مبتنی بر درخت LSM (ادغام با ساختار log)، همانطور که در مقاله قبلی به تفصیل شرح داده شد، برای مدیریت کارآمد موارد استفاده فشرده بسیار عالی است. با این حال، اگر به داده‌ها در بخش‌های کوچک و تصادفی دسترسی پیدا شود، عملکرد خواندن LSM می‌تواند ضعیف باشد و این مشکل با مقیاس برنامه‌ها، به‌ویژه در برنامه‌هایی که حجم زیادی از فایل‌های کوچک دارند، مانند ابرداده، تشدید می‌شود.

بهینه سازی Speedb

Speedb سه تکنیک را برای بهینه‌سازی داده‌ها و مقیاس‌پذیری فراداده توسعه داده است – تکنیک‌هایی که از زمانی که RocksDB و سایر موتورهای داده یک دهه پیش توسعه یافتند، پیشرفت می‌کنند.

تراکم

مانند سایر موتورهای مبتنی بر درخت LSM، RocksDB از فشرده سازی برای بازیابی فضای دیسک و حذف نسخه قدیمی داده ها از گزارش ها استفاده می کند. نوشته های اضافی منابع داده را می خورند و پردازش ابرداده را کاهش می دهند و برای کاهش این امر، موتورهای داده فشرده سازی را انجام می دهند. با این حال، دو روش اصلی تراکم، همسطح و جهانی، بر توانایی این موتورها برای مدیریت موثر بارهای کاری فشرده تأثیر می گذارد.

توضیح مختصری از هر روش چالش را نشان می دهد. فشردگی تراز شده فضای دیسک بسیار کمی را به همراه دارد (پیش‌فرض حدود ۱۱ درصد است). با این حال، برای پایگاه های داده بزرگ، جریمه تقویت I/O زیادی را به همراه دارد. تراکم تراز شده از عملیات “ادغام با” استفاده می کند. یعنی هر سطح با سطح بعدی که معمولاً بسیار بزرگتر است ادغام می شود. در نتیجه، هر سطح یک تقویت خواندن و نوشتن اضافه می کند که متناسب با نسبت بین اندازه های دو سطح است.

فشرده سازی جهانی تقویت نوشتن کوچکتری دارد، اما در نهایت پایگاه داده به فشرده سازی کامل نیاز دارد. این فشرده سازی کامل به فضایی برابر یا بزرگتر از کل اندازه پایگاه داده نیاز دارد و ممکن است پردازش به روز رسانی های جدید را متوقف کند. از این رو فشرده سازی جهانی را نمی توان در اکثر برنامه های کاربردی با کارایی بالا بلادرنگ استفاده کرد.

نقشه راه شغلی: رئیس مهندسی

معماری Speedb فشرده‌سازی ترکیبی را معرفی می‌کند که تقویت نوشتن را برای پایگاه‌های داده بسیار بزرگ بدون مسدود کردن به‌روزرسانی‌ها و با سربار کوچک در فضای اضافی کاهش می‌دهد. روش تراکم ترکیبی مانند فشرده سازی جهانی در تمام سطوح بالاتر عمل می کند، جایی که اندازه داده ها نسبت به اندازه کل پایگاه داده کوچک است، و مانند تراکم تراز شده فقط در پایین ترین سطح کار می کند، جایی که بخش قابل توجهی از داده های به روز شده است. نگهداری می شود.

آزمایش Memtable (شکل ۱ زیر) افزایش ۱۷ درصدی در بازنویسی و ۱۳ درصد افزایش در بارهای کاری ترکیبی خواندن و نوشتن (۹۰ درصد خواندن، ۱۰ درصد نوشتن) را نشان می دهد. نتایج آزمایش‌های فیلتر شکوفه جداگانه بهبود ۱۳۰ درصدی را در موارد خواندن تصادفی در حجم کاری تصادفی (شکل ۲) و کاهش ۲۶ درصدی در استفاده از حافظه (شکل ۳) نشان می‌دهد.

تست‌های اجرا شده توسط Redis افزایش عملکرد را نشان می‌دهند زمانی که Speedb جایگزین RocksDB در اجرای Redis on Flash شد. آزمایش آن با Speedb همچنین نسبت خواندن/نوشتن برنامه را مغایرت داشت، که نشان می‌دهد عملکرد در چندین برنامه مختلف یا در برنامه‌هایی که الگوی دسترسی در آنها در طول زمان تغییر می‌کند قابل پیش‌بینی است.

speedb memtable 01

شکل ۱. تست Memtable با Speedb.

speedb bloomfilter read misss 02

شکل ۲. آزمایش فیلتر بلوم با استفاده از بار کاری تصادفی خوانده شده با Speedb.

speedb bloomfilter readrandom 03

شکل ۳. آزمایش فیلتر بلوم که کاهش استفاده از حافظه را با Speedb نشان می‌دهد.

مدیریت حافظه

مدیریت حافظه کتابخانه های تعبیه شده نقش مهمی در عملکرد برنامه ایفا می کند. راه حل های فعلی پیچیده هستند و دارای پارامترهای درهم تنیده زیادی هستند که بهینه سازی آنها را برای نیازهای خود برای کاربران دشوار می کند. با تغییر محیط یا حجم کار، چالش افزایش می‌یابد.

Speedb هنگام طراحی مجدد مدیریت حافظه به منظور ساده کردن استفاده و افزایش استفاده از منابع، رویکردی جامع را در پیش گرفت.

مدیریت داده‌های کثیف امکان یک زمان‌بندی بهبود یافته را فراهم می‌کند، برنامه‌ای که رویکردی پیشگیرانه دارد و کارایی کلی حافظه و استفاده از سیستم را بدون نیاز به مداخله کاربر بهبود می‌بخشد.

Speedb با کار از ابتدا، ویژگی‌های اضافی را برای دستیابی به عملکرد، مقیاس و سهولت استفاده برای موارد مختلف قابل تنظیم می‌سازد.

خالق Bun.js جارد سامنر درباره فناوری، بودجه و استارت آپ ها صحبت می کند

کنترل جریان

Speedb مکانیزم کنترل جریان RocksDB را دوباره طراحی می‌کند تا جهش‌های تاخیر کاربر را حذف کند. مکانیسم کنترل جریان جدید آن، نرخ را به گونه‌ای تغییر می‌دهد که نسبت به مکانیسم قدیمی، بسیار متوسط‌تر و با دقت بیشتری برای وضعیت سیستم تنظیم شده است. در مواقع لزوم سرعت آن کاهش می یابد و در صورت امکان سرعت آن افزایش می یابد. با انجام این کار، استال ها حذف می شوند، و عملکرد نوشتن پایدار است.

وقتی علت اصلی ناکارآمدی موتور داده در اعماق سیستم مدفون است، پیدا کردن آن ممکن است یک چالش باشد. در عین حال، هر چه علت ریشه ای عمیق تر باشد، تأثیر بیشتری بر سیستم خواهد داشت. همانطور که ضرب المثل قدیمی می گوید، یک زنجیره به اندازه ضعیف ترین حلقه آن قوی است.

معماری‌های موتور داده نسل بعدی مانند Speedb می‌توانند عملکرد ابرداده را افزایش دهند، تأخیر را کاهش دهند، زمان جستجو را تسریع کنند و مصرف CPU را بهینه کنند. همانطور که تیم‌ها کاربردهای فرامقیاس خود را گسترش می‌دهند، فناوری موتور داده جدید یک عنصر حیاتی برای فعال کردن معماری‌های مدرن که چابک، مقیاس‌پذیر و کارآمد هستند، خواهد بود.

Hilik Yochai مدیر ارشد علمی و یکی از بنیانگذاران Speedb است، شرکتی که در پشت موتور داده Speedb، جایگزینی برای RocksDB و Hive، انجمن منبع باز Speedb جایی که توسعه دهندگان می توانند در Speedb و RocksDB با یکدیگر تعامل داشته باشند، بهبود دهند و دانش و بهترین شیوه ها را به اشتراک بگذارند. فناوری Speedb به توسعه دهندگان کمک می کند تا عملیات داده های فوق مقیاس خود را با مقیاس و عملکرد بی حد و حصر بدون به خطر انداختن عملکرد، تکامل دهند، در حالی که دائماً در تلاش برای بهبود قابلیت استفاده و سهولت استفاده هستند.

New Tech Forum مکانی برای کاوش و بحث در مورد فناوری سازمانی نوظهور در عمق و وسعت بی سابقه ای فراهم می کند. انتخاب ذهنی است، بر اساس انتخاب ما از فناوری هایی که معتقدیم مهم هستند و برای خوانندگان InfoWorld بیشترین علاقه را دارند. InfoWorld وثیقه بازاریابی را برای انتشار نمی پذیرد و حق ویرایش تمام محتوای ارائه شده را برای خود محفوظ می دارد. همه سوالات را به newtechforum@infoworld.com ارسال کنید.