Schrödinger feles sine pyxide: problema consensus in systematibus distributis

Itaque cogitemus. V feles clausae sunt in cella, et ut dominus evigilet, omnes inter se consentire debent, quia ostium cum quinque innixa non possunt aperire. Si unus felium Schrödinger cattus est, alter feles de eius sententia non sciunt, quaestio oritur: "Quomodo id facere possunt?"

In hoc articulo, dico vobis simplicibus verbis de theoretica mundi componente systemata distributa et operationis eorum principiis. Etiam leviter examinabo principalem ideam Paxos subiectam.

Schrödinger feles sine pyxide: problema consensus in systematibus distributis

Cum tincidunt nubes substructiones, variae databases utuntur, et in racemis permulta nodorum operantur, confidunt notitias integras, securas semperque in promptu fore. Sed ubi sunt fideiussores?

Per se, fideiussores sumus nos cautiones. In documentis ita describuntur: "Hoc officium satis certum est, datum SLA, nolite solliciti esse, omnia distributim sicut exspectas operabuntur."

Optime tendunt ad credendum, quia callidi guys ex magnis societatibus nobis omnia bene esse pollicentur. Non interrogamus: cur enim omnino opus est? Estne aliqua iustificatio formalis ad rectam operationem talium systematum?

Ego nuper ad School of Distributed Computing et hoc loco valde incitatus est. Praelectiones in schola magis erant sicut calculi classes quam aliquid ad systemata computatralia. Sed hoc ipsum est quomodo praecipui algorithmi, quibus cotidie utimur, nec scientes, uno tempore probatae sunt.

Plurimi moderni systemata distributa utuntur in algorithmo consensu Paxos et eius variae modificationes. Frigidissima res est quod validitas et principium ipsa possibilitas exsistentiae huius algorithmi simpliciter stylo et charta probari potest. In praxi, algorithmus in magnis systematibus cursus ingentem numerum nodorum in nubibus adhibet.

Luce illustratio quid deinde dicetur: negotium duorum imperatorumVide fermentum negotium duobus ducibus.

Exercitus duos habemus - rubeum et album. Albae copiae in obsessa urbe nituntur. Copiae rubrae ducum ducum A1 et A2 in duabus urbis partibus sitae sunt. Redheads 'opus est urbem albam oppugnare et vincere. Sed exercitus uniuscuiusque generalis rubri est minor quam exercitus albus.

Schrödinger feles sine pyxide: problema consensus in systematibus distributis

Victoriae condiciones rubrae sunt: ​​ambo imperatores simul oppugnare debent ut in albumina numeralem utilitatem habeant. Ad hoc faciendum, duces A1 et A2 inter se convenire debent. Si separatim quisque invadit, redheads amittet.

Ad concordiam, duces A1 et A2 nuntios inter se mittere possunt per agrum urbis albae. Nuncius potest ad socium ducem aut ab hostibus intercipi. Quaestio: estne talis series communicationum inter duces rufos (sequentia nuntiorum mittendorum ab A1 ad A2, et vice versa ab A2 ad A1), in quo spondetur ad oppugnationem horae X convenire. spondent ambo imperatores indubitatam confirmationem habiturum socium (alterius generale) certo tempore X statuto oppugnaturum.

Esto A1 nuntium mittit ad A2 cum nuntio: "Hodie in media nocte impetum faciam!" Generalis A1 sine confirmatione a Generali A2. Si nuntius ab A1 pervenerit, tunc Generalis A2 confirmationem mittit cum nuntio: "Immo alba hodie occidamus." Nunc autem Generalis A2 nescit an eius nuncius advenerit necne, nihil fideiussit num simultas erit. Nunc Generalis A2 iterum confirmatione indiget.

Si eorum communicationem ulterius describimus, quamlibet multi cycli inter se permutandi sint manifestum fit, nullo modo praestare nuntios suos ambo imperatores accepisse (si modo vel nuncius intercipi possit).

Problema Duo Generalia magna est illustratio rationum distributorum simplicissimae ubi duae nodi sunt cum communicatione ambiguis. Hoc modo non habemus C% cautionem quod illi synchroni sunt. Similia problemata tantum latius postea in articulo tractata sunt.

Conceptum systematum distributorum introducimus

Systema distributum est coetus computatrorum (nodos postea appellabimus) qui nuntiis permutare possunt. Unusquisque nodi est quaedam ens autonoma. Nodus per se ipsa negotia procedere potest, sed ut cum aliis nodi communicet, nuntiis mittere et accipere debet.

Quam exacte chartae impleantur, quae protocolla adhibentur — hoc nobis hoc in loco non interest. Magni interest ut nodi systematis distributi inter se nuntiis missis commutare possint.

Ipsa definitio non valde perplexa respicit, sed ratio distributa rationem habere debet plurium attributorum quae nobis magni momenti erunt.

Attributa systemata distributa

  1. Concurrency - possibilitas simultanea vel concurrentia quae in systemate fiunt. Eventus autem qui duobus diversis nodis occurrunt, potentia concurrere videbimus, dum clarum eventum horum eventuum ordinem non habemus. Sed fere eam non habemus.
  2. Non global horologium. Ordinem rerum clarum non habemus propter horologii globalis defectum. In communi hominum mundo, eo quod horologia et tempus absolute solemus habemus. Omnia mutantur cum fit systemata distributa. Etiam horologiorum atomicorum ultra definitorum calliditatem habent, ac condiciones esse possunt ubi nesciamus quid primum duorum eventuum factum sit. Ergo nec tempori fidere possumus.
  3. Lorem defectum systematis lymphaticorum. Alia quaestio est: aliquid errare potest simpliciter, quia nodi nostri non perpetuo durant. Ferreus coegi deesse potest, virtualis apparatus in nube reboot potest, retis ictu et nuntios peribit. Praeterea, adiunctis nodis laborant, sed simul contra rationem operantur. Ultimum genus quaestionum etiam nomen separatum accepit: problema Byzantii. Exemplum popularis systematis distributi cum hoc problemate est Blockchain. Sed hodie speciale genus quaestionum non consideramus. Interesse erimus in condicionibus in quibus simpliciter unus vel plures nodi deficiant.
  4. Communicationis exempla (muntandi exempla) inter lymphaticorum. Iam constituimus nodos communicare permutandis nuntiis. Duae notae sunt exempla annuntiationis: synchrona et asynchrona.

Exempla communicationis inter nodi in systemata distributa

Synchroni exemplum - Scimus pro certo notum esse delta temporis finitum, quo nuntius praestatur ut ab uno nodo ad alium perveniat. Si hoc tempus praeteriit et nuntius non venit, tuto dicere possumus nodi defecisse. In hoc archetypo praevidere debemus tempora exspectat.

Asynchronous exemplar — In exemplaribus asynchronis finitum tempus exspectans consideramus, sed non est talis della temporis, post quod spondere possumus nodi defecisse. Illae. Tempus exspectans nuntium e nodi potest arbitrari longum esse. Haec definitio magni momenti est, de qua ulterius loquemur.

Notio consensus in systematibus distributis

Antequam conceptum consensus formaliter definiat, exemplum consideremus condicionis in qua opus est, nempe - Publica Apparatus Replicatio.

Legimus aliquos distributos. Velimus eam constantem esse, et notas parium numerorum in omnibus nodis systematis distributis continere. Cum unus e nodi discit novam aestimationem in ligno scripturum esse, eius munus fit hunc valorem omnibus aliis nodis offerre ut stipes in omnibus nodis renovatur et ratio ad novum statum convenientem movetur. In hoc casu, interest ut nodi inter se consentiant: omnes nodi consentiunt propositum novum valorem verum esse, omnes nodi hunc valorem accipiunt, et in hoc tantum casu omnes novi pretii stipem scribere possunt.

Aliis verbis: nemo nodi obiecerat magis pertinere ad informationem, et propositio pretii falsa erat. Conventio inter nodi et consensus in valorem unius recti accepti est consensus in systemate distributo. Deinde de algorithmis loquemur quae systema distributum praestandum est ut ad consensum perveniatur.
Schrödinger feles sine pyxide: problema consensus in systematibus distributis
Consensus algorithmus (vel simpliciter consensus algorithmus) formalius definire potest ut munus quoddam, quod systema distributum a statu A in statum B transfert. Hic autem status omnibus nodi acceptus est, omnesque nodi possunt illud confirmare. Cum evenit, hoc munus minime leve est sicut primo intuitu videtur.

Proprietates Consensus Algorithmus

Consensus algorithmus tres proprietates habere debet ut systema subsistat et aliquos progressus habeat in movendo a statu ad statum;

  1. pactum – omnes nodos recte operantes idem valere debent (in articulis haec proprietas etiam ad res tutas refertur). Omnes nodi, qui nunc funguntur (non defecerunt vel amiserunt contactum cum aliis) convenire debent et aliquo valore communi finali accipiendi.

    Refert hic intelligere, quod nodos in systemate distributo, quam tractamus, consentire volumus. Hoc est, nunc loquimur de systematibus in quibus aliquid simpliciter falli potest (exempli gratia quaedam nodi desunt), sed in hoc systemate nullae sunt nodi, qui consulto contra alios laborant (officium ducum Byzantinorum). Ob hanc proprietatem ratio consistens manet.

  2. Caesar - si omnes recte operantes lymphaticorum offerunt eundem valorem v, quod omnis nodi recte operans significat hunc valorem accipere debet v.
  3. Cessatio – omnes nodos recte operantes tandem certum valorem (proprietatem vivam) assument quae algorithmus permittit ut in systemate proficere possit. Singuli singuli nodi recte operandi debent valorem finalem recipere ac serius citius aut serius illud confirmare: "Pro me, hoc verum est valorem, cum tota ratione assentior."

Exemplum quomodo consensus algorithmus operatur

Proprietates autem algorithm esse non plane liquet. Ideo exemplo illustrabimus quod gradus simplicissimus consensus algorithmus percurrit systema cum exemplare synchrono nuntiandi, in quo omnes nodi tamquam exspectantur, nuntii non pereunt nec nihil rumpit (hoc vere accidit?).

  1. Omnia incipit cum propositione matrimoniali (Propose). Sumamus clientem nodi coniunctum nomine "Node 1" et transactionem coepisse, novum valorem ad nodi transeuntem - O. Posthac vocabimus "Node 1" offer. Propositus, "Node 1" nunc totam rationem notificare debet quam nova notitia habet, et nuntios mittit ad omnes alios nodos: "Ecce! Quid significet "O", venit ad me et illud scribere volo! Confirma quaeso te etiam in tigillo tuo "O" commemorare.

    Schrödinger feles sine pyxide: problema consensus in systematibus distributis

  2. Proximus scaena suffragatur ad valorem propositum (Voting). Quid est hoc? Fieri potest ut alii nodi informationes recentiores receperint, et notitias in eodem negotio habeant.

    Schrödinger feles sine pyxide: problema consensus in systematibus distributis

    Cum nodi "Node 1" propositum suum mittit, ceteri nodi ligna sua pro notitia in hoc eventu reprimunt. Si contradictiones non sunt, nodi nuntiant: “Ita, nulla alia notitia huic eventui habeo. "O" valor novissimae informationis quam meremur.

    Nodi respondere "Node" in alio casu possunt: ​​"Audi! Recentiores notitias de hac re habeo. Non "O", sed melius.

    In scaena suffragii, nodi decidunt: aut omnes eundem valorem accipiunt, aut alter eorum contra suffragatur, significans se notitias recentiores habere.

  3. Si suffragatio circum valuit et quisque in gratia fuit, tunc ratio ad novam scaenam movetur - Accepto valore. "Node 1" omnes responsiones ex aliis nodis et relationibus colligit: "Omnes constat de valore "O"! Nunc publice profiteor novam significationem nostram esse "O", eandem omnibus esse! Scribe in libello tuo, noli oblivisci. Scribe eam in epistula tua!

    Schrödinger feles sine pyxide: problema consensus in systematibus distributis

  4. Nodi reliqui confirmationem (Accepte) miserunt, qui valorem "O" scripsere, nihil novi hoc tempore allatum est (quaedam duo-phasis committunt). Post hoc significantem eventum, negotium distributum censemus confectum esse.
    Schrödinger feles sine pyxide: problema consensus in systematibus distributis

Sic, consensus algorithmus in causa simplici quattuor gradibus consistit: proponere, suffragium (votum), accipere (accipere), acceptationem confirmare (accipere).

Si aliquo gradu ad concordiam pervenire non potuimus, algorithmus rursus incipit, attentis informationibus nodis quae propositum valorem confirmare noluerunt.

Consensus algorithmus in systemate asynchrono

Antea omnia levia erant, quia de synchrono exemplaris nuntius loquebaris. Sed scimus in mundo huius temporis omnia asynchrone facere solere. Quomodo simile algorithmus operatur in systemate cum exemplaris asynchrono nuntiorum, ubi credimus exspectationem temporis responsionis nodi posse arbitrari longum (obiter, defectus nodi, etiam exempli causa considerari potest. nodi potest respondere ad libitum diu).

Nunc scimus quomodo consensus algorithmus in principio operatur, quaestio de lectoribus curiosis, qui hoc hactenus fecerunt: quot nodi in systematis N nodis cum exemplari asynchrono nuntium deesse possunt ut systema consensum adhuc attingere possit?

Recta responsio et justificatio post vastatorem.Rectam responsum: 0. Si vel unus nodi in systemate asynchrono deficiat, ratio consensum attingere non poterit. Probatur haec propositio in theoremate FLP notissima in quibusdam circulis (1985, Fischer, Lynch, Paterson, nexum cum originali in fine articuli): « Impossibilitas consensus distributi assequendi si saltem unus nodi deficiat. .
Schrödinger feles sine pyxide: problema consensus in systematibus distributis
Difficultas ergo Guys, asynchroni ad omnia usi sumus. Et hic est. Quomodo vivere?

Modo de theoria, de mathematicis loquimur. Quid significat "consensus" effici non potest, e sermone mathematico in nostram machinam translato? Hoc significat "fieri non semper", i.e. Casus est in quo consensus non consequitur. Qualis haec causa est?

Haec prorsus est violatio vitae proprietatis supra scriptae. Communem consensum non habemus, et ratio progredi non potest (non potest tempore finito perficere) in casu ubi responsionem nodis non habemus. Quia in asynchrono systemate tempus praevidebile nullum habemus responsum, et scire non possumus utrum nodi ingruat vel diu respondeat tantum.

Sed in usu solutionem invenire possumus. Algorithmus noster in casibus defectibus diu operari possit (potentialiter indefinite laborare potest). Sed in pluribus adiunctis, cum plurimi nodis recte operantur, in systemate proficiemus.

In praxi, exempla communicationis synchronae partim tractamus. Synchronia partialis sic accipitur: in generali casu asynchronum exemplar habemus, sed quaedam notio " temporis stabilitionis globalis" cuiusdam punctum temporis formaliter introducitur.

Hoc momentum in tempore non potest venire ad aliquod tempus longum, sed debet venire una die. Horologium virtualis terror annulabit, et ex eo momento tempus della praedicere possumus ad quod nuntii venturi sunt. Ex hoc tempore ratio ab asynchrono ad synchronum vertit. In praxi huiusmodi systemata praecise tractamus.

Paxos algorithmus consensus difficultates solvit

Paxos algorithms familia est quae consensum problematum pro parte synchronorum systematum solventium, possibilitati obnoxia est ut aliqui nodi deficiant. Paxos auctor est Vivamus Lamport. Proposuit formalem probationem de existentia et rectitudine algorithmi anno MCMLXXXIX.

Sed procul a levi probatione evasit. Prima publicatione solum anno 1998 (33 paginis) dimissa est, quam algorithmus descripsit. Cum evenit, difficillimum erat intellectu, et in 2001 explicatio articuli divulgati sunt, qui quattuordecim paginas tulit. Volumen evulgatum traditum est ut ostendat quaestionem consensus omnino non esse simplicem et post tales algorithmos ingentem vim laboris ab hominibus cultissimis iacentem esse.

Interestingly that Leslie Lamport himself noted in his lecture that in the second explanatory article there is one statement, one line (he not not specified which one), which can varie interpretari potest. Et propter hoc, magna multitudo modernorum Paxos exsecutiones omnino recte non operantur.

Distinctio analysis operis Paxos plus uno articulo caperet, quamobrem praecipuam algorithmi notionem brevissime illustrare conabor. In nexus in fine articuli mei materiam ulterioris tribuendi in hunc locum invenies.

Munera apud Paxos

Paxos algorithmus notionem munerum habet. Consideremus tria principalia (sunt modificationes cum muneribus additis);

  1. Auctores (vocabula quoque adhibenda sunt: ​​duces vel coordinatores). Hi sunt guys qui de novo aliquo valore usoris discunt et in partes ducis accipiunt. Eorum munus est novas propositiones circumagere valorem et actiones nodorum ulteriores coordinare. Praeterea Paxos permittit ut plures duces in quibusdam adiunctis praesentiam habeant.
  2. Acceptores (Voters). Hi sunt nodi qui certo valore suffragium admittunt vel reiciunt. Eorum munus est magni ponderis, quod ab illis pendet sententia: quem statum systema voluntatis (vel non) ad gradum consensus algorithmus sequitur.
  3. discentibus. Nodes qui simpliciter accipiunt et scribent novum valorem acceptum, cum status systematis mutatur. Iudicia non faciunt, notitias iustus accipiunt et ad finem user dare possunt.

Unus nodi potest plures partes in diversis adiunctis coniungere.

Notio quorum

Ponamus nos habere systema N lymphaticorum Earum maximus F nodis deficiant. Si nodi deficiunt, saltem habere debemus 2F+1 acceptor nodis.

Hoc necessarium est ut maiorem semper habeamus, etiam in pessima condicione, "bonorum" nodis recte laborantibus. Ille est F+1 Nodi boni, qui constat, et valor finalis acceptus erit. Alioquin locus esse potest in quo diversi coetus locales diversas significationes accipiant nec inter se consentire possint. Ergo maioritas absoluta requiritur ad suffragia facienda.

Communis idea quomodo consensus algorithmus Paxos operatur

Paxos algorithmus duas magnas gradus implicat, quae in duos gradus singulos vicissim dividuntur;

  1. Phase 1a: Para. Per tempus praeparationis dux (propositus) omnes nodos informat: “Novum suffragii tempus incipimus. Circum nova habemus. Numerus rotundus est n. Nunc suffragium incipiemus". Nunc enim solum refert initium novi cycli, sed non refert novum valorem. Munus huius statis est novum rotundum inchoare et unumquemque de suo singulari numero docere. Numerus rotundus maximus, debet esse pluris aestimatio quam omnes numeri suffragii prioris ab omnibus ducibus prioribus. Propter numerum rotundum quod aliae nodi in systemate cognoscent quam recens notitia ducis sit. Verisimile est alios nodos iam ex multo posterioribus ferendis suffragiis consequi et simpliciter narraturum ducem se post tempora esse.
  2. Phase 1b: Promissionis. Cum acceptor nodi numerum novae scaenae suffragii accepit, duo eventus esse possibilis sunt;
    • Numerus n novi suffragii maior est quam numerus suffragiorum praecedentium in quo acceptor participatus est. Tunc acceptor promittit ductori quod non participabit plura suffragia cum numero inferiori quam n. Si acceptor aliquid iam decrevit (id est, iam in secundo periodo aliquid valoris accepit), tunc valorem acceptum et numerum suffragii, quo eius promissio participata est, apponit.
    • Alioquin, si acceptor iam scit de voto superiori-numerato, potest simpliciter ignorare gradus praeparationis et non respondere principi.
  3. Phase 2a: Accipe. Dux responsum a quorum (plures nodi in systematis) expectare debet et, si numerus responsionum requisitus recipitur, duas optiones habet ad progressionem eventuum;
    • Quidam ex acceptoribus miserunt bona quae iam decreverant. In hoc casu dux valorem ex suffragio cum maximo numero deligit. Hunc valorem x vocemus, et nuntium omnibus nodis emittit sicut: "Accipite (n, x)", ubi primus numerus suffragii est numerus ex suo proposito gradu, et secundus valor est quem omnes convenerunt; i.e. valor pro quo actu suffragium imus.
    • Si nemo ex acceptoribus aliqua bona misit, sed simpliciter suffragium in hoc loco polliciti sunt, dux eos invitare potest ad suffragandum pro suo valore, cuius valor in primis princeps factus est. Vocemus y. Nuntium mittit ad omnes nodos sicut: "Accipe (n, y)", similem priori eventui.
  4. Phase 2b: Acceptae. Praeterea, acceptor nodi, accepto nuntio a duce "Accipe(...)", ei assentitur (confirmationem mitte omnibus nodis quae cum novo valore consentiunt) tantum si aliquid non promiserunt) . princeps est participare suffragia per numerum n'> nsecus confirmationem instantia neglegunt.

    Si maior pars nodis principi respondit, et omnes novi pretii confirmati sunt, tunc novus valor acceptus habetur. euge! Si maior pars non perventum est vel nodi sunt qui novum valorem accipere noluerunt, omnia incohata sunt.

Sic algorithmus Paxos operatur. Singulis his gradibus multas subtilitates habet, nos in re non consideravimus varias culparum rationes, problemata plurium ducum et multo magis, sed propositum est solum ut lectorem ad rerum orbem ad altam computationem distribuendam inducamus.

Notatu etiam dignum est quod Paxos non solum sui generis, sunt aliae algorithms, v.gr. ratissed haec est argumentatio alterius articuli.

Ducet ad materiae ad ulteriorem studium

Inceptos massa:

Leslie Lamport level:

Source: www.habr.com

Add a comment