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

Ua hoʻokuʻu ʻia ka DBMS rqlite 7.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 puʻupuʻu mai nā waihona i hoʻonohonoho ʻia me kekahi. ʻ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 luna o kahi e hoʻomaka ai kahi papa e hana i nā noi a ka mea kūʻai aku, e hana hou i nā nodes ʻē aʻe, a nānā i ka hoʻokō ʻ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), i ka wā e hoʻomaka ai i kahi node hou, a i ʻole e hoʻihoʻi mai ka nalowale o ka pilina. No ka hoʻohaʻahaʻa i ka nui o ka log, hoʻohana ʻia ka hoʻopili maʻalahi, e hoʻomaka ana ma hope o kahi helu o nā hoʻololi i kuhikuhi ʻia a alakaʻi i ka hoʻoponopono ʻana i kahi kiʻi paʻi kiʻi, e pili ana i kahi lāʻau hou e hoʻomaka e mālama ʻia (ʻo ke kūlana o ka waihona i ka hoʻomanaʻo. e like me ka snapshot + 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 pū ʻia kahi kikowaena laina kauoha a me nā hale waihona puke no nā ʻōlelo papahana like ʻole.
  • 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.

I ka hoʻokuʻu hou:

  • Kākoʻo hoʻohui ʻia no ka hui pū ʻana o rqlite me ka hoʻohana ʻana i kahi lawelawe ʻike node hou e hiki ke hana ma ke kumu o ke Consul a me etcd i puʻunaue ʻia. Hāʻawi ka lawelawe i nā nodes rqlite e loaʻa maʻalahi kekahi i kekahi - pono ka luna hoʻomalu e hoʻomaka i kekahi mau nodes ma nā kikowaena like ʻole, e kuhikuhi ana i ka helu Consul maʻamau a i ʻole etcd cluster address (e laʻa, "example.com:8500"), a e lilo koke nā nodes. hui ʻia i pūʻulu. Hoʻohou ka node alakaʻi i ka ʻike e pili ana i kāna helu wahi i ka waihona Consul a i ʻole etcd, kahi e hiki ai iā ʻoe ke hoʻololi i ke alakaʻi me ka ʻole o ka hoʻonohonoho hou ʻana i nā nodes ʻē aʻe, a me ka hoʻohui ʻana i nā nodes hou ma hope o ka hoʻololi ʻana i ke alakaʻi. Ua hoʻopau ʻia ka lawelawe ʻoihana Discovery mode e holo ana ma AWS Lambda.
  • Hiki i ka CLI interface ke kuhikuhi i kekahi mau pūʻali i ka manawa hoʻokahi - inā ʻaʻole i loaʻa ka node mua, e hoʻopili ʻia nā pūʻali aʻe.
  • Ua hana hou ʻia ke code no ka parsing rqlited command line.
  • Ua hoʻopau ʻia ka pūʻolo protobuf i hoʻopau ʻia.
  • ʻO ka waihona BoltDB i hoʻohana ʻia i ka hoʻokō ʻana i ka protocol Raft ua hoʻololi ʻia e bbolt, kahi ʻōpala mai ka papahana etcd.

Source: opennet.ru

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