لینکس 7.0 کرنل میں ایک رجعت دریافت ہوئی ہے جو PostgreSQL کی کارکردگی کو آدھا کر دیتی ہے۔

ایمیزون کے ایک انجینئر نے لینکس کرنل 7.0 کے لیے مخصوص ریگریشن کی نشاندہی کی، جو 13 اپریل کو جاری ہونے کی توقع ہے۔ ٹاسک شیڈیولر سیٹنگز میں تبدیلی کے نتیجے میں ARM64 سسٹمز پر PostgreSQL چلانے کے دوران تھرو پٹ اور ردعمل میں نمایاں کمی واقع ہوئی۔ کرنل 7.0 کا استعمال کرتے ہوئے، pgbench "سادہ اپ ڈیٹ" ٹیسٹ میں کارکردگی تقریباً دو گنا کم ہو گئی، 98565 سے 50751 تک۔

سست روی اس کی حمایت کرنے والے فن تعمیرات پر ڈیفالٹ شیڈیولر پریمپشن موڈ کو PREEMPT_NONE سے PREEMPT_LAZY میں تبدیل کرنے کی وجہ سے ہوئی۔ اس کی وجہ سے PostgreSQL نے اپنے CPU وقت کا 55% s_lock() کو یوزر اسپیس میں کال کرنے میں صرف کیا۔ اس مسئلے کو حل کرنے کے لیے، تجویز ہے کہ PREEMPT_NONE کو ڈیفالٹ پر واپس کر دیا جائے اور اسے ARCH_NO_PREEMPT سیٹنگ سے الگ کر دیا جائے۔

پیٹر زیجلسٹرا، ان تبدیلیوں کے مصنف جو رجعت کا سبب بنی اور ٹاسک شیڈیولر اور لاک سے متعلقہ کرنل سب سسٹمز کو برقرار رکھنے والے، نے بتایا کہ پوسٹگری ایس کیو ایل کوڈ میں ایک فکس کو لاگو کرنے کی ضرورت ہے۔ کارکردگی میں کمی کو دور کرنے کے لیے، اس نے لاک ہولڈر کی بے دخلی کے امکانات کو محدود کرنے کے لیے PostgreSQL کرنل میں حال ہی میں شامل کردہ "rseq slice" (Restartable Sequences) ایکسٹینشن کو استعمال کرنے کی سفارش کی۔

یہ ابھی تک واضح نہیں ہے کہ Linus Torvalds کیا فیصلہ کرے گا، کیونکہ وہ اس اصول پر قائم ہے کہ دانا کو کارکردگی کو کم نہیں کرنا چاہیے یا صارف کی جگہ کی مطابقت کو نہیں توڑنا چاہیے۔ ایک طرف، کرنل 7.0 ریلیز سے پہلے آخری ٹیسٹنگ مرحلے میں ہے، اور شیڈیولر سیٹنگز کو واپس کرنے سے دوسرے ریگریشنز ہو سکتے ہیں۔ دوسری طرف، صارفین سب سے زیادہ مقبول ڈیٹا بیس میں سے ایک کی کارکردگی کو نصف کرنے کا تجربہ کر سکتے ہیں۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں