Analiz de travay ki soti nan konferans Hydra - balans chaj ak depo nan memwa

Sa te pase kèk jou de sa Konferans Hydra. Mesye yo nan JUG.ru Group envite moun kap pale rèv (Leslie Lamport! Cliff Klike! Martin Kleppmann!) ak konsakre de jou nan distribye sistèm ak informatique. Kontur te youn nan twa patnè konferans lan. Nou te pale nan izolwa a, te pale sou depo distribye nou yo, te jwe bengo, ak rezoud pezeul.

Sa a se yon pòs ki gen yon analiz de travay nan stand Kontur nan men otè tèks yo. Ki moun ki te sou Hydra a - sa a se rezon ou sonje eksperyans nan bèl, ki moun ki pa t '- yon chans detire sèvo ou gwo O-notasyon.

Te gen menm patisipan yo ki te demantele flipchart la nan glisad pou ekri desizyon yo. Mwen pa blag - yo remèt pil papye sa a pou verifikasyon:

Analiz de travay ki soti nan konferans Hydra - balans chaj ak depo nan memwa

Te gen twa travay nan total:

  • sou chwazi kopi pa pwa pou balanse chaj
  • sou klasman rezilta rechèch kont yon baz done nan memwa
  • sou transfè eta nan yon sistèm distribiye ak yon topoloji bag

Travay 1. ClusterClient

Li te nesesè yo pwopoze yon algorithm pou seleksyon an efikas nan K nan N kopi filaplon nan yon sistèm distribiye:

Ekip ou a responsab pou devlope yon bibliyotèk kliyan pou yon gwoup N nœuds ki distribye twouve. Bibliyotèk la ta kenbe tras divès metadone ki asosye ak nœuds (egzanp, latansi yo, pousantaj repons 4xx/5xx, elatriye) epi bay yo pwa pwen k ap flote W1..WN. Pou sipòte estrateji ekzekisyon konkouran, bibliyotèk la ta dwe kapab chwazi K nan N nœuds owaza—yon chans pou yo chwazi yo ta dwe pwopòsyonèl ak pwa yon nœuds.

Pwopoze yon algorithm pou chwazi nœuds avèk efikasite. Estime konpleksite enfòmatik li lè l sèvi avèk gwo notasyon O.

Poukisa tout bagay an Angle?

Paske nan fòm sa a patisipan konferans yo te goumen ak yo e paske angle te lang ofisyèl Hydra. Travay yo te sanble ak sa a:

Analiz de travay ki soti nan konferans Hydra - balans chaj ak depo nan memwa

Pran papye ak kreyon, reflechi, pa kouri ouvri spoiler touswit 🙂

Analiz solisyon an (videyo)

Apati 5:53, sèlman 4 minit:

Men ki jan mesye ki gen flipchart la te prezante solisyon yo:


Analiz solisyon an (tèks)

Solisyon sa a bay manti sou sifas la: sòm pwa yo nan tout kopi, jenere yon nimewo o aza soti nan 0 a sòm total tout pwa, apresa chwazi yon i-replik konsa ke sòm nan pwa yo nan kopi soti nan 0 a (i-1)yèm. se mwens pase yon nimewo o aza, ak sòm total pwa kopi soti nan 0 a i-th - plis pase li. Se konsa, li pral posib yo chwazi yon sèl kopi, epi yo chwazi youn nan pwochen, ou bezwen repete pwosedi a tout antye san yo pa konsidere kopi chwazi a. Avèk yon algorithm konsa, konpleksite nan chwazi yon kopi se O(N), konpleksite nan chwazi K kopi se O (N K) ~ O (N2).

Analiz de travay ki soti nan konferans Hydra - balans chaj ak depo nan memwa

Konpleksite kwadratik se move, men li ka amelyore. Pou fè sa, nou pral bati pye bwa segman pou sòm de pwa. Yo pral jwenn yon pye bwa nan pwofondè lg N, nan fèy yo ki pral gen pwa kopi, ak nan nœuds ki rete yo - sòm total pasyèl, jiska sòm total tout pwa nan rasin pye bwa a. Apre sa, nou jenere yon nimewo o aza soti nan 0 jiska sòm tout pwa, jwenn kopi i-yèm lan, retire li nan pye bwa a, epi repete pwosedi a pou jwenn kopi ki rete yo. Avèk algorithm sa a, konpleksite pou konstwi yon pye bwa se O(N), konpleksite pou jwenn kopi i-yèm lan epi retire li nan pye bwa a se O(lg N), konpleksite pou chwazi K kopi se O(N + K). lg N) ~ O(N lg N) .

Analiz de travay ki soti nan konferans Hydra - balans chaj ak depo nan memwa

Konpleksite lineyè-log pi bèl pase konpleksite kwadratik, espesyalman pou gwo K.

Li se algorithm sa a aplike nan kòd Bibliyotèk ClusterClient soti nan pwojè a "Lès". (La, pye bwa a bati nan O (N lg N), men sa pa afekte konpleksite final algorithm la.)

Travay 2. Zèb

Li te nesesè yo pwopoze yon algorithm pou klasman efikas nan dokiman nan memwa pa yon jaden abitrè ki pa endis:

Ekip ou a gen responsablite pou l devlope yon baz done dokiman ki frakti nan memwa. Yon kantite travay komen ta dwe chwazi pi gwo N dokiman ki klase pa yon jaden nimerik abitrè (ki pa endis) nan yon koleksyon gwosè M (anjeneral N <100 << M). Yon ti kras mwens komen chaj travay ta dwe chwazi tèt N apre sote tèt S dokiman (S ~ N).

Pwopoze yon algorithm pou egzekite demann sa yo avèk efikasite. Estime konpleksite enfòmatik li yo lè l sèvi avèk gwo notasyon O nan ka mwayèn ak senaryo ka ki pi move yo.

Analiz solisyon an (videyo)

Apati 34:50, sèlman 6 minit:


Analiz solisyon an (tèks)

Solisyon andigman: klase tout dokiman (pa egzanp ak kicksort), Lè sa a, pran dokiman N+S. Nan ka sa a, konpleksite nan klasman an mwayèn O (M lg M), nan pi move O (M2).

Li evidan ke klasman tout dokiman M ak Lè sa a, pran sèlman yon ti pati nan yo pa efikas. Yo nan lòd yo pa sòt tout dokiman, yon algorithm se apwopriye seleksyon rapid, ki pral chwazi N + S nan dokiman yo vle (yo ka klase pa nenpòt algorithm). Nan ka sa a, konpleksite a ap diminye nan O (M) an mwayèn, pandan y ap ka ki pi mal la ap rete menm jan an.

Sepandan, ou ka fè li menm pi efikas - sèvi ak algorithm la difizyon pil binè. Nan ka sa a, yo ajoute premye dokiman N + S yo nan min-oswa max-heap (selon direksyon sòt la), epi apre chak pwochen dokiman yo konpare ak rasin pye bwa a, ki gen dokiman aktyèl la minimòm oswa maksimòm, epi li ajoute nan pye bwa a si sa nesesè. . Nan ka sa a, konpleksite a nan ka ki pi mal la, lè ou gen toujou ap rebati pye bwa a, se O (M lg M), konpleksite a an mwayèn se O (M), menm jan ak quickselect.

Sepandan, difizyon pil vire soti pi efikas akòz lefèt ke nan pratik pi fò nan dokiman yo ka jete san yo pa rebati pil wòch la apre yon konparezon sèl ak eleman rasin li yo. Klas sa yo aplike nan baz done dokiman Zebra nan memwa ki devlope epi itilize nan Kontur.

Travay 3. Echanj Eta

Li te nesesè yo pwopoze algorithm ki pi efikas pou chanjman eta yo:

Ekip ou a responsab pou devlope yon mekanis echanj eta anpenpan pou yon gwoup distribye N nœuds. Eta i-th nod la ta dwe transfere nan (i+1)-th ne, eta N-th nod la ta dwe transfere nan premye ne. Sèl operasyon ki sipòte se swap eta a lè de nœuds echanj eta yo atomikman. Li konnen ke yon echanj eta pran M milisgond. Chak ne kapab patisipe nan yon sèl swap eta nan nenpòt moman.

Konbyen tan li pran pou transfere eta yo nan tout nœuds nan yon gwoup?

Analiz solisyon an (tèks)

Solisyon andigman: echanj eta yo nan premye ak dezyèm eleman, Lè sa a, premye a ak twazyèm, Lè sa a, premye a ak katriyèm, ak sou sa. Apre chak echanj, eta a nan yon sèl eleman yo pral nan pozisyon an vle. Ou dwe fè O(N) pèmitasyon epi pase O(N M) tan.

Analiz de travay ki soti nan konferans Hydra - balans chaj ak depo nan memwa

Tan lineyè se long, kidonk ou ka chanje eta yo nan eleman nan pè: premye a ak dezyèm lan, twazyèm lan ak katriyèm lan, ak sou sa. Apre chak echanj eta, chak dezyèm eleman pral nan bon pozisyon. Ou dwe fè O(lg N) pèmitasyon epi pase O(M lg N) tan.

Analiz de travay ki soti nan konferans Hydra - balans chaj ak depo nan memwa

Sepandan, li posib fè chanjman an menm pi efikas - pa nan lineyè, men nan tan konstan. Pou fè sa, nan premye etap la, ou bezwen chanje eta a nan premye eleman ak dènye a, dezyèm lan ak penultyèm la, ak sou sa. Eta a nan dènye eleman yo pral nan pozisyon ki kòrèk la. Epi kounye a nou bezwen chanje eta a nan dezyèm eleman nan ak dènye a, twazyèm nan ak penultyèm youn nan, ak sou sa. Apre tou sa a nan echanj, eta yo nan tout eleman yo pral nan bon pozisyon. Pral gen O(2M) ~ O (1) pèmitasyon an total.

Analiz de travay ki soti nan konferans Hydra - balans chaj ak depo nan memwa

Yon solisyon konsa pa pral sipriz yon matematisyen ki toujou sonje ke yon wotasyon se yon konpozisyon de simetri axial. By wout la, li se trivially jeneralize pou yon chanjman pa yon sèl, men pa K <N pozisyon. (Ekri nan kòmantè yo ki jan egzakteman.)

Èske ou te renmen puzzles? èske w konnen lòt solisyon? Pataje nan kòmantè yo.

Men kèk lyen itil nan fen a:

Sous: www.habr.com

Add nouvo kòmantè