Hoʻopili ʻikepili ma Apache Ignite. ʻO ka ʻike o Sber

Hoʻopili ʻikepili ma Apache Ignite. ʻO ka ʻike o SberI ka hana ʻana me ka nui o ka ʻikepili, hiki ke kū mai ka pilikia o ka nele o ka disk space. ʻO kahi ala e hoʻoponopono ai i kēia pilikia ʻo ke kaomi ʻana, e hoʻomaikaʻi iā ia, ma nā mea like like, hiki iā ʻoe ke hoʻonui i ka nui o nā waihona. Ma kēia ʻatikala, e nānā mākou i ka hana ʻana o ka ʻikepili ʻikepili ma Apache Ignite. E wehewehe kēia ʻatikala i nā ʻano hana hoʻoemi disk i hoʻokō ʻia i loko o ka huahana. ʻO nā ʻano hana ʻē aʻe o ka hoʻopili ʻana i ka ʻikepili (ma luna o ka pūnaewele, i ka hoʻomanaʻo), inā i hoʻokō ʻia a ʻaʻole paha, e noho ma waho o ke kiko.

No laila, me ke ʻano hoʻomau i hoʻohana ʻia, ma muli o ka hoʻololi ʻana i ka ʻikepili i loko o nā cache, hoʻomaka ʻo Ignite e kākau i ka disk:

  1. Nā mea i loko o nā huna huna
  2. Kākau i ka Log Ahead (WAL wale nō ma hope aku)

Aia kekahi hana no ka hoʻopili ʻana i ka WAL no kekahi manawa i kēia manawa, i kapa ʻia ʻo WAL compaction. ʻO ka Apache Ignite 2.8 i hoʻokuʻu hou ʻia i hoʻolauna i ʻelua mau hana hou e ʻae iā ʻoe e kaomi i ka ʻikepili ma ka disk: ka ʻaoʻao ʻaoʻao disk no ka hoʻopaʻa ʻana i nā ʻike o nā cache a me ka WAL page snapshot compression no ka hoʻoomi ʻana i kekahi mau helu WAL. Nā kikoʻī hou aku e pili ana i nā ʻekolu o kēia mau mīkini ma lalo nei.

Komi ʻaoʻao disk

Pehea hana i keia hana

ʻO ka mea mua, e nānā pōkole loa i ka mālama ʻana o Ignite i ka ʻikepili. Hoʻohana ʻia ka hoʻomanaʻo ʻaoʻao no ka mālama ʻana. Hoʻonohonoho ʻia ka nui o ka ʻaoʻao ma ka hoʻomaka ʻana o ka node a ʻaʻole hiki ke hoʻololi ʻia i nā pae hope; ʻo ia hoʻi, ʻo ka nui o ka ʻaoʻao he mana o ʻelua a me ka nui o ka nui o ka poloka ʻōnaehana faila. Hoʻouka ʻia nā ʻaoʻao i ka RAM mai ka diski e like me ka mea e pono ai; ʻoi aku ka nui o ka ʻikepili ma ka disk i ka nui o ka RAM i hāʻawi ʻia. Inā ʻaʻole lawa ka hakahaka o ka RAM e hoʻouka i kahi ʻaoʻao mai ka diski, e kipaku ʻia nā ʻaoʻao kahiko, ʻaʻole i hoʻohana hou ʻia mai RAM.

Mālama ʻia ka ʻikepili ma ka disk ma ke ʻano penei: ua hana ʻia kahi faila ʻokoʻa no kēlā me kēia ʻāpana o kēlā me kēia pūʻulu huna; ma kēia faila, ʻike ʻia nā ʻaoʻao ma hope o kekahi i ka papa kuhikuhi kuhikuhi. Aia i loko o ka ʻaoʻao ʻaoʻao piha ka ʻike hui huna, ka helu ʻāpana, a me ka helu ʻaoʻao ma ka faila. No laila, me ka hoʻohana ʻana i ka ʻike ʻaoʻao piha, hiki iā mākou ke hoʻoholo kūʻokoʻa i ka faila a me ka offset i ka faila no kēlā me kēia ʻaoʻao. Hiki iā ʻoe ke heluhelu hou aʻe e pili ana i ka hoʻomanaʻo ʻaoʻao ma ka ʻatikala Apache Ignite Wiki: Ignite Persistent Store - ma lalo o ka puʻu.

ʻO ka mīkini hoʻoemi ʻaoʻao disk, e like me kāu e koho ai mai ka inoa, hana ma ka pae ʻaoʻao. Ke hoʻohana ʻia kēia ʻano hana, hoʻoili ʻia ka ʻikepili i loko o ka RAM e like me ka mea, me ka ʻole o ka hoʻopiʻi ʻana, akā ke mālama ʻia nā ʻaoʻao mai ka RAM a i ka disk, ua hoʻopaʻa ʻia lākou.

Akā ʻo ka ʻomi ʻana i kēlā me kēia ʻaoʻao ʻaʻole ia he hopena i ka pilikia; pono ʻoe e hōʻemi i ka nui o nā faila ʻikepili i hopena. Inā ʻaʻole paʻa ka nui o ka ʻaoʻao, ʻaʻole hiki iā mākou ke kākau hou i nā ʻaoʻao i ka faila ma hope o kekahi, no ka mea hiki ke hana i nā pilikia he nui:

  • Ke hoʻohana nei i ka helu ʻaoʻao, ʻaʻole hiki iā mākou ke helu i ka offset i loaʻa ai i ka faila.
  • ʻAʻole maopopo i ka mea e hana ai me nā ʻaoʻao ʻaʻole i ka hope o ka faila a hoʻololi i ko lākou nui. Inā emi ka nui o ka ʻaoʻao, e nalowale ana ka hakahaka i hoʻokuʻu ʻia. Inā piʻi ka nui o ka ʻaoʻao, pono ʻoe e ʻimi i kahi hou i loko o ka faila no ia.
  • Inā neʻe kekahi ʻaoʻao i nā byte ʻaʻole he nui o ka nui o ka poloka ʻōnaehana faila, a laila pono e heluhelu a kākau paha ia mea e hoʻopā i hoʻokahi poloka ʻōnaehana faila, hiki ke alakaʻi i ka hōʻino ʻana i ka hana.

I mea e pale aku ai i ka hoʻoponopono ʻana i kēia mau pilikia ma kona pae ponoʻī, hoʻohana ka ʻaoʻao ʻaoʻao disk ma Apache Ignite i kahi ʻōnaehana faila i kapa ʻia nā faila sparse. ʻO kahi faila liʻiliʻi kahi i hiki ke kaha ʻia kekahi mau wahi i piha ʻole ʻia he "puka". I kēia hihia, ʻaʻole e hoʻokaʻawale ʻia nā poloka ʻōnaehana faila no ka mālama ʻana i kēia mau lua, e hopena i ka mālama ʻana i ka hakahaka disk.

He mea kūpono no ka hoʻokuʻu ʻana i kahi poloka ʻōnaehana faila, pono e ʻoi aku ka nui o ka lua ma mua o a i ʻole like me ka poloka ʻōnaehana faila, kahi e kau ai i kahi palena ʻē aʻe i ka nui o ka ʻaoʻao a me Apache Ignite: no ka hoʻokō ʻana i kekahi hopena, ʻoi aku ka nui o ka ʻaoʻao ma mua o ka nui o ka poloka ʻōnaehana faila. Inā like ka nui o ka ʻaoʻao me ka nui o ka poloka, a laila ʻaʻole hiki iā mākou ke hoʻokuʻu i hoʻokahi poloka, no ka mea, i mea e hoʻokuʻu ai i hoʻokahi poloka, pono ka ʻaoʻao i hoʻopaʻa ʻia e noho i 0 bytes. Inā like ka nui o ka ʻaoʻao me ka nui o 2 a i ʻole 4 poloka, hiki iā mākou ke hoʻokuʻu i ka liʻiliʻi loa i hoʻokahi poloka inā hoʻopaʻa ʻia kā mākou ʻaoʻao i ka liʻiliʻi he 50% a i ʻole 75%, kēlā me kēia.

No laila, ʻo ka wehewehe hope loa o ka hana ʻana o ka mīkini: Ke kākau ʻana i kahi ʻaoʻao i ka disk, hoʻāʻo ʻia e kaomi i ka ʻaoʻao. Inā ʻae ka nui o ka ʻaoʻao i hoʻopaʻa ʻia e hoʻokuʻu ʻia i hoʻokahi a ʻoi aʻe paha nā poloka ʻōnaehana faila, a laila kākau ʻia ka ʻaoʻao ma ke ʻano paʻa, a hana ʻia kahi "puka" ma kahi o nā poloka i hoʻokuʻu ʻia (hoʻokō ʻia kahi kelepona ʻōnaehana. fallocate() me ka hae puka punch). Inā ʻaʻole ʻae ka nui o ka ʻaoʻao i hoʻopaʻa ʻia e hoʻokuʻu ʻia nā poloka, mālama ʻia ka ʻaoʻao e like me ka mea i hoʻopaʻa ʻole ʻia. Hoʻohālikelike ʻia nā offset ʻaoʻao a pau me ka hoʻoemi ʻole ʻana, ma ka hoʻonui ʻana i ka helu ʻaoʻao me ka nui o ka ʻaoʻao. ʻAʻole pono ka hoʻoneʻe ʻana o nā ʻaoʻao iā ʻoe iho. ʻO nā offsets ʻaoʻao, e like me ka ʻole o ka hoʻopiʻi ʻana, hāʻule i nā palena o nā poloka ʻōnaehana faila.

Hoʻopili ʻikepili ma Apache Ignite. ʻO ka ʻike o Sber

I ka hoʻokō ʻana i kēia manawa, hiki ke hana wale ʻo Ignite me nā faila liʻiliʻi ma lalo o Linux OS; no laila, hiki ke hoʻohana ʻia ke kaomi ʻaoʻao disk ke hoʻohana i ka Ignite ma kēia ʻōnaehana hana.

ʻO nā algorithms kaomi i hiki ke hoʻohana ʻia no ka kaomi ʻana i ka ʻaoʻao disk: ZSTD, LZ4, Snappy. Eia kekahi, aia kahi ʻano hana (SKIP_GARBAGE), kahi i hoʻolei ʻia ai ka wahi i hoʻohana ʻole ʻia ma ka ʻaoʻao me ka ʻole o ka hoʻopili ʻana i ka ʻikepili i koe, e hōʻemi ana i ka ukana ma ka CPU i hoʻohālikelike ʻia i nā algorithms i helu mua ʻia.

Ka hopena o ka hana

ʻO ka mea pōʻino, ʻaʻole wau i hana i nā ana hana maoli ma nā kū maoli, ʻoiai ʻaʻole mākou e hoʻolālā e hoʻohana i kēia mīkini i ka hana ʻana, akā hiki iā mākou ke noʻonoʻo i kahi e eo ai mākou a ma hea mākou e lanakila ai.

No ka hana ʻana i kēia, pono mākou e hoʻomanaʻo pehea e heluhelu ʻia a kākau ʻia ai nā ʻaoʻao i ka wā i komo ai:

  • I ka hana ʻana i kahi hana heluhelu, ʻimi mua ʻia ia ma RAM; inā ʻaʻole i kūleʻa ka ʻimi ʻana, hoʻouka ʻia ka ʻaoʻao i ka RAM mai ka disk e ka pae like e hana ana i ka heluhelu.
  • Ke hana ʻia kahi hana kākau, hōʻailona ʻia ka ʻaoʻao ma RAM he lepo, akā ʻaʻole mālama kino ʻia ka ʻaoʻao i ka diski e ke kaula e hana ana i ke kākau. Mālama ʻia nā ʻaoʻao haumia a pau i ka diski ma hope o ke kaʻina hana hōʻoia ma nā pae ʻokoʻa.

No laila ka hopena i ka hana heluhelu:

  • Positive (disk IO), ma muli o ka emi ʻana o ka helu o nā poloka ʻōnaehana waihona heluhelu.
  • Negative (CPU), ma muli o ka ukana hou i koi ʻia e ka ʻōnaehana hana e hana me nā faila liʻiliʻi. Hiki nō hoʻi ke ʻike ʻia nā hana IO hou ma aneʻi no ka mālama ʻana i kahi hoʻolālā faila liʻiliʻi paʻakikī (akā, ʻaʻole wau i kamaʻāina i nā kikoʻī āpau o ka hana ʻana o nā faila sparse).
  • Negative (CPU), ma muli o ka pono e decompress ʻaoʻao.
  • ʻAʻohe hopena i nā hana kākau.
  • Ka hopena ma ke kaʻina hana hōʻoia (ua like nā mea a pau ma aneʻi me nā hana heluhelu):
  • Maikaʻi (disk IO), ma muli o ka emi ʻana o ka helu o nā poloka ʻōnaehana faila i kākau ʻia.
  • Negative (CPU, disk IO paha), ma muli o ka hana ʻana me nā faila liʻiliʻi.
  • Negative (CPU), ma muli o ka pono o ka paʻi ʻaoʻao.

ʻO ka ʻaoʻao hea o ka unahi e huli i ka unahi? Ke hilinaʻi nui nei kēia mau mea i ke kaiapuni, akā makemake wau e manaʻoʻiʻo ʻo ka hoʻopili ʻana i ka ʻaoʻao disk e alakaʻi i ka hōʻino ʻana i ka hana ma ka hapa nui o nā ʻōnaehana. Eia kekahi, hōʻike nā hoʻāʻo ma nā DBMS ʻē aʻe e hoʻohana ana i kahi ala like me nā faila liʻiliʻi e hōʻike i kahi hāʻule o ka hana ke hiki ke hoʻoikaika ʻia.

Pehea e hiki ai a hoʻonohonoho

E like me ka mea i ʻōlelo ʻia ma luna nei, ʻo ka hapa liʻiliʻi o Apache Ignite e kākoʻo ana i ka hoʻopili ʻana i ka ʻaoʻao disk he 2.8 a ʻo ka ʻōnaehana hana Linux wale nō ke kākoʻo ʻia. E hoʻā a hoʻonohonoho e like me kēia:

  • Pono e loaʻa i kahi modula ignite-compression ma ke ala papa. Ma ka maʻamau, aia ia ma ka mahele Apache Ignite ma ka papa kuhikuhi libs / koho a ʻaʻole i hoʻokomo ʻia i ke ala papa. Hiki iā ʻoe ke hoʻoneʻe i ka papa kuhikuhi i hoʻokahi pae i libs a laila ke holo ʻoe ma o ignite.sh e hoʻohana ʻia ia.
  • Pono ke hoʻomau ʻia (Enabled via DataRegionConfiguration.setPersistenceEnabled(true)).
  • Pono e ʻoi aku ka nui o ka ʻaoʻao ma mua o ka nui o ka poloka ʻōnaehana faila (hiki iā ʻoe ke hoʻonohonoho me ka hoʻohana ʻana DataStorageConfiguration.setPageSize() ).
  • No kēlā me kēia huna huna e pono e hoʻopaʻa ʻia ka ʻikepili, pono ʻoe e hoʻonohonoho i ke ʻano hoʻopaʻa ʻana a me (ke koho) i ka pae hoʻoemi (nā ʻano. CacheConfiguration.setDiskPageCompression() , CacheConfiguration.setDiskPageCompressionLevel()).

WAL hoʻopili

Pehea hana i keia hana

He aha ka WAL a no ke aha e pono ai? Pōkole loa: he log kēia i loaʻa nā hanana a pau e hoʻololi i ka waiho ʻaoʻao. Pono mua ia e hiki ke ho'ōla inā hāʻule. ʻO kēlā me kēia hana, ma mua o ka hāʻawi ʻana i ka mana i ka mea hoʻohana, pono e hoʻopaʻa mua i kahi hanana ma WAL, i hiki ke hoʻokani ʻia i loko o ka log a hoʻihoʻi i nā hana āpau i loaʻa i ka mea hoʻohana ka pane kūleʻa, ʻoiai inā kēia mau hana. ʻAʻole i loaʻa ka manawa e hōʻike ʻia i loko o ka waihona ʻaoʻao ma ka disk (ma luna aʻe Ua wehewehe ʻia ʻo ke kākau maoli ʻana i ka hale kūʻai ʻaoʻao i hana ʻia ma kahi kaʻina i kapa ʻia ʻo "checkpointing" me kahi lohi e nā kaula kaʻawale).

Hoʻokaʻawale ʻia nā mea komo i ka WAL i loko o ka loiloi a me ke kino. ʻO nā Boolean nā kī a waiwai iā lākou iho. Kino - hōʻike i nā loli i nā ʻaoʻao ma ka hale kūʻai ʻaoʻao. ʻOiai hiki ke hoʻohana ʻia nā moʻolelo moʻokalaleo no kekahi mau hihia ʻē aʻe, pono nā moʻolelo kino no ka hoʻihoʻi ʻana i ka wā i hāʻule ai a pono nā moʻolelo mai ka wā i hala hope loa. Ma ʻaneʻi ʻaʻole mākou e hele i nā kikoʻī a wehewehe i ke kumu e hana ai kēia ʻano, akā hiki i ka poʻe hoihoi ke kuhikuhi i ka ʻatikala i haʻi ʻia ma ka Apache Ignite Wiki: Ignite Persistent Store - ma lalo o ka puʻu.

Nui nā moʻolelo kino ma kēlā me kēia moʻolelo loiloi. ʻO ia, no ka laʻana, hoʻokomo ka hana i loko o ka cache e pili ana i kekahi mau ʻaoʻao i ka hoʻomanaʻo ʻaoʻao (kahi ʻaoʻao me ka ʻikepili ponoʻī, nā ʻaoʻao me nā indexes, nā ʻaoʻao me nā papa inoa manuahi). Ma kekahi mau ho'āʻo synthetic, ua ʻike au ua paʻa nā moʻolelo kino a hiki i ka 90% o ka faila WAL. Eia nō naʻe, pono lākou no ka manawa pōkole loa (ma ka maʻamau, ʻo ka manawa ma waena o nā wahi nānā he 3 mau minuke). He mea kūpono ke kāpae ʻana i kēia ʻikepili ma hope o ka nalowale ʻana o kona pili. ʻO kēia ka mea a ka WAL compaction mechanical e hana ai: hoʻopau i nā moʻolelo kino a hoʻopaʻa i nā moʻolelo loiloi i koe me ka hoʻohana ʻana i ka zip, ʻoiai ke hoʻemi nui ʻia ka nui o ka faila (i kekahi manawa he ʻumi mau manawa).

Ma ke kino, loaʻa i ka WAL kekahi mau ʻāpana (10 ma ka paʻamau) o ka nui paʻa (64MB ma ka paʻamau), i kākau ʻia ma ke ʻano pōʻai. Ke hoʻopiha koke ʻia ka ʻāpana o kēia manawa, ua hāʻawi ʻia ka ʻāpana aʻe e like me ke ʻano o kēia manawa, a ua kope ʻia ka ʻāpana i hoʻopiha ʻia i ka waihona e kahi kaula kaʻawale. Ke hana nei ka hoʻopili ʻana o WAL me nā ʻāpana waihona. Eia kekahi, ma ke ʻano he pae ʻokoʻa, nānā ʻo ia i ka hoʻokō ʻana i ka wahi hōʻoia a hoʻomaka i ka hoʻopaʻa ʻana i nā ʻāpana waihona kahi e pono ʻole ai nā moʻolelo kino.

Hoʻopili ʻikepili ma Apache Ignite. ʻO ka ʻike o Sber

Ka hopena o ka hana

Ma muli o ka holo ʻana o WAL compaction ma ke ʻano he kaula kaʻawale, ʻaʻohe hopena pololei i nā hana e hana ʻia. Akā, ke kau nei ia i nā ukana ʻē aʻe ma luna o ka CPU (compression) a me ka disk (heluhelu i kēlā me kēia WAL māhele mai ka waihona a kākau i nā ʻāpana i hoʻopili ʻia), no laila inā e holo ana ka ʻōnaehana i kona hiki ke kiʻekiʻe, e alakaʻi pū ia i ka hoʻohaʻahaʻa hana.

Pehea e hiki ai a hoʻonohonoho

Hiki iā ʻoe ke hoʻohana i ka WAL compaction me ka hoʻohana ʻana i ka waiwai WalCompactionEnabled в DataStorageConfiguration (DataStorageConfiguration.setWalCompactionEnabled(true)). Eia kekahi, me ka hoʻohana ʻana i ke ʻano DataStorageConfiguration.setWalCompactionLevel(), hiki iā ʻoe ke hoʻonohonoho i ka pae kōmike inā ʻaʻole ʻoluʻolu ʻoe i ka waiwai paʻamau (BEST_SPEED).

ʻO ka paʻi paʻi kiʻi ʻaoʻao WAL

Pehea hana i keia hana

Ua ʻike mua mākou ua hoʻokaʻawale ʻia nā moʻolelo WAL i ka loiloi a me ke kino. No kēlā me kēia hoʻololi i kēlā me kēia ʻaoʻao, hana ʻia kahi moʻolelo WAL kino ma ka hoʻomanaʻo ʻaoʻao. Hoʻokaʻawale ʻia nā moʻolelo kino i 2 mau ʻano: ʻaoʻao snapshot record a me delta record. I kēlā me kēia manawa a mākou e hoʻololi ai i kekahi mea ma kahi ʻaoʻao a hoʻololi iā ia mai kahi kūlana maʻemaʻe i kahi kūlana lepo, mālama ʻia kahi kope piha o kēia ʻaoʻao ma WAL (page snapshot record). ʻOiai inā hoʻololi mākou i hoʻokahi wale nō byte ma WAL, ʻoi aku ka nui o ka moʻolelo ma mua o ka nui o ka ʻaoʻao. Inā hoʻololi mākou i kekahi mea ma kahi ʻaoʻao haumia, a laila hoʻokumu ʻia kahi moʻolelo delta ma WAL, e hōʻike ana i nā loli wale nō ke hoʻohālikelike ʻia me ke kūlana mua o ka ʻaoʻao, ʻaʻole ka ʻaoʻao holoʻokoʻa. Ma muli o ka hoʻonohonoho hou ʻana i ke kūlana o nā ʻaoʻao mai ka lepo a i ka maʻemaʻe e hana ʻia i ka wā o ke kaʻina hana, ma hope koke o ka hoʻomaka ʻana o ka wahi nānā, kokoke i nā moʻolelo kino āpau e loaʻa wale nā ​​kiʻi o nā ʻaoʻao (no ka mea, maʻemaʻe nā ʻaoʻao āpau ma hope koke o ka hoʻomaka ʻana o ka māka). , a i ko mākou hoʻokokoke ʻana i ka wahi hoʻopaʻa aʻe, hoʻomaka ka hapa o ka delta record e ulu a hoʻihoʻi hou i ka hoʻomaka ʻana o ka wahi hoʻopaʻa aʻe. Ua hōʻike ʻia nā ana i kekahi mau hoʻāʻo synthetic ua hiki i ka 90% ka māhele o nā paʻi kiʻi ʻaoʻao i ka nui o nā moʻolelo kino.

ʻO ka manaʻo o ka WAL page snapshot compression ʻo ia ke kaomi ʻana i nā kiʻi paʻi kiʻi ʻaoʻao me ka hoʻohana ʻana i kahi mea paʻi paʻi ʻaoʻao i hoʻomākaukau ʻia (e ʻike i ka kaomi ʻaoʻao disk). I ka manawa like, ma WAL, mālama ʻia nā moʻolelo ma ke ʻano append-only a ʻaʻohe pono e hoʻopaʻa i nā moʻolelo i nā palena o nā poloka ʻōnaehana faila, no laila, ma aneʻi, ʻaʻole like me ka ʻaoʻao ʻaoʻao disk, ʻaʻole pono mākou i nā faila liʻiliʻi ma. a pau; no laila, e hana kēia ʻano hana ʻaʻole wale ma ka OS Linux. Eia hou, ʻaʻole ia he mea nui iā mākou i ka nui o kā mākou hiki ke hoʻopaʻa i ka ʻaoʻao. ʻOiai inā ua hoʻokuʻu mākou i 1 byte, he hopena maikaʻi kēia a hiki iā mākou ke mālama i ka ʻikepili i hoʻopaʻa ʻia ma WAL, ʻaʻole like me ka hoʻopaʻa ʻana i ka ʻaoʻao disk, kahi e mālama ai mākou i ka ʻaoʻao i hoʻopaʻa ʻia inā mākou i hoʻokuʻu ʻoi aku ma mua o 1 waihona pūnaewele poloka.

ʻO nā ʻaoʻao he ʻikepili koʻikoʻi hiki ke hoʻopili ʻia, ʻo kā lākou mahele i ka nui o ka leo WAL he kiʻekiʻe loa, no laila me ka ʻole o ka hoʻololi ʻana i ka format file WAL hiki iā mākou ke loaʻa i kahi hōʻemi nui o kona nui. ʻO ka hoʻopaʻa ʻana, me nā moʻolelo loiloi, pono e hoʻololi i ke ʻano a me ka nalowale o ka hoʻohālikelike ʻana, no ka laʻana, no nā mea kūʻai aku i waho e makemake paha i nā moʻolelo loʻi, akā ʻaʻole e alakaʻi i kahi hōʻemi nui o ka nui o ka faila.

E like me ka hoʻopili ʻana i ka ʻaoʻao disk, hiki ke hoʻohana ʻia ke kaomi ʻana i ka ʻaoʻao WAL i ka ZSTD, LZ4, Snappy compression algorithms, a me ke ʻano SKIP_GARBAGE.

Ka hopena o ka hana

ʻAʻole paʻakikī ka hoʻomaopopo ʻana i ka hoʻopili pololei ʻana i ka WAL page snapshot compression e pili wale i nā kaula e kākau i ka ʻikepili i ka hoʻomanaʻo ʻaoʻao, ʻo ia hoʻi, kēlā mau lola e hoʻololi i ka ʻikepili i loko o nā huna. ʻO ka heluhelu ʻana i nā moʻolelo kino mai WAL i hoʻokahi wale nō, i ka manawa e hoʻāla ʻia ai ka node ma hope o ka hāʻule ʻana (a inā hāʻule i ka wā o kahi māka).

Hoʻopili kēia i nā kaula e hoʻololi i ka ʻikepili ma ke ʻano penei: loaʻa iā mākou ka hopena maikaʻi ʻole (CPU) ma muli o ka pono e kaomi i ka ʻaoʻao i kēlā me kēia manawa ma mua o ke kākau ʻana i ka disk, a me ka hopena maikaʻi (disk IO) ma muli o ka emi ʻana o ka nui ʻikepili i kākau ʻia. No laila, maʻalahi nā mea āpau ma aneʻi: inā kaupalena ʻia ka hana ʻōnaehana e ka CPU, loaʻa iā mākou kahi hōʻemi iki, inā kaupalena ʻia e ka disk I / O, loaʻa iā mākou ka hoʻonui.

Ma ke ala ʻole, hoʻemi ʻia ka nui o ka WAL e pili ana i nā kahawai e hoʻolei i nā ʻāpana WAL i loko o ka waihona a me nā kahawai hoʻopili WAL.

ʻO nā hoʻokolohua hana maoli i ko mākou kaiapuni me ka hoʻohana ʻana i ka ʻikepili synthetic i hōʻike i kahi piʻi iki (hoʻonui ʻia ka throughput e 10% -15%, hoʻemi ʻia ka latency e 10% -15%).

Pehea e hiki ai a hoʻonohonoho

ʻO ka mana liʻiliʻi loa o Apache Ignite: 2.8. E hoʻā a hoʻonohonoho e like me kēia:

  • Pono e loaʻa i kahi modula ignite-compression ma ke ala papa. Ma ka maʻamau, aia ia ma ka mahele Apache Ignite ma ka papa kuhikuhi libs / koho a ʻaʻole i hoʻokomo ʻia i ke ala papa. Hiki iā ʻoe ke hoʻoneʻe i ka papa kuhikuhi i hoʻokahi pae i libs a laila ke holo ʻoe ma o ignite.sh e hoʻohana ʻia ia.
  • Pono ke hoʻomau ʻia (Enabled via DataRegionConfiguration.setPersistenceEnabled(true)).
  • Pono e hoʻonohonoho ʻia ke ʻano kaomi me ka hoʻohana ʻana i ke ʻano DataStorageConfiguration.setWalPageCompression(), hoʻopau ʻia ka hoʻoemi ʻana ma ke ʻano paʻamau (DISABLED mode).
  • ʻO ke koho, hiki iā ʻoe ke hoʻonohonoho i ka pae hoʻopiʻi me ka hoʻohana ʻana i ke ʻano DataStorageConfiguration.setWalPageCompression(), e ʻike i ka javadoc no ke ʻano no nā waiwai kūpono no kēlā me kēia ʻano.

hopena

Hiki ke hoʻohana kūʻokoʻa ʻia nā mīkini hoʻopili ʻikepili i manaʻo ʻia ma Apache Ignite, akā ʻae ʻia kekahi hui pū ʻana o ia mau mea. ʻO ka hoʻomaopopo ʻana i ke ʻano o kā lākou hana e ʻae iā ʻoe e hoʻoholo i ke kūpono o lākou no kāu mau hana ma kou wahi a me kāu mea e kaumaha ai i ka wā e hoʻohana ai iā lākou. Hoʻolālā ʻia ka hoʻopaʻa ʻana i ka ʻaoʻao disk e hoʻopaʻa i ka waihona nui a hiki ke hāʻawi i kahi ratio hoʻopiʻi waena. E hāʻawi ana ka hoʻopili paʻi kiʻi ʻaoʻao WAL i ka pae awelika o ka hoʻopili ʻana no nā faila WAL, a e hoʻomaikaʻi paha i ka hana. ʻAʻole loaʻa ka hopena maikaʻi o ka hoʻopili ʻana o WAL i ka hana, akā e hōʻemi i ka nui o nā faila WAL e like me ka hiki ma ka wehe ʻana i nā moʻolelo kino.

Source: www.habr.com

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