TiDB 3.0 انتشار DBMS را توزیع کرد

در دسترس انتشار یک DBMS توزیع شده TiDB 3.0، تحت تأثیر فناوری های گوگل توسعه یافته است گیره и F1. TiDB به دسته سیستم های هیبریدی HTAP (پردازش تراکنش/تحلیلی ترکیبی) تعلق دارد که هم قادر به ارائه تراکنش های بلادرنگ (OLTP) و هم پردازش پرس و جوهای تحلیلی است. این پروژه به زبان Go نوشته شده است و توزیع شده توسط دارای مجوز Apache 2.0.

ویژگی های TiDB:

  • پشتیبانی SQL و ارائه یک رابط مشتری سازگار با پروتکل MySQL، که تطبیق برنامه های موجود برای MySQL را با TiDB ساده می کند و همچنین امکان استفاده از کتابخانه های مشتری رایج را فراهم می کند. علاوه بر پروتکل MySQL، می توانید از یک API مبتنی بر JSON و یک رابط برای Spark برای دسترسی به DBMS استفاده کنید.
  • ویژگی های SQL از نمایه ها، توابع انبوه، GROUP BY، ORDER BY، عبارات متمایز، ادغام (LEFT JOIN / RIGHT JOIN / CROSS JOIN)، نماها، توابع پنجره و سوالات فرعی پشتیبانی می کند. قابلیت های ارائه شده برای سازماندهی کار با TiDB برای برنامه های کاربردی وب مانند PhpMyAdmin کافی است، جوگ ها و وردپرس؛
  • مقیاس پذیری افقی و تحمل خطا: اندازه ذخیره سازی و قدرت پردازش را می توان به سادگی با اتصال گره های جدید افزایش داد. داده ها در بین گره ها با افزونگی توزیع می شوند و در صورت شکست تک تک گره ها، عملیات ادامه می یابد. شکست ها به طور خودکار رسیدگی می شوند.
  • سیستم ثبات را تضمین می کند و برای نرم افزار مشتری مانند یک DBMS بزرگ به نظر می رسد، علیرغم این واقعیت که در واقع، داده های بسیاری از گره ها برای تکمیل تراکنش جذب می شوند.
  • برای ذخیره فیزیکی داده ها بر روی گره ها، می توان از پشتیبان های مختلف استفاده کرد، به عنوان مثال، موتورهای ذخیره سازی محلی GoLevelDB و BoltDB یا موتور ذخیره سازی توزیع شده خودمان. TiKV.
  • امکان تغییر ناهمزمان طرح ذخیره سازی، به شما این امکان را می دهد که بدون توقف پردازش عملیات در حال انجام، ستون ها و نمایه ها را در لحظه اضافه کنید.

اصلی نوآوری ها:

  • کار برای افزایش بهره وری انجام شده است. در تست Sysbench، انتشار 3.0 در هنگام انجام عملیات انتخاب و به روز رسانی، 2.1 برابر سریعتر از شاخه 1.5 و در تست TPC-C 4.5 برابر است. بهینه‌سازی‌ها بر انواع مختلف پرس‌و‌جوها، از جمله پرس‌وجوهای فرعی IN، DO و NOT EXISTS، عملیات ادغام جدول (JOIN)، استفاده از نمایه‌ها و موارد دیگر تأثیر گذاشته است.
    TiDB 3.0 انتشار DBMS را توزیع کردTiDB 3.0 انتشار DBMS را توزیع کرد

  • یک موتور ذخیره سازی جدید TiFlash اضافه شده است که به لطف ذخیره سازی ستونی، عملکرد بالاتری را در حل مسائل تحلیلی (OLAP) فراهم می کند. TiFlash مکمل فضای ذخیره سازی قبلی TiKV است که داده های ردیفی را در قالب کلید/مقدار ذخیره می کند و برای کارهای پردازش تراکنش (OLTP) ایده آل تر است. TiFlash در کنار TiKV کار می کند و داده ها مانند قبل با استفاده از پروتکل Raft برای تعیین اجماع، به TiKV تکرار می شوند، اما برای هر گروه از کپی های Raft یک ماکت اضافی ایجاد می شود که در TiFlash استفاده می شود. این رویکرد به اشتراک گذاری منابع بهتر بین وظایف OLTP و OLAP اجازه می دهد و همچنین داده های تراکنش را فوراً برای پرس و جوهای تحلیلی در دسترس قرار می دهد.

    TiDB 3.0 انتشار DBMS را توزیع کرد

  • یک زباله جمع کن توزیع شده اجرا شده است که می تواند به طور قابل توجهی سرعت جمع آوری زباله را در خوشه های بزرگ افزایش دهد و پایداری را بهبود بخشد.
  • یک اجرای آزمایشی از کنترل دسترسی مبتنی بر نقش (RBAC) اضافه شده است. همچنین امکان تنظیم حقوق دسترسی برای عملیات ANALYZE، USE، SET GLOBAL و SHOW PROCESSLIST وجود دارد.
  • قابلیت استفاده از عبارات SQL برای استخراج پرس و جوهای کند از گزارش اضافه شده است.
  • مکانیزمی برای بازیابی سریع جداول حذف شده پیاده سازی شده است که به شما امکان می دهد داده های حذف شده تصادفی را بازیابی کنید.
  • قالب گزارش های ثبت شده یکسان شده است.
  • اضافه شدن پشتیبانی از حالت قفل بدبینانه، که پردازش تراکنش را شبیه MySQL می کند.
  • اضافه شدن پشتیبانی از توابع پنجره (توابع پنجره یا توابع تحلیلی) سازگار با MySQL 8.0. توابع پنجره به شما این امکان را می دهند که برای هر سطر پرس و جو با استفاده از ردیف های دیگر محاسبات را انجام دهید. بر خلاف توابع انبوه، که مجموعه‌ای از ردیف‌ها را در یک ردیف جمع می‌کنند، توابع پنجره بر اساس محتویات یک «پنجره» که شامل یک یا چند ردیف از مجموعه نتایج است، جمع می‌شوند. از جمله توابع پنجره اجرا شده:
    NTILE، LEAD، LAG، PERCENT_RANK، NTH_VALUE، CUME_DIST، FIRST_VALUE، LAST_VALUE، RANK، DENSE_RANK و ROW_NUMBER؛

  • اضافه شدن پشتیبانی آزمایشی برای نماها (VIEW).
  • سیستم پارتیشن بندی بهبود یافته است، توانایی توزیع داده ها در بخش ها بر اساس طیف وسیعی از مقادیر یا هش ها اضافه شده است.
  • چارچوبی برای توسعه پلاگین ها اضافه شده است، به عنوان مثال، افزونه ها قبلاً برای استفاده از لیست سفید IP یا حفظ گزارش حسابرسی آماده شده اند.
  • پشتیبانی آزمایشی برای تابع "EXPLAIN ANALYZE" برای ساختن یک طرح اجرایی برای یک پرس و جوی SQL (مدیریت طرح SQL) ارائه شده است.
  • دستور next_row_id برای دریافت شناسه ردیف بعدی اضافه شد.
  • توابع داخلی جدید JSON_QUOTE، JSON_ARRAY_APPEND، JSON_MERGE_PRESERVE، BENCHMARK، COALESCE و NAME_CONST اضافه شد.

منبع: opennet.ru

اضافه کردن نظر