Saadaval on sisseehitatud salvestusmootor TidesDB 1.0, mis toetab ACID-tehinguid

Avaldati projekti TidesDB esimene stabiilne vÀljaanne, mis arendab andmete salvestamise teeki vÔtme/vÀÀrtuse formaadis. Projekti saab kasutada nii iseseisva mootorina kui ka rakendustesse integreerimiseks. Peamisteks omadusteks on ACID-tehingute toimetamine ja tÔhus andmesalvestus Flash-mÀluseadmetes ja mÀlus. Kood on kirjutatud C keeles ja levitatakse MPL 2.0 litsentsi all. Raamatukogud on valmis keeltele C++, Go, Java, Python, Rust, Lua ja JavaScript.

Andmete salvestamiseks kasutatakse LSM-tree (log-struktureeritud puu koos liitmisega) struktuuri, mis tagab kÔrgem tootlikkus mitte ainult lugemise, vaid ka andmete kirjutamise ja muutmise operatsioonide tÀitmise. Lugemise operatsioonid ei blokeeri andmete kirjutamist ja lugemist, samas kui kirjutamise operatsioonid blokeerivad ainult veeru perekonna, milles kirjutamine toimub. Lisakiirusete saavutamiseks toetatakse indekseerimist ja bloom-filtrite pÔhjal pÔhinevat vahemÀlu (mis vÔimaldavad kontrollida kuuluvust kogusse, lubades vale mÀÀramine mitteolevatest elementidest, kuid vÀlistades olemasoleva elemendi vahelejÀtmise).

On tĂ€ielik ACID-tehingute toetus, mis vĂ”imaldab atomaarseid muudatusi, mis katab veeru perekonnad, ja vajaduse korral atomaarset tagasi pöörduda operatsioonidega. Andmeid saab salvestada komprimeeritud kujul, valides kompressioonialgoritmi veeru perekonna kohaselt. VĂ”imalik on seada lukke ĂŒksikute veeru perekondade tasemele ja salvestuse pakkimist paralleelselt ilma DB-operatsioonide tĂ€itmise blokeerimiseta.

PÔhifunktsioonid:

  • Veeru perekondade (Column Families) toetus — isoleeritud andmekogumid vĂ”tme/vÀÀrtuse formaadis. Iga veeru perekonna jaoks kasutatakse oma memtable, SSTable ja WAL-logi.
  • ACID-tehingud, mis katavad mitu operatsiooni veeru perekondades.
  • Optimeerimine andmete paralleelsele juurdepÀÀsule.
  • Toetatakse kahepoolsed iteratsioonid, mis vĂ”imaldavad vĂ”tme/vÀÀrtuse paare edasi vĂ”i tagasi kĂ€ia valitud positsiooni suhtes salvestuses, kasutades algselt mÀÀratud sorteerimismeetodit.
  • Toetatakse oma vĂ”rdlusfunktsioonide lisamist vĂ”tmetele. Sisseehitatud vĂ”rdlusfunktsioonide olemasolu: memcmp, string ja numeeriline.
  • Tegevuslogi (WAL, Write-Ahead Log) haldamine ja memtable (mĂ€lus hoidmine) automaatne taastamine antud logist kĂ€ivitamisel.
  • Bloom-filterite kasutamine, et minimeerida juurdepÀÀsu salvestusse, kontrollides vĂ”tme olemasolu enne SSTable'ist lugemist (pĂŒsiv salvestus).
  • Tugialgoritmide Snappy, LZ4 ja ZSTD toetus, et tihendada kirjeid SSTable'is ja WAL-logis.
  • VĂ”imalus mÀÀrata kirjete eluea aeg (TTL) ja automaatne aegunud kirjete eemaldamine.
  • Kolm reĆŸiimi andmete sĂŒnkroonimiseks RAM-is pĂŒsivasse salvestusse: NONE (kiireim), BACKGROUND (tasakaalustatud), FULL (kĂ”ige usaldusvÀÀrsem).
  • VĂ”imalus mÀÀrata memtable'i suurus, tihendusmeetodid, bloom-filterid, sĂŒnkroniseerimisreĆŸiim ja pakendamise parameetrid iga veergude perekonna jaoks.
  • Lihtne C API, mis tagastab 0, kui tehing on Ă”nnestunud ja -1, kui tekib viga.
  • SBHA (Sorted Binary Hash Array) kasutamine, et kiirendada andmete leidmist SSTable'is, vĂ”imaldades mÀÀrata blokeeringute offset'e vĂ”tmete ilma tĂ€ieliku skaneerimiseta.
  • Kompaktne ja ĂŒlekantav binaarvorming andmebaasi esitlemiseks, mis toetab versioonimist.
  • Sisseehitatud mehhanismid andmete terviklikkuse kontrollimiseks, kahjustuste tuvastamiseks ja taastamiseks.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster