Dqlite 1.0-ը՝ Canonical-ի SQLite-ի բաշխված տարբերակը, հասանելի է

Կանոնական опубликовала նշանակալի նախագծի թողարկում Dqlite 1.0 (Բաշխված SQLite), որը մշակում է SQLite-ի հետ համատեղելի ներկառուցված SQL շարժիչ, որն աջակցում է տվյալների կրկնօրինակմանը, խափանումներից ավտոմատ վերականգնմանը և սխալների հանդուրժողականությանը` կարգավորիչները բաշխելով բազմաթիվ հանգույցներում: DBMS-ն իրականացվում է C գրադարանի տեսքով՝ կցված հավելվածներին և տարածվում է Apache 2.0 լիցենզիայի ներքո (բնօրինակ SQLite-ը տրամադրվում է հանրային տիրույթում): Լեզվական կապերը մատչելի են Go.

Գրադարանը հավելում է գոյություն ունեցող SQLite կոդերի բազայի համար, որն ավելացնում է ցանցային պրոտոկոլային աջակցություն՝ տարբեր հոսթինգների վրա աշխատող հավելվածի բազմաթիվ օրինակներ փոխկապակցելու համար: Dqlite-ով կազմված հավելվածը կարող է գործել որպես ինքնաբավ անսարքությունների հանդուրժող կլաստեր՝ անկախ արտաքին DBMS-ներից: Գործնականում Dqlite-ն օգտագործվում է Canonical-ի կողմից իր կոնտեյներների կառավարման համակարգում LXD. Գրադարանի կիրառման ոլորտներից նշվում է նաև համակարգերում անսարքությունների հանդուրժող ինտերնետ սարքերի և պրոցեսորների ստեղծումը.
Սայր- հաշվարկներ.

Տվյալների կրկնօրինակման հետևողականությունն ապահովելու համար օգտագործվում է ալգորիթմի վրա հիմնված կոնսենսուսի մեթոդ Ռաֆտ, որն օգտագործվում է այնպիսի նախագծերում, ինչպիսիք են etcd, RethinkDB, CockroachDB և OpenDaylight: Dqlite-ն օգտագործում է իր ասինխրոն իրականացումը C- լաստանավ, գրված է C լեզվով։ Պատրաստի գրադարաններն օգտագործվում են մուլտիպլեքսային կապի մշակման և կորուտինների գործարկումը կազմակերպելու համար լիբուվ и libco.

Համեմատած նմանատիպ նախագծի հետ rqliteDqlite-ն ապահովում է գործարքների ամբողջական աջակցություն, կարող է շփվել ցանկացած C նախագծի հետ, թույլ է տալիս օգտագործել time() ֆունկցիան և օգտագործում է շրջանակի վրա հիմնված կրկնօրինակում՝ SQL թարգմանության վրա հիմնված կրկնօրինակման փոխարեն:

Dqlite-ի առանձնահատկությունները.

  • Կատարել սկավառակի և ցանցի բոլոր գործողությունները ասինխրոն;
  • Տվյալների ճշգրտությունը հաստատելու համար թեստային հավաքածուի առկայություն.
  • Հիշողության ցածր սպառում և տվյալների արդյունավետ փոխանակում ցանցի միջոցով;
  • Տվյալների բազայի և գործարքների գրանցամատյանի մշտական ​​պահպանում սկավառակի վրա (հիշողության մեջ քեշավորման հնարավորությամբ);
  • Անհաջողություններից արագ վերականգնում;
  • Կայուն CLI հաճախորդ Go լեզվով, որը կարող է օգտագործվել տվյալների բազան սկզբնավորելու, վերարտադրումը կարգավորելու և հանգույցները միացնելու/անջատելու համար;
  • Աջակցում է ARM, X86, POWER և IBM Z ճարտարապետություններին;
  • Raft ալգորիթմի իրականացումը օպտիմիզացված է գործարքներ կատարելիս հետաձգումները նվազագույնի հասցնելու համար:

Source: opennet.ru

Добавить комментарий