Serbestberdana rqlite 6.0, DBMS-ya belavkirî, xwedan xeletî li ser bingeha SQLite

Serbestberdana DBMS-ya belavkirî rqlite 6.0 tê pêşkêş kirin, ku SQLite wekî motora hilanînê bikar tîne û dihêle hûn xebata komek depoyên hevdemkirî bi rêxistin bikin. Yek ji taybetmendiyên rqlite hêsankirina sazkirin, bicihkirin û domandina hilanînek berbelav-tehmûlkirî ye, ku hinekî dişibihe etcd û Konsulê, lê li şûna forma bingehîn / nirxek modelek daneya têkildar bikar tîne. Koda projeyê di Go-yê de tê nivîsandin û di bin lîsansa MIT-ê de tê belavkirin.

Ji bo ku hemî girêk di rewşek hevdemkirî de bimînin, algorîtmaya lihevhatina Raft tê bikar anîn. Rqlite pirtûkxaneya orîjînal a SQLite û ajokera standard go-sqlite3 bikar tîne, li ser serê wê qatek tê destpêkirin ku daxwazên xerîdar pêvajoyê dike, li girêkên din dubare dike û çavdêriya gihîştina lihevhatina li ser hilbijartina girêkek pêşeng dike.

Guhertinên databasê tenê ji hêla girêka ku wekî rêber hatî hilbijartin ve dikare were kirin, lê girêdanên bi operasyonên nivîsandinê re dikarin ji girêkên din ên komê re jî werin şandin, ku dê navnîşana rêber vegerîne da ku daxwazê ​​dubare bike (di guhertoya din de ew soz didin ku şandina otomatîkî ya daxwazan ji rêber re zêde bikin). Girîngiya sereke li ser tolerasyona xeletiyê ye, ji ber vê yekê DBMS tenê bi operasyonên xwendinê re pîvaz dike, û operasyonên nivîsandinê xêzik in. Mimkun e ku meriv komek rqlite ji yek girêkek yekane bimeşîne û ev çareserî dikare were bikar anîn da ku gihîştina SQLite li ser HTTP bêyî peydakirina tolerasyona xeletiyê were bikar anîn.

Daneyên SQLITE li ser her nîgarê di pelê de ne tê hilanîn, lê di bîra de. Di asta lîseyê de bi pêkanîna raft protokola raftê, logek hemî emrên Sqlite ku rê li ber guheztina di databasê de têne girtin. Ev têketin di dema dubarekirinê de tê bikar anîn (berbiçavkirina di asta ji nû ve hilberandina daxwazên li ser girêkên din), destpêkirina girêkek nû, an ji windabûna pêwendiyê xelas dibe. Ji bo kêmkirina qebareya têketinê, pakkirina otomatîkî tê bikar anîn, ku piştî hejmarek diyarkirî ya guhertinan dest pê dike û dibe sedema ku wêneyek li ser dîskê were rastkirin, ku tê de têketinek nû dest pê dike (rewşa databasê di bîranînê de bi nîşana guhertina guhêrbar re identical e).

Taybetmendiyên rqlite:

  • Bêyî hewcedariya sazkirina SQLite-ya cihêreng, sazkirina komekê hêsan e.
  • Kapasîteya ku zû zû hilanîna SQL-ya dubarekirî bistînin.
  • Ji bo karanîna di projeyên xebatê de amade ye (hilberîn-pola).
  • Hebûna HTTP(S) API-yê ku dihêle hûn daneyan di moda hevîrê de nûve bikin û girêka sereke ya komê diyar bikin. Di heman demê de ew navgînek rêza fermanê û şiyana karanîna pirtûkxaneyên cihêreng ên xerîdar ên ku ji bo SQLite hatine çêkirin jî peyda dike.
  • Hebûna karûbarek ji bo naskirina girêkên din, dihêle hûn koman bi dînamîk biafirînin.
  • Piştgiriya şîfrekirina danûstendina daneyê di navbera girêkan de.
  • Kapasîteya mîhengkirina asta kontrolkirina têkildar û hevgirtina daneyan dema xwendinê.
  • Kapasîteya vebijarkî ya girêdana girêkan di moda tenê-xwendinê de, ku beşdarî diyarkirina lihevhatinê nabin û ji bo zêdekirina pîvana komê ji bo karûbarên xwendinê têne bikar anîn.
  • Piştgiriya ji bo forma xweya danûstendinê ya li ser bingeha berhevkirina fermanan di yek daxwazê ​​de (danûstandinên li ser DESTPÊK, KOMMIT, ROLLBACK, SAVEPOINT û RELEASE nayên piştgirî kirin).
  • Piştgiriya ji bo afirandina piştgirên germ.

Daxuyaniya nû guhertinên mîmarî yên girîng destnîşan dike ku bi mebesta zêdekirina pêbaweriya komê bi baştirkirina pêvajoya rêvekirina daxwazên xwendin û nivîsandinê li girêkên komê yên rast. Nodên rqlite naha dikarin gelek girêdanên mantiqî di nav xwe de bi karanîna girêdanên TCP-ê yên ku di navbera nokan de ji hêla protokola Raft ve hatine saz kirin, piralî bikin. Ger daxwazek desthilatdariya rêberiyê hewce dike lê ji girêkek duyemîn re tê şandin, girêka duyemîn dikare navnîşana rêber diyar bike û bêyî ku hesabên lihevhatina Raft pêk bîne wê ji xerîdar re derbas bike.

Guhertin di heman demê de hewcedariya pêkhateyek hevdengkirina metadataya veqetandî ji holê rakir û rêvebirina cihêreng a dewleta Raft û metadata ji holê rakir. Naha girêkên duyemîn tenê dema ku hewce be, dema ku hewce bike navnîşana girêka serokan bibîne, daxwazan ji girêka rêber re dişînin. API şiyana bidestxistina agahdariya li ser rewşa girêkên din ên di komê de peyda dike. Fermana ".sysdump" li navrûya rêza fermanê hat zêdekirin.

Source: opennet.ru

Add a comment