Ua wehe ʻo Alibaba i ke code no PolarDB, kahi DBMS i hāʻawi ʻia ma muli o PostgreSQL.

Ua wehe ʻo Alibaba, kekahi o nā hui IT Kina nui loa, i ke kumu kumu o ka DBMS PolarDB i hoʻolaha ʻia, e pili ana i PostgreSQL. Hoʻonui ʻo PolarDB i nā mana o PostgreSQL me nā mea hana no ka mālama ʻana i ka ʻikepili i hāʻawi ʻia me ka kūpaʻa a me ke kākoʻo no nā kālepa ACID i loko o ka pōʻaiapili o ka ʻikepili honua holoʻokoʻa i hoʻohele ʻia ma nā node cluster like ʻole. Kākoʻo pū ʻo PolarDB i ka hoʻoili ʻia ʻana o ka hulina SQL i hāʻawi ʻia, ka ʻae ʻana i ka hewa, a me ka mālama ʻana i ka ʻikepili hou e hoʻihoʻi hou i ka ʻike ma hope o ka hāʻule ʻana o hoʻokahi node. Inā pono ʻoe e hoʻonui i kāu waihona, hiki iā ʻoe ke hoʻohui i nā nodes hou i ka hui. Wehe ʻia ke code ma lalo o ka laikini Apache 2.0.

Aia ʻo PolarDB i ʻelua mau ʻāpana - nā hoʻonui a me kahi hoʻonohonoho o nā patch no PostgreSQL. Hoʻonui ka Patches i nā mana o ka PostgreSQL core, a me nā mea hoʻonui i hoʻokomo ʻia i nā ʻāpana i hoʻokaʻawale ʻia mai PostgreSQL, e like me kahi ʻano hoʻokele hoʻokele kālepa i hāʻawi ʻia, nā lawelawe honua, kahi kaʻina hana nīnau SQL i hāʻawi ʻia, metadata hou aku, nā mea hana no ka hoʻokele ʻana i ka puʻupuʻu, ka hoʻohana ʻana i kahi pūʻulu, a me ka maʻalahi. ka neʻe ʻana o nā ʻōnaehana i kēia manawa.

Hoʻohui ʻia nā ʻāpana i ka PostgreSQL core i kahi mana i māhele ʻia o ka mīkini no ka hoʻomalu ʻana i ke komo like ʻana i ka ʻikepili me ka hoʻohana ʻana i ka multiversion (MVCC, Multiversion concurrency control) no nā pae kaʻawale. Hoʻokomo ʻia ka hapa nui o ka hana o PolarDB i nā hoʻonui, e hōʻemi ana i ka hilinaʻi ʻana ma PostgreSQL a hoʻomaʻamaʻa i ka hoʻonui ʻana a me ka hoʻokō ʻana i nā hoʻonā e pili ana iā PolarDB (hoʻomaʻamaʻa ia i ka hoʻololi ʻana i nā mana hou o PostgreSQL a mālama i ka hoʻohālikelike piha me PostgreSQL). No ka mālama ʻana i ka pūʻulu, hoʻohana ʻia ka pahu hana pgxc_ctl, e pili ana i kahi pono like mai PostgreSQL-XC a me PostgreSQL-XL.

ʻEkolu mau mea maʻamau i loko o kahi pūʻulu: nā nodes waihona (DN), cluster manager (CM) a me ka lawelawe hoʻokele waiwai (TM). Eia kekahi, hiki ke hoʻohana ʻia kahi mea hoʻohālikelike ukana proxy. He kaʻina kaʻawale kēlā me kēia ʻāpana a hiki ke holo ma kahi kikowaena ʻokoʻa. Hāʻawi nā nodes waihona i nā nīnau SQL mai nā mea kūʻai aku a ma ka manawa like e hana ma ke ʻano he mea hoʻoponopono i ka hoʻokō ʻana i ka nīnau i hāʻawi ʻia me ke komo ʻana o nā nodes waihona. Mālama ka pūʻulu manakia i ke kūlana o kēlā me kēia waihona waihona, mālama i ka hoʻonohonoho cluster, a hāʻawi i nā mea hana no ka hoʻokele, kākoʻo, hoʻouka ʻana, hoʻohou, hoʻomaka, a hoʻopau i nā node. ʻO ka lawelawe hoʻokele kālepa ke kuleana no ka mālama ʻana i ka pono holoʻokoʻa ma waena o ka pūʻulu holoʻokoʻa.

Ua wehe ʻo Alibaba i ke code no PolarDB, kahi DBMS i hāʻawi ʻia ma muli o PostgreSQL.

Hoʻokumu ʻia ʻo PolarDB ma luna o ka Shared-nothing distributed computing architecture, e like me ka hoʻohele ʻia ʻana o ka ʻikepili ke mālama ʻia ma nā nodes like ʻole, me ka ʻole o ka hoʻohana ʻana i kahi waihona maʻamau no nā nodes a pau, a na kēlā me kēia node ke kuleana no ka ʻāpana o ka ʻikepili e pili ana me ia a hana i nā nīnau pili. i ka ʻikepili. Hoʻokaʻawale ʻia kēlā me kēia papa i nā ʻāpana (sharding) me ka hashing ma muli o ke kī mua. Inā holo ka noi i ka ʻikepili i loaʻa ma nā node like ʻole, hoʻāla ʻia kahi ʻano hana hoʻokō kālepa a me kahi mea hoʻonohonoho kālepa e hōʻoia i ka atomicity, consistency, isolation, and reliability (ACID).

No ka hōʻoia ʻana i ka ʻae ʻana i ka hewa, e hana hou ʻia kēlā me kēia ʻāpana i ʻekolu mau node. No ka mālama ʻana i nā kumuwaiwai, loaʻa i ka ʻikepili piha ʻelua mau kope, a ua kaupalena ʻia kekahi i ka mālama ʻana i ka log kākau-hoʻi (WAL). Hoʻokahi o nā node ʻelua me nā replicas piha i koho ʻia i alakaʻi a komo i ka hoʻoponopono ʻana i nā noi. ʻO ka lua o ka node e hana ma ke ʻano he ʻokoʻa no ka māhele ʻikepili i nīnau ʻia, a ʻo ke kolu ke komo i ke koho ʻana i ka node alakaʻi a hiki ke hoʻohana ʻia e hoʻihoʻi i ka ʻike i ka wā o ka hāʻule ʻana o nā nodes ʻelua me nā replicas piha. Hoʻonohonoho ʻia ka hoʻopili ʻana o ka ʻikepili ma waena o nā puʻupuʻu puʻupuʻu me ka hoʻohana ʻana i ka algorithm Paxos, kahi e hōʻoia ai i ka wehewehe paʻa ʻana o ka ʻae ʻana i loko o kahi pūnaewele me nā node hiki ʻole ke hilinaʻi ʻia.

Hoʻomaopopo ʻia ua hoʻolālā ʻia ka hana piha o ka PolarDB DBMS e hōʻike ʻia ma luna o ʻekolu mau hoʻokuʻu: Ma ka mana mua, e paʻi ʻia nā mea hana no ka replication, ka loaʻa kiʻekiʻe a me ka hoʻokele cluster. E hōʻike ʻia ka lua o ka hoʻokuʻu ʻana i kahi ʻōnaehana hoʻokō kālepa mahele e kākoʻo ana i ka ACID cross-node a me ka hoʻokō SQL puʻupuʻu. ʻO ke kolu o ka hoʻokuʻu ʻana e hoʻokomo i kahi plugin no PostgreSQL a me nā mea hana no ka hāʻawi ʻana i ka ʻikepili maʻalahi ma nā nodes, me ka hoʻokomo ʻana i nā ʻāpana e hoʻokō ai i ka hana maikaʻi loa a me ka hiki ke hoʻonui i ka puʻupuʻu ma o ka hoʻohui ʻana i nā nodes hou.

Source: opennet.ru

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