Kōpeketanga Raraunga i Apache Ignite. Te wheako o Sber

Kōpeketanga Raraunga i Apache Ignite. Te wheako o SberI te wa e mahi ana me te nui o nga raraunga, ko te raruraru o te kore o te mokowā kōpae ka ara ake i etahi wa. Ko tetahi o nga huarahi ki te whakaoti i tenei raruraru ko te pupuhi, na te mea, i runga i nga taputapu kotahi, ka taea e koe te whakanui ake i nga pukapuka rokiroki. I roto i tenei tuhinga, ka titiro tatou me pehea te mahi o te taapiri raraunga i roto i te Apache Ignite. Ma tenei tuhinga anake e whakaahua nga tikanga taapiri kōpae i whakamahia i roto i te hua. Ko etahi atu tikanga mo te taapiri raraunga (i runga i te whatunga, i roto i te mahara), ahakoa ka whakatinanahia, kaore ranei, ka noho ki waho o te waahanga.

Na, i te wa e taea ai te aratau tohe, na nga huringa o nga raraunga i roto i nga keteroki, ka timata a Ignite ki te tuhi ki te kōpae:

  1. Nga ihirangi o nga keteroki
  2. Tuhia i mua i te Rangitaki (WAL noa)

Kua roa nei he tikanga mo te whakakopeketanga WAL, e kiia nei ko te WAL compaction. Ko te Apache Ignite 2.8 i tukuna tata ake nei i whakauru mai e rua atu nga tikanga e taea ai e koe te kopiri i nga raraunga i runga i te kōpae: kopae wharangi wharangi mo te kokopi i nga ihirangi o nga keteroki me te WAL page snapshot compression mo te kokopi i etahi urunga WAL. Ētahi atu taipitopito mo enei tikanga e toru kei raro nei.

Kōpeke whārangi kōpae

Nahea teie ohipa

Tuatahi, me titiro poto ki te ahua o te Ignite ki te penapena raraunga. Ka whakamahia te mahara whārangi mo te rokiroki. Kua tautuhia te rahi o te wharangi ki te timatanga o te node, a kaore e taea te whakarereke i nga waahanga o muri mai; me te rahi o te wharangi he mana o te rua me te maha o te rahi o te paraka punaha konae. Ka utaina nga wharangi ki te RAM mai i te kopae ina hiahiatia; ko te rahi o nga raraunga kei runga kopae ka nui ake i te rahinga o te RAM kua tohatohahia. Ki te kore e nui te mokowā i roto i te RAM hei uta i tetahi wharangi mai i te kōpae, ka peia atu nga wharangi tawhito, kua kore e whakamahia i te RAM.

Ka penapena nga raraunga ki runga i te kōpae penei: ka hangaia he konae motuhake mo ia wahanga o ia roopu keteroki; i tenei konae, ka puta nga wharangi i muri i tetahi i runga i te raupapa taupū piki. Kei roto i te kaitautuhi wharangi katoa te tohu roopu keteroki, te tau wehewehenga, me te taurangi wharangi kei roto i te konae. No reira, ma te whakamahi i te wharangi wharangi katoa, ka taea e tatou te whakatau motuhake i te konae me te wehenga i roto i te konae mo ia wharangi. Ka taea e koe te panui atu mo te mahara wharangi i roto i te tuhinga Apache Ignite Wiki: Whakawerahia te Toa Tonu - i raro i te awhi.

Ko te tikanga whakakopeke wharangi kōpae, i te mea ka whakaaro koe mai i te ingoa, ka mahi i te taumata wharangi. Ina whakahohea tenei tikanga, ka tukatukahia nga raraunga i roto i te RAM kia rite tonu, karekau he pupuhi, engari ka tiakina nga whaarangi mai i te RAM ki te kopae, ka kopirihia.

Engari ko te kopiri i ia wharangi takitahi ehara i te otinga ki te raru; me whakaiti koe i te rahi o nga konae raraunga ka puta. Ki te kore te rahi o te wharangi i whakaritea, kare e taea e matou te tuhi wharangi ki te konae tetahi i muri i tetahi, na te mea he maha nga raru ka puta:

  • Ma te whakamahi i te taurangi wharangi, kare e taea e matou te tatau i te whakawhiwhinga kei roto i te konae.
  • Kaore i te maarama he aha te mahi ki nga whaarangi kaore i te mutunga o te konae me te whakarereke i te rahi. Mena ka heke te rahi o te wharangi, ka ngaro te mokowā i whakawāteahia. Mena ka piki te rahi o te wharangi, me rapu he waahi hou ki te konae.
  • Mena ka neke tetahi wharangi ma te maha o nga paita ehara i te maha o te rahi o te paraka punaha konae, katahi ka panui, ka tuhi ranei ka pa atu ki tetahi atu paraka punaha konae, tera pea ka paheke te mahi.

Hei karo i te whakaoti i enei raru i tona ake taumata, ka whakamahia e te kopeke wharangi kōpae i Apache Ignite tetahi punaha punaha konae e kiia nei ko nga konae iti. Ko te konae iti he konae ka tohuhia etahi rohe kapi kore hei "kohao". I tenei keehi, karekau he poraka punaha konae ka tohatoha ki te penapena i enei kohao, ka mutu ka penapena mokowā mokowā kōpae.

E tika ana kia wetekina he paraka punaha konae, me nui ake, kia rite ranei te rahi o te kohao ki te paraka punaha konae, ka tukuna he taapiri taapiri mo te rahi o te wharangi me te Apache Ignite: kia whai hua ai te kopeketanga, me tino nui ake te rahi o te wharangi i te rahi o te paraka punaha konae. Mena he rite te rahi o te wharangi ki te rahi o te paraka, kare rawa e taea e tatou te wetewete i te poraka kotahi, i te mea hei whakawātea i te poraka kotahi, me noho te wharangi kōpeke ki te 0 paita. Mena he rite te rahi o te wharangi ki te rahi o te 2, e 4 poraka ranei, ka taea e matou te wetewete i te iti rawa kia kotahi te poraka mena ka kopakihia to maatau wharangi ki te 50%, 75% ranei.

No reira, ko te whakamaarama whakamutunga mo te mahi a te miihini: I te tuhi wharangi ki te kopae, ka ngana ki te kopiri i te wharangi. Mena ka taea e te rahi o te wharangi kua kopeketia kia kotahi, neke atu ranei nga poraka punaha konae kia wetekina, katahi ka tuhia te wharangi ki roto i te ahua whakakopeke, ka mahia he "poka" hei whakakapi i nga poraka kua wetekina (ka mahia he waea punaha. fallocate() me te haki punch hole). Ki te kore e taea e te rahi o te wharangi kōpeke te tuku i nga poraka kia wetekina, ka tiakina te wharangi kia rite tonu, kaore ano kia whakakopeketia. Ko nga wharangi wharangi katoa he rite tonu te tatau ki te kore e paopao, ma te whakarea i te taurangi wharangi ki te rahi o te wharangi. Karekau he nuku wharangi e hiahiatia ana e koe ake. Ko nga wharangi wharangi, penei me te kore he kopeketanga, ka taka ki runga i nga rohe o nga poraka punaha konae.

Kōpeketanga Raraunga i Apache Ignite. Te wheako o Sber

I roto i te whakatinanatanga o naianei, ka taea e Ignite te mahi me nga konae iti i raro i te Linux OS; na reira, ka taea anake te whakakoi i te wharangi kōpae ina whakamahi i te Ignite i runga i tenei punaha whakahaere.

Ngā hātepe kōpeketanga ka taea te whakamahi mō te kōpeke whārangi kōpae: ZSTD, LZ4, Snappy. I tua atu, he aratau whakahaere (SKIP_GARBAGE), ko nga waahi kaore i whakamahia i roto i te wharangi ka maka ki waho me te kore e pa ki te toenga o nga raraunga, e whakaiti ana i te utaina i runga i te PTM ka whakaritea ki nga raarangi kua tohua i mua.

Paanga Mahinga

Heoi ano, kaore au i whakahaere i nga inenga mahi i runga i nga tuunga tuuturu, na te mea kaore matou e whakaaro ki te whakamahi i tenei miihini ki te whakaputa, engari ka taea e taatau te whakaaro ko hea ka ngaro me te waahi ka wikitoria.

Hei mahi i tenei, me mahara tatou me pehea te panui me te tuhi i nga wharangi ina uru atu:

  • I te wa e mahi ana i te mahi panui, ka rapua tuatahitia i roto i te RAM; ki te kore te rapunga i angitu, ka utaina te wharangi ki roto i te RAM mai i te kōpae ma te miro kotahi e mahi ana i te panui.
  • Ina mahia he mahi tuhi, ka tohuhia te wharangi i roto i te RAM he paru, engari karekau te wharangi e tiakina a tinana ki te kōpae na te miro e mahi ana i te tuhi. Ko nga wharangi paru katoa ka tiakina ki te kopae i muri mai i roto i te mahi tirotiro i nga miro motuhake.

Na ko te paanga ki nga mahi panui ko:

  • He pai (kopae IO), na te hekenga o te maha o nga poraka punaha konae panui.
  • Negative (CPU), na te nui o te kawenga e hiahiatia ana e te punaha whakahaere ki te mahi me nga konae iti. Ka taea hoki ka puta mai etahi atu mahi IO ki konei hei tiaki i te hanganga o nga konae mokowhiti (aua ra, kaore au i te mohio ki nga korero katoa mo te mahi o nga konae iti).
  • Negative (CPU), na te hiahia ki te whakaheke i nga wharangi.
  • Karekau he paanga ki nga mahi tuhi.
  • Te paanga ki te tukanga tohutaki (he rite nga mea katoa ki nga mahi panui):
  • He pai (kopae IO), na te hekenga o te maha o nga poraka punaha konae kua tuhia.
  • He kino (PTM, he kopae IO pea), na te mahi me nga konae iti.
  • Negative (CPU), na te hiahia mo te kopeke wharangi.

Ko tehea taha o te tauine ka huri i te tauine? Ko enei mea katoa ka whakawhirinaki ki te taiao, engari kei te pirangi au ki te whakapono ka paheke te mahi o te nuinga o nga punaha ko te kopeke wharangi kōpae. I tua atu, ko nga whakamatautau mo etahi atu DBMS e whakamahi ana i te huarahi rite ki nga konae iti e whakaatu ana i te heke o te mahi ka whakahohehia te kōpeketanga.

Me pehea te whakahohe me te whirihora

Ka rite ki te korero i runga ake nei, ko te putanga iti rawa o Apache Ignite e tautoko ana i te kopae whaarangi kopae ko te 2.8 a ko te punaha whakahaere Linux anake e tautokohia ana. Whakahohe me te whirihora penei:

  • Me noho he kōwae whakakā-kōpeketanga i te ara-akomanga. Ma te taunoa, kei roto i te tohatoha Apache Ignite i roto i te raarangi libs/whakawhirinaki me te kore e uru ki te ara-akomanga. Ka taea noa e koe te nuku i te whaiaronga ki runga kotahi te taumata ki te libs katahi ka whakahaerea e koe ma te ignite.sh ka whakahohe aunoa.
  • Me whakahohea te tohenga (Whakahohea ma DataRegionConfiguration.setPersistenceEnabled(true)).
  • Me nui ake te rahi o te wharangi i te rahinga paraka punaha konae (ka taea e koe te tautuhi ma te whakamahi DataStorageConfiguration.setPageSize() ).
  • Mo ia keteroki e hiahia ana kia kōpekehia ana raraunga, me whirihora e koe te tikanga whakakopeke me te (mehemea) te taumata kōpeketanga (tikanga CacheConfiguration.setDiskPageCompression() , CacheConfiguration.setDiskPageCompressionLevel()).

Whakakotahitanga WAL

Nahea teie ohipa

He aha te WAL me te aha i hiahiatia ai? He poto rawa: he raarangi tenei kei roto nga huihuinga katoa ka huri i te waahi rokiroki whaarangi. Ko te mea tuatahi kia taea te whakaora mena ka hinga. Ko nga mahi katoa, i mua i te tuku mana ki te kaiwhakamahi, me tuhi tuatahi i tetahi huihuinga i roto i te WAL, kia taea ai te purei ki roto i te raarangi me te whakahoki i nga mahi katoa i whiwhi whakautu angitu ai te kaiwhakamahi, ahakoa enei mahi. kaore i whai wa ki te whakaatu i roto i te rokiroki wharangi i runga i te kopae (kei runga ake nei Kua whakaahuahia ko te tuhi tuturu ki te toa wharangi ka mahia i roto i te tikanga e kiia nei ko te "tirotiro" me etahi wa roa e nga miro motuhake).

Kua wehea nga urunga ki te WAL ki te arorau me te tinana. Ko nga Boolean nga ki me te uara ano. Tinana - ka whakaatu i nga huringa ki nga wharangi kei te toa wharangi. Ahakoa ka whai hua nga rekoata arorau mo etahi atu keehi, ko nga rekoata tinana e hiahiatia ana mo te whakaora mena he tukinga ka hiahiatia nga rekoata mai i te waahi arowhai angitu whakamutunga. I konei kaore matou e korero mo te korero me te whakamarama he aha te mahi penei, engari ka taea e te hunga e hiahia ana te korero ki te tuhinga kua whakahuahia i runga i te Apache Ignite Wiki: Whakawerahia te Toa Tonu - i raro i te awhi.

He maha nga rekoata tinana mo ia rekoata arorau. Arā, hei tauira, ko te mahi whakauru ki roto i te keteroki ka pa ki te maha o nga wharangi kei roto i te mahara o te wharangi (he wharangi me nga raraunga ake, nga wharangi whai tohu, nga wharangi whai rarangi-kore). I etahi whakamatautau waihanga, i kitea e au ko nga rekoata tinana kei te 90% o te konae WAL. Heoi, e hiahiatia ana mo te wa poto (ma te taunoa, ko te waahi i waenga i nga waahi tirotiro he 3 meneti). He mea tika ki te whakakore i enei raraunga i muri i te ngaro o te whai take. Koia tonu te mahi a te hangahanga WAL compaction: ka whakakorehia nga rekoata tinana me te kopiri i nga toenga rekoata arorau ma te whakamahi i te zip, i te mea ka tino whakahekehia te rahi o te konae (i etahi wa ka tekau nga wa).

Ko te taha tinana, he maha nga waahanga o te WAL (10 taunoa) o te rahi (64MB te taunoa), ka tuhiruatia i roto i te porohita. Ka whakakiia te waahanga o naianei, ka tohua te waahanga o muri mai hei o naianei, ka kapea te waahanga kua whakakiia ki te puranga e tetahi miro motuhake. Kua mahi kē te whakatikitanga WAL me nga wahanga puranga. Ano, hei miro motuhake, ka aro turuki i te mahi o te waahi tirotiro ka tiimata ki te whakakopa i nga waahanga purongo kaore e hiahiatia ana nga rekoata tinana.

Kōpeketanga Raraunga i Apache Ignite. Te wheako o Sber

Paanga Mahinga

I te mea he miro motuhake te whakakotahitanga o te WAL, kaua e pa ki nga mahi e mahia ana. Engari kei te tuu tonu i etahi atu kawenga papamuri ki runga i te PTM (kopeke) me te kōpae (te panui i ia wahanga WAL mai i te puranga me te tuhi i nga waahanga kua kopaki), na mena kei te rere te punaha ki tona kaha teitei, ka paheke ano te mahi.

Me pehea te whakahohe me te whirihora

Ka taea e koe te whakakoi i te WAL ma te whakamahi i te rawa WalCompactionEnabled в DataStorageConfiguration (DataStorageConfiguration.setWalCompactionEnabled(true)). Ano, ma te whakamahi i te tikanga DataStorageConfiguration.setWalCompactionLevel(), ka taea e koe te whakarite i te taumata compression ki te kore koe e makona ki te uara taunoa (BEST_SPEED).

WAL wharangi whakaahua kōpeketanga

Nahea teie ohipa

Kua kitea e matou kei roto i nga rekoata WAL kua wehewehea ki te arorau me te tinana. Mo ia huringa ki ia wharangi, ka hangaia he rekoata WAL tinana ki te mahara wharangi. Ko nga rekoata a-tinana, ka wehea ano kia 2 nga momo iti: te rekoata whakaahua wharangi me te rekoata delta. I nga wa katoa ka huri tatou i tetahi mea i runga i te wharangi ka whakawhiti mai i te ahua pokekore ki te ahua paru, ka rongoa he kape katoa o tenei wharangi ki te WAL (te rekoata whakaahua wharangi). Ahakoa kotahi noa te paita i hurihia i te WAL, ka nui ake te rekoata i te rahi o te wharangi. Mena ka huri tatou i tetahi mea i runga i te wharangi paru, katahi ka hangaia he rekoata delta ki te WAL, e whakaatu ana i nga huringa ka whakatauritea ki te ahua o mua o te wharangi, engari kaua ko te wharangi katoa. I te mea ko te tautuhi ano i te ahua o nga wharangi mai i te paru ki te ma ka mahia i te wa o te mahi tirotiro, i muri tonu mai i te tiimatanga o te waahi tirotiro, tata katoa nga rekoata tinana ka uru noa ki nga whakaahua o nga wharangi (i te mea he ma nga wharangi katoa i muri tonu i te tiimata o te waahi tirotiro) , katahi ka whakatata atu ki te waahi tirotiro, ka timata te tipu o te hautanga rekoata delta ka tautuhi ano i te timatanga o te waahi tirotiro. Ko nga inenga i etahi whakamatautau waihanga i whakaatu ko te wahanga o nga whakaahua wharangi i roto i te tapeke o nga rekoata tinana ka eke ki te 90%.

Ko te whakaaro o te WAL page snapshot compression he kiki i nga whakaahua wharangi ma te whakamahi i tetahi taputapu taapiri wharangi kua oti te hanga (tirohia te kopae whaarangi kōpae). I te wa ano, i roto i te WAL, ka tiakina nga rekoata i roto i te aratau taapiri-anake, kaore he take ki te here i nga rekoata ki nga rohe o nga poraka punaha konae, na konei, kaore i rite ki te miihini whakakoi wharangi kōpae, kaore e hiahiatia he konae iti kei katoa; na reira, ka mahi tenei tikanga ehara i te OS Linux anake. I tua atu, kaore he mea nui ki a maatau te nui o te kaha ki te kopiri i te wharangi. Ahakoa i wetekina e matou te 1 paita, he hua pai tenei ka taea e matou te penapena i nga raraunga kapi ki te WAL, kaore i rite ki te kopae wharangi kōpae, kei reira ka tiakina e matou te wharangi kōpeke mena ka wetekina e matou neke atu i te 1 paraka punaha konae.

Ko nga wharangi he raraunga tino whakakopa, he nui rawa atu to ratou wahanga i roto i te katoa o te rōrahi WAL, no reira me te kore e whakarereke i te whakatakotoranga konae WAL ka taea e tatou te whakaiti nui i tona rahi. Ko te kopeketanga, tae atu ki nga rekoata arorau, me whakarereke i te whakatakotoranga me te ngaro o te hototahi, hei tauira, mo nga kaihoko o waho e aro nui ana ki nga rekoata arorau, engari kaore e tino heke te rahi o te konae.

Pērā i te kōpeke whārangi kōpae, ka taea e te kōpeketanga whakaahua wharangi WAL te whakamahi i te ZSTD, LZ4, Snappy algorithms kōpeketanga, me te aratau SKIP_GARBAGE.

Paanga Mahinga

Ehara i te mea uaua ki te kite ko te whakaahei tika i te whakakope whakaahua wharangi WAL ka pa ki nga miro e tuhi raraunga ana ki te mahara wharangi, ara, nga miro e huri ana i nga raraunga i roto i nga keteroki. Ko te panui i nga rekoata tinana mai i te WAL ka puta kotahi anake, i te wa ka whakaarahia te node i muri i te hinganga (a mena ka taka i te wa o te waahi tirotiro).

Ka pa atu tenei ki nga miro ka huri i nga raraunga penei: ka whiwhi tatou i te paanga kino (PTM) na te hiahia ki te kopiri i te wharangi ia wa i mua i te tuhi ki te kopae, me te painga pai (kopae IO) na te hekenga o te nui raraunga tuhia. No reira, he ngawari nga mea katoa i konei: mena ka iti te mahinga o te punaha e te PTM, ka iti te heke, mena ka iti te kopae I/O, ka piki ake.

Ko te whakaheke i te rahi o te WAL ka pa (he pai) nga awa e maka ana i nga wahanga WAL ki roto i te puranga me nga awa taapiri WAL.

Ko nga whakamatautau mahi tuturu i roto i to taatau taiao ma te whakamahi i nga raraunga waihanga i whakaatu he iti te piki ake (kua piki ake te whakaputanga ma te 10%-15%, kua heke te torohū ma te 10%-15%).

Me pehea te whakahohe me te whirihora

Putanga Whakawera Apache iti: 2.8. Whakahohe me te whirihora penei:

  • Me noho he kōwae whakakā-kōpeketanga i te ara-akomanga. Ma te taunoa, kei roto i te tohatoha Apache Ignite i roto i te raarangi libs/whakawhirinaki me te kore e uru ki te ara-akomanga. Ka taea noa e koe te nuku i te whaiaronga ki runga kotahi te taumata ki te libs katahi ka whakahaerea e koe ma te ignite.sh ka whakahohe aunoa.
  • Me whakahohea te tohenga (Whakahohea ma DataRegionConfiguration.setPersistenceEnabled(true)).
  • Me whakarite te aratau kōpeketanga ma te whakamahi i te tikanga DataStorageConfiguration.setWalPageCompression(), kua monoa te kōpeketanga ma te taunoa (Aratau WHAKAMAHI).
  • Ka taea, ka taea e koe te whakarite i te taumata kōpeketanga ma te whakamahi i te tikanga DataStorageConfiguration.setWalPageCompression(), tirohia te javadoc mo te tikanga mo nga uara whaimana mo ia aratau.

mutunga

Ka taea te whakamahi takitahi i nga tikanga taapiri raraunga i roto i te Apache Ignite, engari ka whakaaehia ano te whakakotahitanga. Ma te mohio ki a raatau mahi ka taea e koe te whakatau he pehea e tika ana mo o mahi i roto i to taiao me nga mea ka mahia e koe ina whakamahi ana koe. I hoahoatia te kōpeke whārangi kōpae hei kōpeke i te rokiroki matua, ā, ka hoatu he ōwehenga kōpeke reo. Ko te kopeketanga whakaahua wharangi WAL ka whakawhiwhia te tohu toharite o te kopeketanga mo nga konae WAL, a ka pai ake te mahi. E kore e whai hua pai te whakatikitanga WAL ki te mahi, engari ka whakaitihia te rahi o nga konae WAL ma te tango i nga rekoata tinana.

Source: will.com

Tāpiri i te kōrero