Hacker News

Zig — io_uring un Grand Central Dispatch std.Io implementācijas tika izkrautas

Zig — io_uring un Grand Central Dispatch std.Io implementācijas tika izkrautas Šajā izpētē tiek pētīta io_uring, pārbaudot tā nozīmi un iespējamo ietekmi. Iekļautie pamatjēdzieni Šis saturs pēta: Pamatprincipi un...

10 min read Via ziglang.org

Mewayz Team

Editorial Team

Hacker News

Zig standarta bibliotēka ir sasniegusi nozīmīgu pavērsienu: ir oficiāli ielaistas std.Io vietējās io_uring un Grand Central Dispatch (GCD) aizmugursistēmas, kas nodrošina augstas veiktspējas platformas asinhrono I/O vienā no daudzsološākajām mūsdienu programmēšanas valodām. Izstrādātājiem, kas veido infrastruktūru, kas nodrošina nākamās paaudzes biznesa platformas, piemēram, 207 moduļu operētājsistēmu, kas ir aiz Mewayz, šī izstrāde liecina par jaunu aizmugursistēmas efektivitātes un mērogojamības laikmetu.

Kas ir io_uring un kāpēc tas ir svarīgi mūsdienu lietojumprogrammām?

Linux kodolā 5.1 ieviestā io_uring ir augstas veiktspējas asinhronā I/O saskarne, kas būtiski maina lietojumprogrammu mijiedarbību ar operētājsistēmu. Tradicionālie I/O modeļi liek programmām veikt atsevišķus sistēmas izsaukumus katrai lasīšanas vai rakstīšanas operācijai — dārgi braucieni turp un atpakaļ, kas samazina veiktspēju plašā mērogā. io_uring to aizstāj ar kopīgu zvana buferi starp lietotāja vietu un kodolu, ļaujot lietojumprogrammām iesniegt un pabeigt tūkstošiem I/O operāciju ar minimālu pieskaitāmo izdevumu.

Praktiskā ietekme ir dramatiska. Tīmekļa serveri, datu bāzes un SaaS platformas, kas apstrādā tūkstošiem vienlaicīgu savienojumu, nekavējoties gūst labumu no samazinātas CPU pieskaitāmās izmaksas un mazāka latentuma. Platformai, kas apkalpo 138 000 aktīvu lietotāju 207 atšķirīgos moduļos — katrs aktivizē failu nolasīšanu, datu bāzes vaicājumus un tīkla pieprasījumus — atšķirība starp mantoto I/O un io_uring var tieši izpausties reakcijas laika uzlabojumos un infrastruktūras izmaksu samazināšanā.

"io_uring neapšaubāmi ir nozīmīgākais Linux I/O papildinājums pēdējo desmit gadu laikā. Likvidējot konteksta maiņas pieskaitāmās izmaksas, ko rada tradicionālie syscalls, tas ļauj lietotāja telpas programmām tuvoties neapstrādātai aparatūras caurlaidspējai — tas ir spēļu mainītājs jebkurai lietojumprogrammai, kurā ievade/izvade ir sastrēgums."

Kā Grand Central Dispatch iekļaujas Zig std.Io stāstā?

Lai gan io_uring ir paredzēts tikai Linux, Apple Grand Central Dispatch (GCD) jau sen ir kalpojis par galveno vienlaicības un uzdevumu nosūtīšanas sistēmu MacOS un iOS. GCD abstrahē pavedienu pārvaldību uz rindas balstītā modelī, ļaujot operētājsistēmai optimāli ieplānot darbu pieejamajos CPU kodolos, izstrādātājiem manuāli nepārvaldot pavedienu kopas.

Novietojot abas aizmugursistēmas zem vienotās std.Io abstrakcijas, Zig komanda ir sasniegusi kaut ko patiešām sarežģītu: vienu asinhronu I/O API virsmu, kas tiek kompilēta uz vietējām, idiomātiskām asinhronās primitīvām gan Linux, gan Apple platformām. Tas nozīmē, ka Zig programmas, kas rakstītas pret std.Io, automātiski izmanto io_uring uz Linux serveriem un GCD uz macOS izstrādes iekārtām — ar nulles platformai raksturīgu sazarojumu lietojumprogrammas kodā.

Kāds ir Zig async I/O ceļojuma vēsturiskais konteksts?

Zig ceļš uz stabilu asinhrono stāstu ir bijis īpaši iteratīvs. Valodas sākotnējās versijās bija eksperimentāla async/gaidīšanas sintakse, kas pēc tam tika noņemta, komandai pārskatot dizainu. Tā vietā, lai izvēlētos noteiktu valodas gramatikā iekļautu vienlaicības modeli, Zig galvenā komanda standarta bibliotēkas līmenī izvēlējās I/O abstrakcijas slāni — tādu, kas joprojām ir saliekams ar dažādām izpildītāju stratēģijām.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Šī filozofija atbilst Zig plašākai dizaina idejai: nav slēptas vadības plūsmas, skaidra sadale un mehānismi, kas veido paredzamu. std.Io saskarne ir kulminācija gadiem ilgām kopienas debatēm, prototipiem un reālām atsauksmēm. Io_uring un GCD aizmugursistēmas izvietošana iezīmē pāreju no eksperimentālās uz ražošanas gatavu Zig asinhronajai ekosistēmai.

Kāda ir praktiskā ietekme uz SaaS un biznesa platformas infrastruktūru?

Komandām, kuras veido vai novērtē aizmugursistēmas infrastruktūru vairāku nomnieku SaaS platformām, Zig io_uring stāstam ir vairākas konkrētas sekas:

  • Samazinātas infrastruktūras izmaksas: lielāka I/O caurlaidspēja uz vienu serveri nozīmē mazāk iekārtu, kas nepieciešamas līdzvērtīgai slodzei, tieši ietekmējot mākoņdatošanas izdevumus.
  • Paredzams latentums mērogā: io_uring pakešu iesniegšanas modelis izlīdzina latentuma kāpumus, kas bieži sastopami lielas vienlaicības gadījumā, uzlabojot lietotāja pieredzi visos platformas moduļos.
  • Starpplatformu izstrādātāju rīki: izmantojot GCD atbalstu, izstrādātāji operētājsistēmā macOS var lokāli darbināt identisku I/O loģiku, kas tiek izvietota Linux ražošanas serveros, tādējādi novēršot ieilgušo plaisu uzticamības testēšanā.
  • Nākotnes drošs sistēmas dizains: io_uring pieaugot blakus esošajos rīkos (datubāzēs, starpniekserveros, izpildlaikos), Zig vietējais atbalsts ir piemērots komponēšanai plašākā mūsdienu Linux ekosistēmā.
  • Atmiņas drošība bez atkritumu savākšanas: Zig īpašumtiesību modelis ir savienots ar io_uring nulles kopiju iespējām bufera pārvaldībai, kas novērš visas sistēmas līmeņa tīkla kodā izplatīto kļūdu kategorijas.

Kādām nākotnes tendencēm izstrādātājiem vajadzētu sekot līdzi šīs ekosistēmas attīstībai?

Šo aizmugursistēmu nolaišanās ir sākums, nevis beigu punkts. Ir vērts rūpīgi izsekot vairākiem notikumiem. Pirmkārt, Zig ekosistēma joprojām attīstās saistībā ar augstāka līmeņa abstrakcijām — HTTP serveri, datu bāzes draiveri un RPC ietvari, kas veidoti uz std.Io, noteiks, cik ātri valoda tiks pārvietota uz produkcijas SaaS skursteņiem. Otrkārt, pati io_uring turpina attīstīties; tādas funkcijas kā fiksētie buferi, daudzuzņēmumu darbības un kodola puses aptauja piedāvā papildu veiktspējas iespējas, ko Zig aizmugursistēma var pakāpeniski parādīt. Treškārt, tā kā WebAssembly izpildlaiki arvien vairāk atklāj WASI I/O saskarnes, Zig abstrakcijas slānis to pozicionē, lai tas būtu mērķēts arī uz šo vidi, ļaujot patiesi rakstīt vienreiz un jebkurā vietā palaist sistēmas kodu.

Platformām, kurām prioritāte ir darbības efektivitāte, piemēram, Mewayz, kas saspiež visu biznesa operētājsistēmu 19–49 USD mēnesī abonementā, šie infrastruktūras līmeņa uzlabojumi ir apvienoti. Katrs sistēmas slāņa efektivitātes pieaugums nozīmē papildu iespējas vairāk funkciju, vairāk lietotāju un labākas rezerves.

Bieži uzdotie jautājumi

Vai io_uring mūsdienās ir droši lietojams ražošanas vidē?

Jā. io_uring ir pieejams kopš Linux kodola 5.1 (2019) un tagad tiek uzskatīts par stabilu ražošanas lietošanai. To ir pieņēmuši lieli projekti, tostarp Redis, RocksDB un daudzi augstas veiktspējas tīkla serveri. Zig ieviešanai tiek izmantotas tās pašas kodola saskarnes, un tā ir piemērota ražošanas darba slodzei mūsdienu Linux izplatījumos, kuros darbojas kodols 5.6 vai jaunāka versija, lai nodrošinātu pilnīgu funkciju atbalstu.

Vai man ir jāpārraksta esošais Zig kods, lai izmantotu jaunās std.Io aizmugursistēmas?

Nekādas būtiskas pārrakstīšanas nav nepieciešamas. Interfeiss std.Io ir izveidots kā stabils abstrakcijas slānis — pret to rakstītais lietojumprogrammas kods automātiski gūs labumu no io_uring vai GCD aizmugursistēmas, kuras pamatā ir kompilācijas mērķis. Galvenais migrācijas darbs ietver atjaunināšanu uz pašreizējo Zig rīkķēdes versiju, kurā ir iekļautas šīs aizmugursistēmas, un jebkura koda pielāgošanu, kas iepriekš tieši izmantoja platformai raksturīgās I/O sistēmas izsaukumus.

Kā tas ir salīdzinājumā ar asinhrono I/O Rust's Tokio vai Go's izpildlaikā?

Tokio operētājsistēmā Linux izmanto arī io_uring, izmantojot tokio-uring kasti, lai gan tas paliek atsevišķi no noklusējuma Tokio izpildlaika, kas izmanto epoll. Go izpildlaiks izmanto savu plānotāju ar epoll balstītu I/O. Zig pieeja atšķiras ar to, ka std.Io ir sinhrona sajūta API līmenī — nav asinhronās/gaidīšanas sintakses, taču joprojām tiek nosūtīta uz vietējām asinhronās primitīvām, kas atrodas zem pārsega. Tas saglabā lasāmību un novērš "krāsu funkciju" problēmu, kas sarežģī asinhronās Rust kodu bāzes.


Neatkarīgi no tā, vai esat izstrādātājs, kas novērtē sistēmu programmēšanas valodas savam nākamajam infrastruktūras projektam, vai uzņēmuma īpašnieks, kurš meklē platformas, kas veidotas, izmantojot efektīvu, mērogojamu tehnoloģiju, tādu rīku kā Zig trajektorija atspoguļo plašāku pāreju uz programmatūras dizainu, kas vispirms ir jāveic. Mewayz ir veidots, pamatojoties uz šo pašu principu — tas nodrošina 207 integrētus biznesa moduļus vairāk nekā 138 000 lietotājiem par nelielu daļu no līdzvērtīgu rīku individuālas komplektēšanas izmaksām. No CRM un analītikas līdz saitei biogrāfijā un kursu piegādei visa biznesa operētājsistēma ir pieejama, sākot no USD 19 mēnesī. Sāciet savu bezmaksas izmēģinājuma versiju vietnē app.mewayz.com un izbaudiet, kā praksē izskatās mūsdienīgs, efektīvs platformas dizains.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime