Ang mga developer sa SQLite nagpalambo sa HC-tree backend nga adunay suporta alang sa parallel nga pagsulat

Ang mga developer sa SQLite nga proyekto nagsugod na sa pagsulay sa usa ka eksperimento nga HCtree backend nga nagsuporta sa row-level locking ug naghatag og taas nga lebel sa parallelization sa pagproseso sa mga pangutana. Ang bag-ong backend gitumong sa pagpauswag sa kahusayan sa paggamit sa SQLite sa mga sistema sa kliyente-server nga kinahanglan nga magproseso sa daghang mga dungan nga mga hangyo sa pagsulat sa database.

Ang mga istruktura sa b-tree nga lumad nga gigamit sa SQLite sa pagtipig sa datos wala gidesinyo alang sa kini nga matang sa pagkarga, nga naglimite sa SQLite sa pagsulat sa usa lamang ka hilo. Isip usa ka eksperimento, ang mga developers nagsugod sa paghimo og alternatibong solusyon nga naggamit sa HC-tree structures alang sa pagtipig, nga mas angay alang sa parallelizing writing operations.

Aron tugotan ang daghang operasyon nga dungan nga modagan, ang usa ka rekord sa HCtree naggamit ug mekanismo sa pagbahin sa transaksyon nga naggamit sa pag-lock sa lebel sa panid ug susama sa MVCC (Multi-Version Concurrency Control) apan naggamit sa mga pagsusi sa transaksyon base sa mga yawe ug yawe nga mga han-ay imbes sa mga set sa panid. Ang mga operasyon sa pagbasa ug pagsulat gihimo may kalabotan sa usa ka snapshot sa database, ang mga pagbag-o nga makita sa panguna nga database pagkahuman makompleto ang transaksyon.

Ang mga kliyente makagamit sa tulo ka bukas nga operasyon sa transaksyon:

  • β€œBEGIN”—ang mga transaksyon wala magtagad sa data sa pag-access sa ubang mga kliyente. Kung ang mga operasyon sa pagsulat gihimo sulod sa usa ka transaksyon, ang transaksyon mahimo lamang kung sa panahon sa pagpatuman niini wala’y ubang mga operasyon sa pagsulat sa database.
  • "SUGOD KONCURRENT" - ang mga transaksyon mangolekta og impormasyon bahin sa pag-access sa ubang mga kliyente. Kung ang mga operasyon sa pagsulat gihimo sa sulod sa usa ka transaksyon, ang transaksyon mahimong mabuhat kung ang ubang mga transaksyon nahimo na sa database sukad nahimo ang snapshot.
  • "SUGOD EKSKLUSIBO" - pagkahuman sa pag-abli sa usa ka transaksyon, gibabagan niini ang mga operasyon gikan sa ubang mga transaksyon hangtod nga makompleto.

Gisuportahan sa HCtree ang pagkopya sa master-slave, nga nagtugot kanimo sa pagbalhin sa mga transaksyon sa lain nga database ug ipadayon ang mga sekondaryang database nga nahiuyon sa panguna nga database. Gikuha usab sa HCtree ang limitasyon sa gidak-on sa database - imbes nga 32-bit nga data page identifiers, ang HCtree naggamit sa 48-bit nga mga, nga nagdugang sa labing taas nga gidak-on sa database gikan sa 16 tebibytes ngadto sa 1 exbibyte (million tebibytes). Gilauman nga ang paghimo sa SQLite nga adunay backend sa HCtree dili ubos sa klasiko nga single-threaded backend. Ang mga kliyente sa SQLite nga adunay suporta sa HCtree makahimo sa pag-access sa mga database nga nakabase sa HC-tree ug mga database sa SQLite nga kabilin.

Source: opennet.ru

Idugang sa usa ka comment