Disponueshëm motorin e integruar të magazinimit TidesDB 1.0, i cili mbështet transaksionet ACID

Është publikuar versioni i parë stabil i projektit TidesDB, i cili zhvillon një bibliotekë për ruajtjen e të dhënave në formatin çelës/vlerë. Projekti mund të përdoret si një motor i pavarur ose për integrim në aplikacione. Nga funksionalitetet kyçe përmendet mbështetje për transaksionet ACID dhe optimizim për ruajtjen efektive të të dhënave në të dhënat Flash dhe në memorie. Kodi është shkruar në gjuhën C dhe shpërndahet nën licencën MPL 2.0. Kyçjet janë përgatitur për gjuhët C++, Go, Java, Python, Rust, Lua dhe JavaScript.

Për ruajtjen e të dhënave, përdoret struktura LSM-tree (pema e strukturuar me regjistrim dhe bashkimin), e cila siguron performancë të lartë jo vetëm gjatë leximit, por edhe gjatë kryerjes së operacioneve të shkruajtur dhe ndryshimit të të dhënave. Operacionet e leximit nuk bllokojnë shkrimin dhe leximin e të dhënave, ndërsa operacionet e shkrimit bllokojnë vetëm familjen e kolonave në të cilën kryhet shkrimi. Për përshpejtimin e leximit, mbështeten indekset dhe memorizimi në bazë të filtreve bloom (të cilat lejojnë verifikimin e përfshirjes në një grup, duke lejuar përcaktimin e gabuar të një elementi jo-ekzistues, por duke përjashtuar humbjen e një elementi ekzistues).

Ka mbështetje të plotë për transaksionet ACID, të cilat lejojnë ndryshime atomike që përfshijnë familjet e kolonave, dhe në rast nevoje, kthimin atomik të operacioneve. Të dhënat mund të ruhen në një format të kompresuar duke zgjedhur algoritmin e kompresimit në lidhje me familjen e kolonave. Është e mundur që të vendosen bllokime në nivelin e familjeve të kolonave të veçanta dhe paketimi i magazinimit në mod paralel pa bllokuar kryerjen e operacioneve me DB.

Karakteristikat kryesore:

  • Mbështetje për familjet e kolonave (Column Families) — grupe të izoluara të të dhënave në formatin çelës/vlerë. Për secilën familje kolonash përdoren Memtable, SSTable dhe WAL-log të veçanta.
  • Transaksionet ACID, duke përfshirë disa operacione me familjet e kolonave.
  • Optimizim për qasje paralele në të dhëna.
  • Mbështetje për iteraatorë të dyanshëm, të cilët lejojnë kalimin përpara ose prapa të çifteve çelës/vlerë në raport me pozitën e zgjedhur në magazinë, duke përdorur metodën e renditjes të vendosur fillimisht.
  • Mbështetje për shtimin e funksioneve të veta të krahasimit të çelësve. Prania e funksioneve të builtin të krahasimit memcmp, string dhe numeric.
  • Përmbajtja e logut të operacioneve (WAL, Write-Ahead Log) dhe ringjallja automatike e memtable (ruajtja në memorien e përkohshme) nga ky log gjatë nisjes.
  • Përdorimi i Bloom-filtërve për të minimizuar akseset në ruajtësin duke kontrolluar praninë e çelësit para leximit nga SSTable (ruajtja e përhershme).
  • Mbështetje për algoritmet Snappy, LZ4 dhe ZSTD për kompresimin e rekordëve në ruajtjen SSTable dhe WAL-log.
  • Mundësia për të përcaktuar kohëzgjatjen e jetës së rekordëve (TTL) dhe përjashtimin automatik të rekordëve të skaduar.
  • Të treja modet e sinkronizimit të të dhënave në RAM me ruajtjen përhershme: NONE (më i shpejti), BACKGROUND (i balancuar), FULL (më i besueshëm).
  • Mundësia për të konfiguruar madhësinë e memtable, metodologjitë e kompresimit, Bloom-filtërat, modin e sinkronizimit dhe parametrat e paketimit për çdo familje kolonash.
  • Një API e thjeshtë C që kthen 0 për ekzekutimin e suksesshëm të operacionit dhe -1 për gabim.
  • Përdorimi i SBHA (Sorted Binary Hash Array) për kërkimin e shpejtë të të dhënave në SSTable, duke lejuar përcaktimin e zhvendosjeve të bllok-ve me çelësa pa skanimin e plotë.
  • Një format binar kompakt dhe portativ për paraqitjen e bazës, që mbështet versionimin.
  • Mekanizmat e ndërtuar për kontrollin e integritetit, përcaktimin e dëmtimeve të të dhënave dhe rivendosjen.

Burimi: opennet.ru

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster