Hermit, alat kanggo testing kontrol lan deteksi kesalahan

pertapa

Hermit, minangka wadhah sing bisa direproduksi, menehi gambaran babagan kaya apa yen tumpukan sistem kasebut bisa diulang minangka abstraksi.

Facebook diluncurake bubar liwat publikasi, Bukak saka Hermit, kang awujud a lingkungan kanggo eksekusi program deterministik, sing ndadekake bisa entuk asil sing padha lan mbaleni proses eksekusi ing macem-macem peluncuran kanthi nggunakake data input sing padha.

Sajrone eksekusi normal, macem-macem faktor extraneous mengaruhi output, kayata wektu saiki, fungsi jadwal thread, alamat memori virtual, data saka generator nomer pseudorandom, lan macem-macem pengenal unik.

Hermit ngidini kanggo mbukak program ing wadhah ngendi faktor iki tetep pancet ing roto sakteruse. Eksekusi sing bisa diulang, sing ngasilake konfigurasi lingkungan sing molah malih, bisa digunakake kanggo diagnosis kesalahan, debugging multi-langkah karo iterasi, nggawe lingkungan tetep kanggo testing kemunduran, testing kaku, ngatasi masalah multi-Utas, lan sistem mbangun repeatable.

Hermit meksa eksekusi deterministik saka program sing sewenang-wenang lan tumindak minangka bungkus sing bisa direproduksi. Yaiku, kanthi hermetis ngisolasi program kasebut saka sumber non-determinisme kayata wektu, interleaving thread, generasi nomer acak, lsp. Determinisme sing dijamin minangka alat sing kuat lan dadi dhasar kanggo sawetara aplikasi, kalebu tes stres konkurensi, rekaman / muter maneh, mbangun sing bisa direproduksi lan diagnosa otomatis kesalahan konkurensi, lan liya-liyane.

Hermit ora bisa ngisolasi program tamu saka sumber non-determinisme, kayata owah-owahan sistem file utawa respon saka jaringan eksternal. Nanging, kanggo nyedhiyakake determinisme lengkap, pangguna kudu nyedhiyakake gambar basis sistem file tetep (contone, karo Docker) lan mateni jaringan eksternal.

Babagan Hermit

Hermit ngidini daya nggawe lingkungan reproducible dening intercepting telpon sistem, sawetara kang diganti karo handler dhewe sing gawé output pancet, lan sawetara kang redirected menyang kernel, sawise data non-persistent dibusak saka output.

Kanggo nyegat telpon Kanggo sistem, framework digunakake lamunan, sing kode uga diterbitake dening Facebook. Kanggo nyegah owah-owahan sistem file lan panjalukan jaringan ora mengaruhi kemajuan eksekusi, eksekusi ditindakake kanthi nggunakake gambar diam saka sistem file lan akses menyang jaringan njaba dipatèni. Kanthi ngakses generator nomer pseudorandom, Hermit ngasilake urutan sing wis ditemtokake sing diulang saben dileksanakake.

Sumber non-determinisme sing paling kompleks yaiku ing jadwal thread. Cara kernel jadwal thread gumantung ing akeh faktor njaba, kalebu jumlah CPU fisik utawa thread liyane mlaku ing sistem sing mbutuhake wektu CPU.

Saka pengaruh non-permanen sing luwih kompleks ing kinerja, highlights thread scheduler, sing prilaku gumantung ing akeh faktor njaba, kayata nomer intine CPU lan ngarsane Utas mlaku liyane.

Kanggo mesthekake prilaku panjadwal repeatable, kabeh Utas wis serialized, bound kanggo inti CPU siji lan ing urutan kang kontrol liwati kanggo Utas. Saben utas diijini nglakokake sawetara instruksi, sawise eksekusi mandheg lan ditransfer menyang benang liyane (kanggo mbatesi, CPU PMU (Unit Pemantau Kinerja) digunakake, sing mandhegake eksekusi sawise sawetara cabang kondisional sing ditemtokake).

kanggo diagnosa masalah karo Utas amarga kondisi lomba, Hermit duwe mode kanggo ndeteksi operasi sing metu saka urutan lan nyebabake blokade. Kanggo ngenali masalah kasebut, perbandingan digawe ing antarane negara-negara ing ngendi operasi sing bener lan penghentian eksekusi sing ora normal didaftar.

Pungkasan, yen sampeyan kepengin sinau babagan iki, sampeyan kudu ngerti kode proyek ditulis ing Rust lan disebarake ing lisensi BSD.

Sampeyan bisa mriksa rincian ing link ing ngisor iki.


Konten artikel kasebut sesuai karo prinsip kita yaiku etika editorial. Kanggo nglaporake klik kesalahan Kene.

Dadi pisanan komentar

Ninggalake komentar sampeyan

Panjenengan alamat email ora bisa diterbitake. Perangkat kothak ditandhani karo *

*

*

  1. Tanggung jawab kanggo data: AB Internet Networks 2008 SL
  2. Tujuan data: Kontrol SPAM, manajemen komentar.
  3. Legitimasi: idin sampeyan
  4. Komunikasi data: Data kasebut ora bakal dikomunikasikake karo pihak katelu kajaba kanthi kewajiban ukum.
  5. Panyimpenan data: Database sing dianakake dening Occentus Networks (EU)
  6. Hak: Kapan wae sampeyan bisa matesi, mulihake lan mbusak informasi sampeyan.