Hoʻokuʻu ʻia o rqlite 6.0, kahi DBMS hoʻomanawanui hewa i hoʻokumu ʻia ma SQLite

Hōʻike ʻia ka hoʻokuʻu ʻana o ka DBMS rqlite 6.0 i hāʻawi ʻia, e hoʻohana ana iā SQLite ma ke ʻano he mīkini mālama a hiki iā ʻoe ke hoʻonohonoho i ka hana o kahi pūʻulu o nā waihona i hoʻonohonoho ʻia. ʻO kekahi o nā hiʻohiʻona o ka rqlite ka maʻalahi o ka hoʻonohonoho ʻana, hoʻonohonoho ʻana a me ka mālama ʻana i kahi waihona hoʻopalekana hewa i hoʻokaʻawale ʻia, ʻano like me etcd a me Consul, akā e hoʻohana ana i kahi kumu hoʻohālike pili ma kahi o kahi kī / ʻano waiwai. Ua kākau ʻia ke code papahana ma Go a māhele ʻia ma lalo o ka laikini MIT.

No ka mālama ʻana i nā node a pau i kahi kūlana synchronized, hoʻohana ʻia ka Raft consensus algorithm. Hoʻohana ʻo Rqlite i ka waihona SQLite kumu a me ka mea hoʻokele go-sqlite3 maʻamau, ma luna o ka mea i hoʻomaka ʻia kahi papa e hana i nā noi o ka mea kūʻai aku, hana hou i nā nodes ʻē aʻe a nānā i ka loaʻa ʻana o ka ʻae ʻana i ke koho ʻana i kahi node alakaʻi.

Hiki ke hoʻololi i ka waihona waihona wale nō e ka node i koho ʻia ma ke ʻano he alakaʻi, akā hiki ke hoʻouna ʻia nā pilina me nā hana kākau i nā nodes ʻē aʻe o ka puʻupuʻu, e hoʻihoʻi i ka helu o ke alakaʻi e hana hou i ka noi (ma ka ʻaoʻao aʻe. hoʻohiki e hoʻohui i ka hoʻouna ʻana i nā noi i ke alakaʻi). ʻO ke koʻikoʻi nui i ka hoʻomanawanui hewa, no laila ke kau nei ka DBMS me nā hana heluhelu wale nō, a ʻo nā hana kākau ka bottleneck. Hiki ke holo i kahi hui rqlite mai ka node hoʻokahi a hiki ke hoʻohana ʻia kēia hoʻonā e hāʻawi i ke komo i SQLite ma luna o HTTP me ka ʻole e hāʻawi i ka hoʻomanawanui hewa.

ʻAʻole mālama ʻia ka ʻikepili SQLite ma kēlā me kēia node i kahi faila, akā i ka hoʻomanaʻo. Ma ka pae papa me ka hoʻokō ʻana i ka protocol Raft, mālama ʻia kahi log o nā kauoha SQLite āpau e alakaʻi i nā loli i ka waihona. Hoʻohana ʻia kēia log i ka wā o ka hana hou ʻana (ka hana hou ʻana ma ke kiʻekiʻe o ka hana hou ʻana i nā noi ma nā node ʻē aʻe), e hoʻomaka ana i kahi node hou, a i ʻole ka hoʻihoʻi ʻana mai kahi nalowale o ka pilina. No ka hōʻemi ʻana i ka nui o ka log, hoʻohana ʻia ka pahu pahu, e hoʻomaka ana ma hope o kahi helu o nā loli i kuhikuhi ʻia a alakaʻi i kahi kiʻi paʻi i hoʻopaʻa ʻia ma ka disk, e pili ana i kahi e hoʻomaka ai kahi log hou e mālama ʻia (ke kūlana o ka waihona i ka hoʻomanaʻo. ua like ia me ke kiʻi kiʻi + ka log hoʻololi i hōʻiliʻili ʻia).

Nā hiʻohiʻona o rqlite:

  • E maʻalahi ke kau ʻana i kahi puʻupuʻu, me ka ʻole o ka pono o kahi hoʻonohonoho SQLite ʻokoʻa.
  • Hiki ke loaʻa koke i ka waihona SQL replicated.
  • Mākaukau no ka hoʻohana ʻana i nā papahana hana (Production-grade).
  • ʻO ka loaʻa ʻana o kahi HTTP(S) API e hiki ai iā ʻoe ke hoʻololi i ka ʻikepili ma ke ʻano hui a hoʻoholo i ka node alakaʻi o ka hui. Hāʻawi ia i kahi laina laina kauoha a me ka hiki ke hoʻohana i nā hale waihona puke i kūkulu ʻia no SQLite.
  • Loaʻa i kahi lawelawe no ka ʻike ʻana i nā node ʻē aʻe, e ʻae iā ʻoe e hana i nā pūʻulu me ka ikaika.
  • Kākoʻo no ka hoʻopili ʻana i ka hoʻololi ʻikepili ma waena o nā nodes.
  • Hiki ke hoʻonohonoho i ke kiʻekiʻe o ka nānā ʻana i ka pili a me ke kūlike o ka ʻikepili i ka wā heluhelu.
  • ʻO ka hiki ke hoʻohui i nā nodes ma ke ʻano heluhelu-wale nō, ʻaʻole i komo i ka hoʻoholo ʻana i ka ʻae a hoʻohana ʻia e hoʻonui i ka scalability o ka pūʻulu no nā hana heluhelu.
  • Kākoʻo i kāu ʻano o nā kālepa e pili ana i ka hoʻohui ʻana i nā kauoha i hoʻokahi noi (ʻaʻole kākoʻo ʻia nā hana e pili ana i BEGIN, COMMIT, ROLLBACK, SAVEPOINT a me RELEASE).
  • Kākoʻo no ka hana ʻana i nā backup wela.

Hoʻopuka ka hoʻokuʻu hou ʻana i nā loli hoʻololi koʻikoʻi e pili ana i ka hoʻonui ʻana i ka hilinaʻi cluster ma o ka hoʻomaikaʻi ʻana i ke kaʻina hana o ka hoʻokele ʻana i nā noi heluhelu a kākau i nā node cluster kūpono. Hiki i nā nodes rqlite ke hoʻonui i nā pilina pili i waena o lākou iho me ka hoʻohana ʻana i nā pilina TCP i hoʻokumu ʻia ma waena o nā nodes e ka protocol Raft. Inā makemake ke noi i ka mana alakaʻi akā ua hoʻouna ʻia i kahi node lua, hiki i ka node lua ke hoʻoholo i ka helu o ke alakaʻi a hāʻawi i ka mea kūʻai me ka hana ʻole ʻana i ka helu ʻae ʻana o Raft.

Ua hoʻopau ʻia ka hoʻololi ʻana i ka pono no kahi ʻāpana synchronization metadata kaʻawale a kāpae i ka lawelawe ʻokoʻa o ka mokuʻāina ʻo Raft a me ka metadata. Hoʻouna nā node lua i nā noi i ka node alakaʻi i ka wā e pono ai, inā pono lākou e ʻike i ka helu o ka node alakaʻi. Hāʻawi ka API i ka hiki ke loaʻa ka ʻike e pili ana i ke kūlana o nā nodes ʻē aʻe i ka pūʻulu. Ua hoʻohui ʻia ke kauoha ".sysdump" i ka laina kauoha.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka