የአማዞን መሐንዲስ በኤፕሪል 13 እንደሚለቀቅ የሚጠበቀውን የሊኑክስ ከርነል 7.0 የተወሰነ ሪግሬሽን ለይቷል። የተግባር መርሐግብር አስያዥ ቅንብሮች ለውጥ PostgreSQLን በ ARM64 ስርዓቶች ላይ ሲያሄዱ የመተላለፊያ እና የምላሽ ሰጪነት ጉልህ ቅነሳ አስከትሏል። የከርነል 7.0ን በመጠቀም፣ በ pgbench "simple-update" ሙከራ ውስጥ ያለው አፈጻጸም ከ98565 ወደ 50751 በሁለት እጥፍ ቀንሷል።
ይህ ፍጥነት መቀዛቀዝ የተከሰተው ነባሪውን የጊዜ ሰሌዳ ቅድመ-ዝግጅት ሁነታ ከPREEMPT_NONE ወደ PREEMPT_LAZY በሚደግፉ አርክቴክቶች ላይ በመቀየር ነው። ይህም PostgreSQL 55% የሚሆነውን የሲፒዩ ጊዜ በተጠቃሚ ቦታ ላይ s_lock() እንዲጠራ እንዲያደርግ አድርጎታል። ይህንን ችግር ለመፍታት፣ PREEMPT_NONEን ወደ ነባሪው እንዲመልስ እና ከARCH_NO_PREEMPT ቅንብር እንዲያላቅቀው ይመከራል።
የሪግሬሽን ለውጥ ያስከተሉትን ለውጦች ደራሲ እና የተግባር መርሐግብር አስያዥ እና ከመቆለፊያ ጋር የተያያዙ የከርነል ንዑስ ስርዓቶችን የሚጠብቅ ፒተር ዚጅልስትራ በ PostgreSQL ኮድ ውስጥ ማስተካከያ መተግበር እንዳለበት ተናግረዋል። የአፈጻጸም መበላሸትን ለመፍታት፣ የመቆለፊያ መያዣን የማስወጣት እድልን ለመገደብ በቅርቡ በ PostgreSQL ከርነል ውስጥ የተጨመረውን "rseq slice" (Restartable Sequences) ቅጥያ እንዲጠቀሙ መክረዋል።
ሊነስ ቶርቫልድስ ምን አይነት ውሳኔ እንደሚያደርግ አሁንም ግልጽ አይደለም፣ ምክንያቱም ከርነሉ አፈጻጸምን ማበላሸት ወይም የተጠቃሚ-ቦታ ተኳሃኝነትን ማበላሸት የለበትም የሚለውን መርህ ስለሚከተል። በአንድ በኩል፣ ከርነል 7.0 ከመልቀቁ በፊት በመጨረሻው የሙከራ ደረጃ ላይ ነው፣ እና የጊዜ ሰሌዳ ቅንብሮችን ወደ ኋላ መመለስ ወደ ሌሎች ሪግሬሽንስ ሊያመራ ይችላል። በሌላ በኩል፣ ተጠቃሚዎች በጣም ታዋቂ ከሆኑ የውሂብ ጎታዎች ውስጥ የአንዱን አፈጻጸም በግማሽ መቀነስ ሊያጋጥማቸው ይችላል።
ምንጭ: opennet.ru
