TGViewer
Programming ∀ Programming ∀ @programming_everyone · 1.36K subscribers
Post #3951 463
Programming ∀ Endi bunga write streamlar qo'shish kerak va agar man biror structure berib shuni journalga yozsam o'zi encode qilib streamga tashlashi kerak. Shunda bunaqa tassavur qilsangiz bo'ladi. Har bir journal entry bu raw Har bir entry field bu column. Ammo journal…
Tiplarni journalga implement qilishga bitta sabab topdim.

1. Loglarni render qilish kerak. Journalga hohlagancha narsa yozib tashlayverganingiz bilan hali muammoni report qilinganda o'sha journalni view qiladiganlar ham tushuna olishi kerak.
2. Reportdan olingan dump file ichida aniq duplicated narsalar bo'ladi, masalan muammo kernel oops bilan boshlandi va shu sababli boshqa joylarga ham tasir qildi, natija tizimda nimadurlar buzildi lekin bunaqa holatda loglarni ko'rsangiz doyim ham bitta bo'lmaydi yani sabablar zanjiri. Demak journalni indexlay olish muhimroq ammo indexlar read journal qilinganda bo'lmaydi mavjud journal data fileni o'qib undan index yasash kerak va bu yaqin kelajakda bo'ladi.

Bu holatda esa eng boshlang'ich yechim journal entrylarga tiplar qo'shish. Ho'sh qanday bo'ladi ?

Yechimlar unchalik qiyin emas hayolga 2tasi keldi.

1. Har bir field o'zini tipiga ega bo'ladi. Bunda boshlang'ich 1 yoki 4 byte offset type representation bo'ladi. Masalan 1 kelsa 32bit int, 2 kelsa 64, 3 kelsa string vaxakazo.

2. Bufferlar indexlari bo'yicha type schemalar. Bu holatda biz har bir entryga metadataga schema qo'shib ketamiz. Masalan bizni entryda 3ta field bor. Metadatagi N byte tuple bo'ladi va u yerda schema turadi: (3,3,2) Bu yerda entry field order o'zgarsa ham farqi yo'q kombinatsiyalar mos kelaveradi.


Yana bir biroz murakkabroq va chalaroq fikr bor ammo potential storage efficient, recorda tag bor yani type constructor tag bo'lib olgan. Aslida bu unchalik tog'ri ham emas chunki code o'zgarishi mumkin va turli tillarda constructor namelar turlicha. Shu sabab shunchaki strukturani identity qilish kerak hayolga birinchi kelgan yechim bu Duck typing. Ammo bizda juda muhim nuans shundaki journalni oddiy user journalni o'qimaydi, shu sababli biz auto indexing qilsak bo'ladi. Masalan journal dump yuborilganidan kegin bizga kelib tushganida alohida indexing bo'ladi. Yani xinux ishlayotgan joyda indexlash vaxakazolarga umuman extiyoj bo'lmaydi uyoqda hamma narsa write oriented bo'ladi. Lekin journal bizga kelganida biz uni o'qishdan oldin read oriented qilib olamiz )). Xozircha bu narsa biroz hom, agar fikrlar bo'lsa aytilar.
More from @programming_everyone
  1. Oct 6, 2026Post #4367
  2. Oct 6, 2026Yana bir prikol narsa aytaymi ? Manashu literal tiplar evaziga typescriptda daje tiplar bi…
  3. Oct 6, 2026Typescriptda bunaqa mazahizm qilsa bo'ladi. JSchialrga IQtest. typeT misolidaka agar FromN…
  4. Oct 6, 2026Orwell has nothing to do with it.
  5. Oct 6, 2026An illustrated history of the calculator. https://blog.coredump.cx/p/a-brief-history-of-co…
  6. Oct 5, 2026Creative memory management.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →