Visszafordíthatatlan részletek CFM. BBR rendszer: a torlódások szabályozása közvetlenül forgalma

    Lásd az orosz szinonimák és hasonló kifejezések szótárát a jelentés szempontjából. alatt. Ed. N. Abramova, M.: Orosz szótárak, 1999. Board Bane, orosz szinonimák búvár szótár ... Szinonim szótár

    Főtt, nyomom; járókerék. (beszélgetés.). Board, büszkélkedhet. P. Új ruhák. Ozhegov magyarázata. S.I. Ozhegov, N.Yu. Swedov. 1949 1992 ... Ozhegov magyarázó szótár

    NESOV. . 1. Beszéljen magáról vagy egy kereskedelmi dicsérettel; forraljuk. 2. Brandly megígéri valamit. Magyarázó szótár Efremova. T. F. Efremova. 2000 ... Az orosz nyelv modern magyarázatos szótárja

    Hajó, büszkélkedhet, büszkélkedhet, büszkélkedhet, büszkélkedhet, büszkélkedhet, büszkélkedhet, büszkélkedhet, büszkélkedhet, büszkélkedhet, büszkélkedhet, büszkélkedhet, büszkélkedhet, büszkélkedhet, büszkélkedhet, bootos, dicséretet, büszkélkedhet, büszkélkedhet, büszkélkedhet, büszkélkedhet, ... ... szóformák

    tábla - Dicséret, hogy Jay, megyek, ez ... Orosz helyesírási szótár

    tábla - (i), dicséret / yus, la / enni, la / US ... Az orosz nyelv orpográfiai szótárja

    Lásd Boast ... enciklopédikus szótár

    tábla - lásd dicséretet; I / y, én / enni; NSV.; . Dicséret / enni egymás előtt. Dicséret az erőd ... Sok kifejezés szótára

    tábla - SHA / CVV / Y / T / SIA ... Morphemno-spell szótár

    A fajta (csomó) büszkélkedhet, hogy büszkélkedjen a WED nemes eredetével. A fajtánk a királyoknál szolgált. Vö. És élünk vele, csak veszekedni igen, büszkélkedünk. Gyűrűk. Minden Talánod. Lásd az orosz ember rokonok nélkül, nem él. Lásd: Repülő ... ... ... Mikhelson nagy vastag-frazológiai szótár

Könyvek

  • Második könyv az Universal Delusions, John Lloyd, John Mitchinson. 2006-ban jelentek meg Angliában az első "Universal Misconceptions" első "könyve". És azóta, majd 30 országban asztali könyv lett azok számára, akik az igazságot vágyják. Talán eltolódott ...
  • Vers a "zöld föld" könyvből, Evgeny Klyuev. A mai irodalom megjelenése, amelyet Evgeny Klyov után neveztek el, emlékeztet egy tündérmesére a kertészről. A szorgalmas és magányos mester sok éven át termesztette a falú kertjét: nyugtalan virágok, törékeny ...

Az ultra-egyszerű idegenforgalmi felszerelés egyre bonyolultabbá válik. Ez a tendencia a legnyilvánvalóbb az egyes menedékhelyek folyamatosan fejlődő kategóriájában, egy jobban ismert jogosultsággal bivan táskák ("Bivi").

Ha nem ismeri meg a Bivuakov opciók meglévő változatosságát, akkor itt az ideje, hogy javítsa meg. A különböző választások és átgondolt tervek meglepődnek egy független utazók számára, akik a hordozható berendezések súlyának csökkentésére törekszenek.

Ki használja a Belling táskákat? Emberek, akik:

  • Gyakran egyedül utaznak;
  • Készíts egy Bigval mászást, amely több mint egy napot igényel;
  • Gyakran gyakori kerékpárok;
  • Fontolja meg minden hordozható rakományt;
  • Ne aggódj az alvás szoros térben.

Alapok

Bivan táskák Kitalálták őket, hogy megfeleljenek a hegymászók igényeinek kielégítésére, akiknek szüksége volt a rossz időjárásra, a több nap alatt elfoglalt felemelkedések során, különösen a nagy falakon (nagy falak).

A korai harangos táskák csak egy vízálló nylon tok volt a hálózsákokhoz - jól teljesítették a hálózsák esővé és középszerű szellőzési képességek védelmének függvényét.

Napjainkban a belling táskák tervezése két réteg szövetet tartalmaz. Az alsó szint általában tartós nylon-származékból áll (általában tafta (tafta), néha Oxford), amelyet uretánnal borítanak, hogy vízállóvá tegyék. Ugyanezt az anyagot használják a legtöbb gyártó a padlótermékek gyártásában.

A felső szint általában egy Ripstope nylonból (könnyebb ruhával) készül, és vízálló / légáteresztő laminátummal, például gore-tex ®, tegaltex vagy rei elemekkel dolgozik.

Idővel az eredeti bivouake egy kapcsolódó terméket hoz létre, amely hasonló a sátor - bivi típusú menedékhöz hasonló jellemzőkkel rendelkezik ( bivy menedék.). Ha egy kicsit nehezebb, ez a fajta menedék két sajátosságai vannak, amelyek hiányzik a hagyományos Bivia - a védett szabad tér bővített területe és teljes védelem a rossz időjárási viszonyok és rovarok ellen. Ezeknek a funkcióknak köszönhetően az ilyen típusú menedék népszerűsége népszerűsége a fogyasztóknak, akik szeretik a túrázást, különösen az utazási lámpákban (bányászat).

Ezenkívül kétrétegű sátrak esőszerű kategóriája van. Az ilyen sátrak átlagos súlya (kb. 1,8 kg) nagyobb, mint a standard BIVI (900 g és kevesebb) súlya, de több belső teret kínálnak egy szerény tömeggel együtt - egy komfortos érv a szólisták számára, akiknek szüksége van a lehetőségre Egy ülő helyzet a menedékhelyükben, de fontos az utazási fény. Példák: Rei sololit; Kelty clark; Walrus mikro Swift; Sierra Designs Clip zseblámpa.

Bivan táskák

Még a modern szövetek használatával is tervezett, egy hagyományos belling táska, elsősorban a hegymászóknak vagy az ideológiai minimalistáknak - az emberek, akik lyukakat fúrnak a kanalakon, hogy több grammat menthetnek.

Egy közönséges Belling Bag két alapvető funkciót végez.: Védi a hálózsákot nedvességtől, és növeli a hőmérsékletjelzőit 5 ° C-on.

Bivi. Nyitott területe van a fejnek. Amikor esik, néhány nedvesség bejuthat a fej védelem nélküli lyukán keresztül. A nedvesség minimálisra csökkentése érdekében meg kell húzni, hogy húzza meg a csipke, amely a lyuk körül található. Természetesen, így a fej lyuk egy orrlyukává válik, amely néhány ember elfogadhatatlan lesz. De ez egy kis kompromisszum a turista számára, inkább az ultright berendezésekkel való utazás, amely nagyra értékeli a Bivar táskákat a minimális súlyukért.

Egyéb megfontolások

Néhány modell lehetővé teszi, hogy hozzon létre egy bivan táska, amely lehetővé teszi, hogy rendezni berendezés vagy étel, míg a meleg és védett a rossz időjárás.
A BIVI teljes hosszának villámja hasznos lesz, amely több lehetőséget biztosít a szellőzéshez.
Figyeljen a varratok gyári kempingjére, a fejlett márkák általában ezt a hasznos funkciót kínálják.
Egyes modellek olyan hevederekkel vannak felszerelve, amelyek hozzájárulnak a szőnyeg helyén.
Meleg körülmények között néha az emberek nem használnak hálózsákot egyáltalán, de egyszerűen aludj közvetlenül a Belling Bagban.

A Belling Bags tipikus képviselői: Moonstone személyi menedék; Szabványos bivy a szabadtéri kutatásokból; Rei Cyclops.

Bivi menedékhelyek

A Belling Bags evolúciója egy alacsony sátoros kategóriát eredményezett, amelyet bivy menedékhelyek (bivy menedékhelyek) menedékhelyek. Ezek a modellek betétek a rácsból a fej lyuk területén, valamint a kis felfüggesztési rendszerek (csapok, ívek), amelyek a szövetet a turista arcán tartják. A BIVI típusának menedékében a rovarok és az eső teljes elszigetelését eredményezheti. Ez bizonyos leleményességet igényelhet, hogy biztosítsa a szellőzést a zuhany alatt, de ez meglehetősen lehetséges.

Sok turista hosszú ideig és könnyűre utazik, a BIVIA típusának menedéke a fejterületen további ék alakú erősítésével, amely elegendő kényelmet biztosít. Az állandó esőzéseknél a Bivi menedékhelyek elveszítik vonzerejüket; Nehéz lesz túlélni a vihar túlélését a menedékházban, amelyben lehetetlen ülő helyzetbe kerülni. Azonban a bivin menedékhelyek használata kedvező időjárási viszonyok, például Sierra Nevada (Sierra Nevada). Példák: Integrált tervek unishelter; Advanced Bivy Sack a szabadtéri kutatásból.

Egyéb megfontolások

A Biblia túl szűk az Ön számára? Kezdetben azt gondolhatod. De ne dobja ki azonnal ezt a menedéket. Természetesen a sátor tágas, biztonságos menedéket kínál a fej fölött lévő tetővel. A BIVI azonban erősebbé teszi a "egyesítést" a természetgel. Majdnem olyan, mint egy álom a csillagok alatt. Ugyanakkor elegendő védelmet nyújt az eső és a rovarok ellen, ami szintén alacsony súlyú. Mindazonáltal, ha korlátozott helyen találsz a szorongásodat, akkor valószínűleg nem lesz kényelmes a Bivi-ban, különösen rossz időben. Ebben az esetben vegye figyelembe a sátor vásárlásával.

Hogyan kering a levegő a BIVI-n belül? A lélegző / vízálló laminátum, például a Gore-Tex, lehetővé teszi a nedvességet, hogy elpárologjon a szöveten. Anélkül, hogy lehetővé tenné, ugyanakkor esőcseppek szivárognak a ruhán keresztül. A légáteresztő / vízálló Bivar táskák a legjobban azt mutatják, ahol a turisztikai meleg, izzadt test hideg és száraz körülmények között nyugszik. Az esős körülmények között, annak ellenére, hogy a modern Bovi elegendő számú átfedő anyaggal és cipzárral készült, aligha teljesen rögzíthető. A kézi szellőztetés segít fenntartható szintű páratartalmat fenntartani a Belling Bagban.

Lehet-e kondenzátumot alkotni a bivi belsejében? Potenciálisan igen. Lényegében Bivi egy rétegű sátor. A testből és tüdőből származó meleg párolgás, az emelés, a hidegebb levegővel szemben. Amikor a gőz érintkezik a harangozó táska laminátumával, a levegő már nem szállítható minden nedvességet, így az összes mennyisége összeszerelhető a vizsgált szövet belsejében. Egy kétrétegű sátorban ez a nedvesség lélegző belső napellenzővel halad át, és kívülről helyezkedik el. A BIVI esetében egy kis mennyiségű nedvességű klaszterhez vezethet belső oldalán. Hideg körülmények között a belsejében jégkéreg kialakulásához vezethet.

Van egy hálózsák egy bivan táskában? Az esős (nedves) időjárási körülmények között a gore-tex szövet, néha hideg és nedves érzeteket okozhat, ha érintkezik a bőrrel, de ez csak egy érzés, nem pedig szövet fúvott. A jó szellőzés segít minimalizálni ezt az érzést.

Rövid kimenetel

Bivar táskák: Jó választás lesz a hegymászók és a minimalista utazók számára, akik rövid (egy- és kétnapos) túrákba mennek. Gondoljon, ami jól illeszkedik a spártai körülményekhez.

BIVI menedékhelyek: népszerű az ultrahangos utazók soraiban, amelyek a kerékpározás hosszú távon utaznak. Jó választás a turisták számára, akik kis mennyiségű csapadékmennyiséggel utaznak. További hely és teljes védelem teszi őket elfogadható lehetőséget azoknak a turistáknak, akik képesek pszichológiailag alkalmazkodni ahhoz, hogy az éjszakát korlátozott helyen töltsék el. Keskeny, de fény.

Kis méretű sátrak: Néhány modell a 2 kg-os tartományban a tér és a szerény súly kombinációját kínálja; Sok esetben az átlagos turista számára előnyös választás lesz.

  • Átruházás

A szűk keresztmetszetek sávszélességének mérése a kettős átjárási időcsomaghoz

Minden paraméterben a mai internet nem tudja mozgatni az adatokat olyan gyorsan, amennyire csak kell. A világon a legtöbb felhasználó a világon néhány másodperc múlva késedelme van néhány percig: a nyilvános WiFi pontok a repülőtereken és konferenciákon még rosszabbak. A fizikusokat és a klimatológusokat a világ minden táján kollégáival kapcsolatos adatokkal kell kicserélni, de szembesülnek azzal, hogy gondosan átgondolt multi-hegesztési infrastruktúrájuk gyakran csak néhány megabitnyi másodpercet jelent a transzkontinentális vonalakon.

Ezek a problémák az architektúra választéka miatt merültek fel, amelyet a 80-as években TCP-torlódási ellenőrzési rendszer létrehozásakor tettek ki - a csomagok elvesztése úgy döntött, hogy "lekvár". Ezeknek a fogalmak egyenértékűsége az adott időpontban tisztességes volt, de csak a technológia korlátozása miatt, és nem definíció szerint. Ha a NIC-t (hálózati interfészvezérlők) korszerűsítették a Megabitáltig Gigabit sebességgel, és a memória chipek - a kilobájt gigabájtáig, a csomagok elvesztése és a stroke közötti kapcsolat kevésbé nyilvánvalóvá vált.

A modern TCP-ben, a csomagok elvesztésének torlódásának szabályozása - még a legfejlettebb technológiájában is - ennek a problémáknak a fő oka. Ha a szűk keresztmetszetek pufferei túl nagyok, a csomagok elvesztésének ellenőrzési rendszere teljes, ami túlzott hálózati pufferelést okoz. Ha a pufferek túl kicsiek, akkor a csomagok elvesztésének ellenőrzési rendszere helytelenül értelmezi a csomag elvesztését a torlódások jeleként, amely a sávszélesség csökkenéséhez vezet. Az ilyen problémák megoldása alternatívát igényel a csomagok torlódásának szabályozásához. Ha ezt az alternatívát megtalálja, akkor meg kell rendezni, hol és hogyan történik a torlódás.

Érintse meg és keskeny hely

Bármikor (teljes duplex) TCP-kapcsolatban csak egy lassabb vagy palacknyak Minden irányban. A szűk keresztmetszet fontos a következő okok miatt:
  • A maximális adatátviteli sebességet összekapcsolja. Ez egy tömörítetlen adatfolyam fő tulajdonsága (például egy hatsugaras autópálya órákonként, ha baleset miatt az út egy kis része csak egy csíkra korlátozódik. A forgalom a forgalom előtt A baleset nem fog gyorsabban mozogni, mint a szalagon keresztül.
  • Ez az a hely, ahol a sorok folyamatosan kialakulnak. Csak akkor csökkennek, ha a kimenő áramlás intenzitása a "palack nyakából" meghaladja a bejövő áram intenzitását. A maximális átviteli sebességgel működő vegyületek esetében a kimenő áramok keskeny helyen mindig magasabb intenzitása van a kimenő áramnak, így a sorok a "palack nyakába" mozognak.
Nem számít, hogy hány link a kapcsolatban, és amelyek a sebességet külön-külön, a TCP szempontból komplex útvonal a TCP-ben, mint egyetlen kapcsolat, ugyanolyan RTT-vel (a csomag kettős átjárási ideje, azaz a áthaladási idő mindkét végén) és a szűk keresztmetszet sávszélessége. Két fizikai korlátozás Rtprop (Kerek utazás szaporítási idő, kettős átadási idő) és BTLBW. (Szűk keresztmetszet, szűk keresztmetszet) befolyásolja az átvitel teljesítményét. (Ha a hálózati útvonal egy anyagcső volt, az RTProp hosszú cső, és a BTLBW átmérője).

Az 1. ábrán az RTT és az átviteli sebesség kombinációját mutatja adatmennyiséggel. repülés közben, Vagyis az inflight (adatküldés, de a szállítás megerősítése nélkül). A kék vonalak mutatják az RTProp, a zöld vonalak korlátozását, a BTLBW-t és a piros vonalakat - egy üvegpuffert. A szürke területeken működő műveletek lehetetlenek, mert legalább egy korlátozást ellentmondanak. A korlátok közötti átmenetek három terület (App-Limited, Bandwidth-Limited és buffer-Limited) kialakulásához vezetett, kiváló minőségű viselkedéssel.

1. kép

Amikor a repülés nem elegendő adat a cső kitöltéséhez, az RTProp meghatározza a viselkedést; Ellenkező esetben a BTLBW dominál. A határvonalak a ponton metszi, ez egy BDP cső (sávszélesség-késleltetési termék, derivatív sávszélesség és késleltetés). Mivel a cső befejeződött ezen a pont után, akkor a többlet kesort hoz létre egy keskeny helyre, ami az RTT lineáris függőségét eredményezi a felső táblázatban feltüntetett inflúziákról. A csomagokat eldobják, ha a többlet meghaladja a puffer kapacitását. Torlódás - Ez csak folyamatosan megtalálja a BDP vonal jobb oldalát, és torlódás szabályozása - Egy bizonyos rendszer, amely korlátozza a BDP vonal jobb oldalán, átlagosan az adatokat továbbítják.

A TERÜLET KÖRNYEZETVÉDELMEZTETÉSE A TERÜLET KÖRNYEZETÉNEK KÖRNYEZETBEN A csatorna sávszélességével (Bandwidth-Limited), biztosítva a szűk keresztmetszet teljes sávszélességét nagy késések és gyakori csomagok elvesztése miatt. Azokban a napokban, amikor a memória az út volt, a puffer mérete csak kissé meghaladta a BDP-t, ami minimálisra csökkentette a veszteségek szabályozásának redundáns késleltetését. A memóriaárak későbbi csökkentése a túlzott hálózati pufferelés növekedéséhez és az RTT növekedéséhez vezetett a milliszekundum helyett másodpercekig.

A csatorna sávszélesség által korlátozott terület bal szélén van egy munkatér a legjobb feltételekkel, mint a jobb. 1979-ben a Leonard Kleinock azt mutatta, hogy ez az operációs pont optimális, maximalizálja a tényleges sávszélességet a késedelmek és veszteségek minimalizálásával mind az egyes vegyületek, mind a hálózat egészére. Sajnos, körülbelül ugyanabban az időben, Jeffrey Jaffa bizonyította, hogy lehetetlen létrehozni egy elosztott algoritmust, amely e működési pontban konvergál. Ez a következtetés megváltoztatta a kutatási irányt. Ahelyett, hogy egy elosztott algoritmust keresne, amely a csaj optimális munkakörét célozza, és a kutatók az alternatív megközelítéseket tanulmányozták a torlódások szabályozására.

A Google csoportunk órái órákat töltenek a TCP csomag fejlécek elismerésével a világ minden tájáról, megértve az anomáliákat és a viselkedési patológiát. Általában először megtaláljuk az útvonal, az RTPROP és a BTLBW kulcsfontosságú jellemzőit. A hálózati tálcákból származhat, azt sugallja, hogy a Jaffe megkötése nem lehet olyan egyértelműen, ahogy úgy tűnt. A következtetése az alapvető mérési bizonytalanságra támaszkodik (például, ha az RTT mért növekedését az útvonal hosszának változása okozza, a szűk keresztmetszet sávszélességének csökkenése vagy a forgalom miatt bekövetkező késedelem növekedése másik kapcsolatból). Bár lehetetlen megszüntetni az egyes mérések bizonytalanságát, de a kapcsolat viselkedése időben világosabb képet ad, ami arra utal, hogy a bizonytalanság kiküszöbölésére létrehozott mérési stratégiák alkalmazása.

Ezeket a méréseket egy megbízható nyomkövetési kontúrral történő kombinálásával az irányítási rendszerek legújabb eredményeinek alkalmazásával reményezheti egy elosztott jegyzőkönyv kidolgozására a torlódások szabályozására, amely egy érvényes telekre reagál, és nem veszteséges csomagok vagy rövid távú késedelem a sor. És nagyon valószínű, hogy a csaj optimális munkakörnyezetében konvergál. Tehát a vezérlőrendszer fejlesztésének hároméves projektje két paraméter mérésén alapul, amelyek jellemzik az útvonalat: a csomag szűk keresztmetszete és időtartama, vagy a BBR.

Egy keskeny helyre jellemző

A kapcsolat maximális sávszélességgel és minimális késleltetéssel működik, amikor (sebességegyensúly) a csomagok érkezési rátája keskeny helyen BTLBW és (teljes csatorna) A járat összes adatainak teljes mennyisége a BDP ().

Az első feltétel biztosítja, hogy egy keskeny helyet használják 100% -ban. A második garantálja, hogy elegendő adatunk van, hogy megakadályozzuk az egyszerű szűk keresztmetszetet, de ne túllépje a csatornát. A sebességmérleg állapota önmagában nem Garantálja a sor hiányát, csak állandó méretét (például, ha a kapcsolat 10 kötegelt kezdeti ablakot küld egy ötparkú BDP-hez, akkor pontosan ugyanolyan sebességgel működik egy szűk keresztmetszet, majd tíz kezdeti csomagból kitölti a csatornát, és a felesleg egy olyan keskeny helyen áll, amely nem lesz képes gyorsan). Ugyanígy a teljes csatornás állapot nem garantálja a sor hiányát (például a kapcsolat BDP-t küld a BDP / 2-re, és teljesen keskeny helyet használ, de az átlagos sor BDP / 4). Az egyetlen módja annak, hogy minimalizálja a várólistát egy szűk keresztmetszetben és az egész csatornában, hogy ugyanakkor megfeleljen mindkét feltételnek.

A BTLBW és az RTPROP értékek megváltoznak a kapcsolat élettartama alatt, ezért folyamatosan értékelni kell őket. Jelenleg a TCP nyomon követi az RTT-t (időintervallum az adatcsomag küldése a szállítási üzenethez), mert meg kell határozni a veszteséget. Bármikor


Hol képviseli a "zaj" az útvonal mentén, a címzett stratégiáját a visszaigazolás késedelmével, a megerősítések felhalmozódásával stb. Az RTProp a kapcsolat fizikai jellemzői, és csak akkor változik, ha a csatorna megváltoztatja. Mivel a csatorna változásai egy időskála alatt fordulnak elő RtpropEzután pártatlan és hatékony időbecslés lesz
Ez az, hogy az indítás az időablakban (amely általában több tíz másodpercről percre).

Az RTT-vel ellentétben a TCP specifikációban semmi sem követeli meg a szűk keresztmetszet sávszélességének nyomon követését, de ennek jó értékelése a szállítási sebesség nyomon követését követhető. Ha a csomag szolgáltatási visszaigazolását visszaküldi a feladónak, akkor az RTT csomagot mutatja be, és bejelenti az adatok szállítását a repülés során, amikor a csomag indul. A csomag küldése és a visszaigazolás átvétele közötti átlagos szállítási arány az elmúlt időpontban szállított adatok hozzáállása :. Ez a sebességnek kisebbnek kell lennie, vagy egyenlőnek kell lennie a szűk hely sávszélességével (az érkezés összege pontosan ismert, hogy minden bizonytalanság rejlik, amelynek nagyobb vagy egyenlő a jelen érkezési intervallummal; ezért a hozzáállásnak kell lennie A jelenlegi szállítási aránynál kisebb vagy egyenlő, amely saját maga a sorban korlátozott a szűk keresztmetszet tetején). Következésképpen a maximális szállítási sebesség ablak hatékony, BTLBW kiszámítható becslés:


ahol az időablak általában hat-tíz RTT.

A TCP-nek rögzítenie kell az egyes csomagok küldési időt az RTT kiszámításához. A BBR kiegészíti ezeket a rekordokat összesen teljes szállított adatokkal, így az egyes visszaigazolási jelentések egyidejűleg és az RTT-nek való megérkezése, valamint a szállítási sebesség mérésének eredménye, amelyet a szűrők RTPROP-ba és BTLBW becslésekké alakítanak át.

Ne feledje, hogy ezek az értékek teljesen függetlenek: az RTProp változhat (például az útvonal megváltoztatásakor), de ugyanaz a szűk keresztmetszet, vagy a BTLBW változhat (például a vezeték nélküli csatorna sávszélesség változásai) az útvonal megváltoztatása nélkül. (Mindkét korlátozó tényező függetlensége az oka annak, hogy tudniuk kell, hogy a viselkedést a szállítási útvonalon történő szállításkor társítják). Mivel az RTProp csak a BDP bal oldalán látható, és a BTLBW csak a jobb oldalon található az 1. ábrán, aztán engedelmeskednek a bizonytalanság elve: amikor a kettő közül az egyik mérhető, lehetetlen második. Intuitív, hogy ez a következőképpen értelmezhető: A csatorna kapacitásának meghatározása érdekében túlterheltek, ami olyan váratokat hoz létre, amely nem teszi lehetővé a csatorna hosszát. Például egy lekérdezési / válaszprocollal rendelkező alkalmazás soha nem küldhet elegendő adatokat a BTLBW csatorna és megfigyelés betöltéséhez. A nagy adatátviteli adatátvitel nagy mennyiségű adatot tölthet az összes idejét egy korlátozott sávszélességű területen, és csak az egyetlen RTPROP mintát kapja az RTT-től az első csomagban. A bizonytalanság inherens elve azt jelenti, hogy az útvonal két paraméterének helyreállítására vonatkozó becslések mellett olyan állatoknak kell lenniük, amelyeket egyidejűleg figyelnek meg, és az aktuális működési pontban, és az információként megtalálható elveszíti a frissességet, hogyan kell menni az operációs ponthoz, ahol több újabb adatokat kaphat.

Csomagáramlás leképezése a szállítással

A fő BBR algoritmus két részből áll:

Amikor megerősítést kapunk (ACK)

Minden megerősítés új RTT-t és az átlagos szállítási sebességet mér, amely frissíti az RTPROP és a BTLBW értékelést:

Funkció Office (Packet) RTT \u003d most - Packet.Sendtime Update_Min_Filter (RTPROPFILTER, RTT) szállított + \u003d csomag. CurrentMax ||! Packet.App_limited) Update_max_filter (BTLBWFilter, DeliveryRate) Ha (App_Limited_until\u003e 0) App_Limited_until \u003d app_limited_until - packet.size
Ha szükség van a bizonytalanság problémájára, amelyet az utolsó bekezdésben említettek: A feladók csak az alkalmazásra korlátozódhatnak, azaz az alkalmazások véget vethetnek a hálózat kitöltéséhez. Ez egy nagyon tipikus helyzet a forgalmi kérés / válasz miatt. Ha lehetséges, de nincs adat, a BBR jelzi a megfelelő sávszélesség-mintákat, mint "korlátozottan az alkalmazás", azaz app_limited (lásd: Pseudo-Code Send ()). Ez a kód határozza meg, hogy mely minták közé tartozik a sávszélességi modellben, így tükrözi, hogy ez a hálózati korlátozások, és nem az alkalmazás korlátai. A BTLBW egy szilárd felső szállítási sebességkorlátozás, így a mérési eredményekkel kapott szállítási sebesség nagy, mint a BTLBW aktuális becslése, az érintett BTLBW minősítést jelenti, függetlenül attól, hogy a minta az alkalmazásra korlátozódott-e vagy sem. Ellenkező esetben az alkalmazás korlátozásával rendelkező mintákat eldobják. (Az 1. ábra azt mutatja, hogy a régióban a bejuttatott alkalmazáskorlátozással a BTLBW paraméter alábecsülnek). Az ilyen ellenőrzések megakadályozzák a BTLBW szűrőt, amely kitölti azokat az értékeket, amelyek miatt az adatküldés lelassulhat.

Amikor az adatok elküldésre kerülnek

A BBR szűk keresztmetszetéről indulási sebességgel rendelkező csomagok érkezési sebességének összekapcsolása minden adatcsomagot nyomon követi. (BBR-nek meg kell egyeznie mérték. Szűk keresztmetszet: Ez azt jelenti, hogy a nyomon követés az architektúra szerves része és a munka alapvető része - ezért pacing_Rate. Ez a fő vezérlési paraméter. Segédparaméter cwnd_gain. Ties kiterjed A BDP kis sokaságával a tipikus hálózati patológiák és a címzett feldolgozásához (lásd a fogvatartottakkal kapcsolatos fejezetet és a feszített megerősítést). Koncepcionálisan a TCP-ben történő küldési eljárás úgy néz ki, mint a következő kód. (Linux alatt az adatok küldése hatékony tömegkarbantartási eljárást használ FQ / ingerlés, amely a multi-hygabit csatornákon egyetlen kapcsolat BBR lineáris teljesítményét biztosítja, és több ezer csatlakozást folytasson alacsonyabb sebességgel, enyhe wericialis CPU-val.

Funkció Küldés (csomagolás) bdp \u003d btlbwfilter.currentmax × rtpropfilter.currentmin, ha (inflight\u003e \u003d cwnd_gain × bdp) // Várja meg az ACK-t vagy az újraküldési időtúllépést, ha (most\u003e \u003d NextSendtime) csomag \u003d NextPacketoSend (), ha (! Csomag) app_limited_until \u003d inflight Return Packet.App_limited \u003d (app_limited_until\u003e 0) packet.sendtime \u003d most packet.delivered \u003d szállított csomagkészlet.delivered_time \u003d Delivered_Time Ship (csomag) NextSendtime \u003d most + csomagolás × btlbwfilter.currentmax) Timercallbackat (Küldés, NextSendtime)
Fenntartható viselkedés

A BBR által küldött adatok sebességét és mennyiségét csak a BTLBW és az RTPROP-on függ, így a szűrők nemcsak a keskeny hely korlátai becsléseit irányítják, hanem azok használatát is. Ez létrehoz egy nem szabványos kontrollhurkot ábrázolva a 2. ábrán, amely az RTT (kék), az infravörös (zöld) és a szállítási sebesség (piros) 700 milliszekundumhoz (piros) látható egy 10 megabit 40 milliszekundum patakhoz. A zsírszürke vonal a szállítási sebességnél a BTLBW Max szűrő állapota. Háromszög formákat nyert ciklikus használata Pacing_Gain együttható BBR, hogy meghatározzák a növekedés BTLBW. A ciklus minden egyes részében lévő átviteli együtthatót az érintett adatokhoz igazítják. Ez az együttható az RTT-en korábban dolgozott, amikor az adatokat elküldtük. Ezt a bal oldali eseménysorozat leírásában horizontális szabálytalanságok mutatják.


2. ábra.

A BBR minimalizálja a késleltetést, mert az idő nagy része ugyanazzal a BDP-vel halad át a cselekvésben. Ennek köszönhetően egy szűk keresztmetszet mozog a feladónak, hogy a BTLBW növekedése láthatatlanná váljon. Következésképpen BBR rendszeresen költ a RTPROP intervallum értéke Pacing_Gain\u003e 1, ami növeli a sebességet a küldő és a hangerőt a küldött adatok megerősítése nélkül Szállítási (fedélzeti). Ha a BTLBW nem változik, akkor a sor egy keskeny hely előtt jön létre, növeli az RTT-t, amely megmenti az állandó szállítót. (A sor elszámolható, ha adatokat küld a PACING_GAIN kompenzációs értékével< 1 для следующего RTprop). Если BtlBw увеличивается, то скорость deliveryRate тоже увеличивается, а новое максимальное значение фильтра немедленно увеличивает базовую скорость отслеживания (pacing_Rate.). Emiatt a BrR alkalmazkodik egy szűk hely új méretéhez exponenciálisan gyorsan. A 3. ábra mutatja ezt a hatást a 10-megabites-40-milliszekundumos patak, amely BTLBW hirtelen megnő a 20 Mbps 20 másodperc után a stabil működés (a bal oldalán a grafikon), majd a bemélyedések akár 10 Mbps a másik után 20 másodperc Állandó működés 20 mbit / s (jobb oldali része a grafikon).


3. ábra.

(A lényegében a BBR egy egyszerű példa a Max-Plus vezérlőrendszerre, a nem szabványos Max-Plus algebra alapján alapuló vezérlőrendszerekre. Ez a megközelítés lehetővé teszi, hogy a sebességet [az átviteli együttható vezérli max] Függetlenül a sor növekedésétől [az átviteli együttható által ellenőrzött átlagos.]. A mi feladatunkhoz egy egyszerű, feltétel nélküli kontroll hurokba kerül, ahol a fizikai korlátok változásaihoz való alkalmazkodást automatikusan elvégzik a korlátozásokat kifejező szűrők változásával. A hagyományos rendszer megkövetelné a több kontrollkör létrehozását egy komplex véges gépbe, hogy ilyen eredményt érjen el).

Viselkedés, amikor egyetlen BBR-áramot indít

Modern megvalósítások kezelni az eseményeket, mint a startup (startup), záró (lekapcsolás) és veszteségtérítésre (veszteség Recovery) algoritmusok segítségével, amely reagál a „eseményeket” nagy számú kód sorokat. A BBR a fenti kódot használja (az előző fejezetben "egy csomagáramlás leképezése a szállítással"), mindent. Az eseményfeldolgozás az "ÁLLAMOK" sorrend áthaladásával történik. Az "államok" magukat egy táblázat határozza meg, amely az együtthatók egy vagy több rögzített értékét és kilépési kritériumokat tartalmaz. A fő időt a POBEBW államban töltik, amelyet a "viselkedés állandó állapotban" fejezetben ismertetünk. Üzembe helyezés és leeresztés állapota a kapcsolat elindításakor (4. ábra). A kapcsolat feldolgozásához, ahol a sávszélesség 12 megrendeléssel növekszik, az üzembe helyezési állapotban a BTLBW bináris keresési algoritmusa valósul meg, ahol az átviteli együtthatót az átviteli sebesség kétszoros növekedéséhez használják, ha a szállítási sebesség növekszik. Ez az, hogy a BTLBW-t az RTT-ben határozzák meg, de ugyanakkor korábban túlzott sorokat hoz létre. Amint az indítás megtalálja a BTLBW-t, a BBR rendszer átkapcsol a leeresztő állapotba, amely a fordított indítási együtthatókat használja, hogy megszabaduljon egy túlzott várólistából, majd a ProbEBW állapotba, amint az inflium a BDP vonalra csökken.


4. ábra.

A 4. ábra a BBR 10 megabit 40 milliszekundum áramának első második pontját mutatja. A felső táblázatban az események időpontja és sorrendje elhalasztásra kerül, valamint a feladó (zöld) és a címzett (kék) előrehaladása: a továbbított és fogadott adatok mennyisége. A piros vonal ugyanolyan feltételek mellett mutatja a feladó mutatóit, amelyek kocka technológiát használnak. A függőleges szürke vonalak a BBR-államok közötti átmenet pillanatokat jelentenek. Az alsó táblázatban - módosítsa a csomagok kettős átjárási idejét (RTT) mindkét kapcsolat. Kérjük, vegye figyelembe, hogy az ütemterv időkérete megfelel az érkezési visszaigazolási időnek (ACK). Ezért úgy tűnik, hogy a grafikonok időben elmozdulnak, de valójában az aluli események megfelelnek a pillanatoknak, amikor a BBR rendszer megtudja ezeket az eseményeket és reagál.

A 4. ábrán látható alsó diagram összehasonlítja a BBR-t és a kockát. Először is, viselkedésük majdnem ugyanaz, de a BBR teljesen kiüríti a kapcsolatot, amikor a kapcsolat megkezdődik, és a Cubic nem tudja ezt megtenni. Nincs olyan útvonalmodellje, amely jelentené, hogy hány küldött adat túlzott. Ezért a Cubic kevésbé agresszíven növekszik az adatátvitel a szállítás visszaigazolása nélkül, de ez a növekedés akkor folytatódik, amíg a palack puffer nem túl van-e, és nem indítja el a csomagokat, vagy mielőtt elérné a címzettet az elküldött adatokhoz az elküldött adatokhoz (TCP fogadó ablak ).

Az 5. ábra az RTT viselkedését mutatja az előző 4. ábrán bemutatott kapcsolat első nyolc másodpercében. A Cubic (Red) Technology kitölti a teljes megfizethető puffert, majd 70% -os és 100% -os kitöltést tartalmaz néhány másodpercenként. A BBR-kapcsolat megkezdése után szinte szinte megteremti a várólistát.


5. ábra.

Viselkedés, ha több BBR áramot találnak egy keskeny helyen

A 6. ábra azt mutatja meg, hogy a BBR-áramok sávszélessége hogyan konvergál a csatorna becsületes szakaszában, 100 megabit / 10 milliszekundumonkénti szűk keresztmetszettel. A háromszög alakú struktúrák figyelése - a Probertt vegyületek állapota, amelyben az önszinkronizálás felgyorsítja a végső konvergenciát.


6. ábra.

A csíkos változó szonda nyeresége (2. ábra) serkenti a nagyobb áramokat, hogy lemondjon a szalag kisebb patakokba, amelynek eredményeképpen minden áramlás megérti őszinte állapotát. Ez nagyon gyorsan történik (több POBEBW ciklus), bár az igazságtalanság fenntartható, ha a patakok kezdetén késõbbi áramlások átértékelik az RTPropot, mivel a korábban (ideiglenesen) elkezdett streamek megkezdődtek.

A REAL RTPROP-hoz, a szál balra mozog a BDP vonalról a Probertt állapot használatával: Ha az RTprop értéket nem frissíti (azaz a kisebb RTT mérésével) sok másodpercig a BBR belép a Probertt állapotba, csökkentve az összeget az adatokat (inflight) négy csomagra legalább egy kettős átadásra, majd visszatér az előző állapotba. Ha a nagy áramlatok szerepelnek a Probertt állapotban, sok csomagot fedeznek ki a sorból, így azonnal több szál lásd az új RTPROP értéket (új minimális RTT). Ennek köszönhetően az RTProp becslései ugyanakkor visszaállnak, hogy mindegyikük együttesen belépjen a Probertt államba - és a sor még inkább csökken, ami még több adatfolyamot eredményez az új RTprop értékben, és így tovább. Az ilyen elosztott koordináció kulcsfontosságú tényező a csík és a stabilitás becsületes elosztásához.

A BBR szinkronizálja a kívánt esemény körüli áramlást, ami egy üres vonal egy keskeny helyen. Az ilyen megközelítéssel ellentétben a csomagok elvesztésének szabályozása szinkronizálja a nemkívánatos események körüli patakokat, például a várólistán és a puffer túlcsordulásának időszakos növekedését, ami növeli a csomagok késleltetését és elvesztését.

Végrehajtási tapasztalat B4 WAN a Google-ban

A Google B4 hálózat egy WAN nagysebességű hálózat (széles területű hálózat), amely rendes olcsó kapcsolókra épül. A kis pufferekkel végzett kapcsolók vesztesége elsősorban a kis forgalmú kis fröccsenés véletlen beáramlása miatt következik be. 2015-ben a Google elkezdte fordítani a munkaforgalmat a Cubic-on a BBR-en. Nem volt probléma vagy regresszió, és 2016 óta az összes B4 TCP forgalom BBR-t használ. A 7. ábra az egyik okot szemlélteti, amelyen végezték: a BBR sávszélesség következetesen 2-25-szer nagyobb, mint a köbös. Még nagyobb javulást láttunk, de úgy találtuk, hogy a BBR-kapcsolatok 75% -a korlátozódik a TCP vételi pufferre, amely a hálózati működési osztály munkatársai szándékosan alacsony értéken (8 MB) van telepítve, hogy ne adj kockát A túlzott forgalom hálózata a szállítás megerősítése nélkül (ha 200 mb / 200 mm intercontinental RTT-re osztja, akkor 335 Mbps maximális). Az USA-Európa egy útvonalának kézi növekedése az USA-Európa egy útvonalán történő kézi növekedése azonnal növelte a BBR adatátviteli sebességét 2 Gbps-ig, míg a Cubic 15 Mbps maradt - ez egy 133-szeres relatív növekedése a sávszélességben a Matis-ot a Scientific 1997-es munkatársaival előre jelezte .


7. ábra.

A 7. ábra mutatja a BBR relatív javulását a kockahoz képest; A beillesztés - integrált elosztási funkciók (kumulatív elosztási funkciók, CDF) sávszélesség esetén. A méréseket az aktív érzékelési szolgáltatás alkalmazásával végezzük, amely megnyitja a konstans BBR és a köbös csatlakozásokat a távoli adatközpontokhoz, majd 8 MB-ot továbbít minden percben. A próbák sok B4 útvonalat fedeznek fel Észak-Amerika, Európa és Ázsia között.

A hatalmas javulás közvetlen következménye, hogy a BBR nem A csomagvesztést blokkjelzőként használja. A teljes sávszélesség elérése érdekében a csomagok csomagolásának szabályozására szolgáló meglévő módszerek szükségesek ahhoz, hogy a veszteség szintje kisebb legyen, mint a BDP fordított négyzet (például kevesebb, mint egy veszteség 30 millió csomagolás 10 GB / s és 100 ms összetételéhez). A 8. ábra összehasonlítja a mért hasznos sávszélességet különböző szintű csomagveszteséggel. A Cubic algoritmusban a csomagveszteség toleranciája az algoritmus szerkezeti tulajdonsága, és a BBR-ben egy konfigurációs paraméter. Mivel a BBR veszteség szintje közeledik a maximális nyereganyelést, a valódi BTLBW élesen esik, ami a maximális szűrő alábecsüléséhez vezet.


8. ábra.

8. ábra a hasznos sávszélesség BBR és köbös egy 60 másodperces patak egy vegyületet 100 Mbps és 100 ms random veszteségek 0,001% és 50%. A köbös sávszélesség 10-szer csökken, 0,1% -os veszteségekkel, és teljesen több mint 1% -kal csökken. A maximális sávszélesség a csík mínusz csomagveszteségének () részesedése. A BBR ezen a szinten 5% -os veszteségszintig tart, és közel 15% -kal.

YouTube EDGE végrehajtási tapasztalat

A BBR-t a YouTube-on és a Google.com video-kiszolgálókon végzik. A Google egy kis kísérletet végez, amelyben a felhasználók kis hányada véletlenül átkerül a BBR-be vagy köbösbe. A BRB Video lejátszás jelentős javulást mutat a felhasználók összes becslésében. Talán azért, mert a BBR viselkedése következetesebb és kiszámítható. A BBR csak kissé javítja a kapcsolat sávszélességét, mert a YouTube, és így alkalmazza az áramlási sebességet a szinthez, sokkal alacsonyabb, mint a BTLBW, hogy minimalizálja a túlzott hálózati pufferelést és újra pufferelést. De még itt is a BBR 53% -kal csökkenti az átlagos medián RTT-t a világban, és több mint 80% a fejlődő országokban.

A 9. ábra a RTT medián javulását mutatja a BBR és a COBIC-hez képest a statisztikák szerint több mint 200 millió nézet megtekintése A YouTube videók megtekintése a YouTube-on, öt kontinensen mérve a hét folyamán. A világ összes 7 milliárd mobil kapcsolatának több mint fele 2,5 g-ra van csatlakoztatva 8-114 kbps sebességgel, jól dokumentált problémákkal jár, mivel a csomagok kezelésének szabályozására szolgáló módszerek hajlamosak a pufferekre . Ezekben a rendszerekben szűk keresztmetszet általában az SGSN (GPRS támogató csomópont) és egy mobileszköz között van. Az SGSN szoftver működik és egy szabványos PC platform, amely bőséges mennyiségű RAM-mal működik, ahol gyakran puffer megabájták vannak az internet és a mobileszköz között. A 10. ábra összehasonlítja az (Emulált) SGSN késleltetést az internet és a BBR és a köbös mobileszköz között. Vízszintes vonalak jelzik a legsúlyosabb következményeket: a TCP alkalmazkodik az RTT késedelmek hosszabbításához, kivéve a Syn csomagot, amely az operációs rendszertől függően rögzített időtúllépést indít. Ha a mobileszköz nagy adathordozót (például az automatikus szoftverfrissítésből) kap egy nagy pufferrel, akkor a készülék nem telepíthető bármilyen kapcsolatot az interneten, amíg a sor nem szabad (megerősíti a SYN ACK csomagot idő, mint a rögzített szin timeout).


9. ábra.

A 10. ábra a HTT-t a Stabil vegyület állapotában és a 128 kbps-os és 40 ms-os csatlakozással és 40 ms-ot tartalmazó, nyolc BBR (zöld) vagy köbös (piros) árammal mutatja be. A BBR minimális értékekben tartja a várólistát, függetlenül a szűk keresztmetszet pufferének és az aktív áramok számának méretétől. A köbös áramlások mindig töltsük fel a puffert, így a késleltetés lineárisan növekszik puffer méretével.


10. ábra.

Adaptív szalag a mobil mobil kommunikációban

Celluláris rendszerek A sávszélességet az egyes felhasználók számára részben a lekérdezési előrejelzéstől függően alkalmazzák, amelyben a csomagsorot figyelembe veszik a felhasználó számára. A BBR korai verzióit olyan módon konfigurálták, hogy nagyon kicsi sorokat hozzanak létre, amelyekből a vegyületek alacsony sebességgel leálltak. A PACING_GAIN csúcsértékének növelése a PROBEBW-hez és a várakozások növelése a töltött vegyületek csökkenéséhez vezetett. Ez azt mutatja, hogy bizonyos hálózatokhoz kiváló adaptáció. A csúcserősítő tényező aktuális értékével nincs degradáció semmilyen hálózatban, a kockahoz képest.

Fogva tartott és feszített ACK csomagok

A mobilhálózat, a WiFi és a szélessávú hálózatok gyakran késleltetik és felhalmozódott ACK csomagok. Ha az Inflight egy BDP-re korlátozódik, akkor a sávszélesség csökkentését eredményezi. A CWND_GAIN PROBEBW COEFEFICE-t növelve, hogy továbbra is zökkenőmentesen továbbítsák az előre jelzett szállítási sebességet, még akkor is, ha az ACK-csomagok egy RTT értékre keletkeztek. Eléggé megakadályozza a bontásokat.

Az aktuális vödör korlátozói

A BBR kezdeti telepítése a YouTube-on kimutatta, hogy a világ legtöbb internetes szolgáltatója torzítja a forgalmat a sebességkorlátozókkal az aktuális vödör algoritmuson. A vödör általában teljes mértékben a kapcsolat elején, így a BBR megtanulja az alapul szolgáló hálózat BTLBW paramétert. De amint a vödör kiürül, minden csomagot gyorsabban küldött, mint a (sokkal kisebb, mint a BTLBW) vödöröltési sebességet eldobják. A BRR végül felismeri ezt az új szállítási arányt, de a POBEBW nyereségének ciklikus változása állandó mérsékelt veszteséget eredményez. Ahhoz, hogy a legkisebbre csökkentsék az upstream zenekar és növeli az alkalmazás késések miatt ezeket a veszteségeket, van hozzá egy speciális limiter detektor és explicit modellt határolók BBR. Aktívan tanulmányoztuk a legjobb módszereket a sebességkorlátozók károsításának kiküszöbölésére.

Verseny a csomagvesztéssel kapcsolatos torlódások szabályozására szolgáló módszerekkel

A BBR leesik a szűk keresztmetszet sávszélességének becsületes részlegéhez, függetlenül attól, hogy versenyben más BBR-áramokkal vagy áramlásokkal, amelyek a csomagveszteséggel szembeni torlódások szabályozására szolgáló módszereket futtatják. Még akkor is, ha az utolsó töltés egy megfizethető puffert, a ProbeBW továbbra is megbízhatóan eltolja a BTLBW becslését a becsületes áramlási áramlási áramlásának oldalára, és a Probertt úgy véli, hogy az RTprop minősítés nagyon magas az "OCO EU" konvergenciájához a tisztességes szétválasztáshoz. Azonban a BDP-t meghaladó figyelmen kívül hagyott router puffereket az elavult versenytársak kényszerítik a szűk keresztmetszetek szabályozásával a várakozási sorozatok elfújásához és több, mint őszinte. Ennek megszüntetése az aktív kutatás egy másik területe.

Következtetés

A szűk keresztmetszetek szabályozásának módjainak újragondolása nagy előnyökkel jár. Ahelyett, hogy olyan eseményeket használna, mint a veszteségek vagy a puffer foglalkozás, amely csak gyengén korrelál az ellenkezővel, a BBR egy formális hűtési modelljével és a kapcsolódó optimális működési ponttal kezdődik. A késleltetés és sávszélesség kritikus fontos paramétereinek egyidejű meghatározása egyidejű meghatározásáról szóló bosszantó következtetés a megfigyelés segítségével, hogy egyszerre megjósolhatók. A becslési rendszerek vezetésének és elméletének legújabb eredményeit egy egyszerű elosztott vezérlőáramkör létrehozására alkalmazzák, amely közeledik az optimális, teljes mértékben a hálózat használatával, miközben megőrzi a kis sorát. A Google BBR megvalósítása a nyílt forráskódú Linux kernelben elérhető, és részletesen ismerteti e cikk mellékletét.

A BBR-technológiát a Google B4 ütközéseken használják, a sávszélesség javítása a kockahoz képest. A Google és a YouTube webszervereken is kibontakozik, ami jelentősen csökkenti a mai napig tesztelt öt kontinens késleltetését, különösen a fejlődő országokban. A BBR-technológia kizárólag a feladó oldalán működik, és nem igényel változást a protokollban, a címzettben vagy a hálózaton, amely lehetővé teszi, hogy fokozatosan telepítse azt. Ez csak az RTT és a csomagszállítási értesítések függvénye, így a legtöbb internetes szállítási protokollban alkalmazható.

Elismerés kifejezése

A szerzők hálásak a Lena Kleinoku-nak, hogy irányítsák a torlódást. Larry Marriage (Larry Brakmo) eladósodunk a Vegas és az Új Vegas szabályozási rendszerein, amelyek számos BBR-elemet, valamint a BBR fejlesztési kezdeti szakaszában tanácsot adtak. Szeretnénk köszönetet mondani Eric Dukkipati, Nandita Dukkipati, Jana Ayengar (Ian Swett), Yana Svetta (Ian Swetta), Noulan Fitza (M. Fitz Nowlan), David Wetherall, Leonidas (David WHETHERALL) Contothanassis (Leonidas Kontothanassis), Amin Vakhdata (Amin Vahdat) és a Google BWE fejlesztési csoportjai és a YouTube-infrastruktúra felbecsülhetetlen értékű segítségükért és támogatásához.

Függelék - Részletes leírás

Állapotmérő a soros érzékeléshez

A pacing_gain nyereség faktor vezérli, hogy a BTLBW-hez viszonyított csomagok hogyan kerülnek elküldésre, és ez a kulcs a BBR intelligens funkciójához. Amikor a pacing_gain, több, mint az egység növeli az elhúzást és csökkenti a csomagok bevételei közötti szakadékot, amely az 1. ábrán a jobb oldali csatlakozást mozgatja. Amikor a pacing_gain kisebb, mint egy egység, a kapcsolat történik, a kapcsolat a bal.

A BBR a PACING_GAIN-t használ egy egyszerű, konzisztens érzékelőgép megvalósításához, amely egy nagyobb szalagon és tesztelés között változik a kettős passzolás kisebb időpontjához. (Nem szükséges, hogy teszt egy kisebb csík, mert automatikusan dolgozzák fel a BTLBW MSX szűrő: új dimenziók tükrözik az ősszel, így a BTLBW beállítja magát, amint az utolsó régi változások lesznek távolítva a timaout szűrőt. Az RTProp min-szűrő ugyanolyan módon van kezeli a szállítási útvonalat).

Ha a palack nyakának sávszélessége növekszik, a BBR-nek gyorsabban kell küldenie az adatokat, hogy észlelje. Ugyanígy, ha a csomag kettős áthaladásának valós idejének megváltozik, megváltoztatja a BDP-t, ezért a BDP-nek lassabban kell elküldenie az adatokat, hogy a BDP alatt a BDP alatt legyen az új RTPROP mérésére. Ezért az egyetlen módja annak, hogy észlelje ezeket a változásokat, hogy végezzen kísérleteket, gyorsabban küldje el a BTLBW növekedését, vagy lassabban küldje el az RTProp csökkentését. Ezeknek a kísérleteknek a gyakorisága, a skála, az időtartama és a szerkezete attól függően különbözik, hogy mi már ismert (kapcsolat vagy stabil állapot indítása) és az adatokat (szakaszos vagy állandó) alkalmazási viselkedésétől.

Egyensúlyi állapot

A BBR patakok a legtöbb időt töltenek a POBEBW állapotban, és a csíkot a hívott módszer segítségével vizsgálják kerékpározásEz segít a BBR patakok elérésében a nagy sávszélesség eléréséhez, alacsony késéssel a sorban és konvergenciában a csík tisztességes szakaszában. Használ kerékpározás, A BBR ciklikusan megpróbálja meg a nyereség értékét. pacing_gain.. A ciklus nyolc fázisait a következő értékekkel használják: 5/4, 3/4, 1, 1, 1, 1, 1, 1, 1. Minden fázis általában a tervezett RTPROP alatt megy. Ilyen kialakítás lehetővé teszi az együttható ciklusát, hogy először megvizsgálja a csatornát a nagyobb sávszélességre az értékkel pacing_gain. több mint 1,0, majd szétszórva minden olyan várólistával pacing_gain. Ugyanazon az értéken kevesebb, mint 1,0, majd mozogjon a Cruising Speed \u200b\u200bRivne 1.0 együtthatók rövid sorában. Az összes fázis átlagos nyereségszövetsége 1,0, mert a POBEBW hajlamos kiegyenlíteni a rendelkezésre álló sávszélességet, és ezért nagyfokú sávszélesség fenntartása a sor növelése nélkül. Ne feledje, hogy bár az együttható változásainak ciklusai pacing_gain.De érték cwnd_gain. Mindenesetre két, mivel a fogvatartottak és a feszített visszaigazoló csomagok bármikor megjelenhetnek (lásd a fogvatartottakat és az ACK csomagokat).

Továbbá, a keverés javítása a szálak és a valós szétválasztása a szalag, és csökkentse sorok, amikor számos BRB adatfolyamok osztoznak a szűk keresztmetszetet, BBR véletlenszerűen változtatja a fázisok a PROBEBW ciklus, véletlenül választott az első fázisban az összes értékeknek, kivéve, 3/4. Miért nem kezdődik a ciklus 3/4? Ennek az együttható értékének fő feladata az, hogy az 5/4 együttható alkalmazása során kialakítható bármely sorozatot eloszlassa, ha a csatorna már befejeződött. Amikor a folyamat elhagyja a lefolyót vagy a Probertt állapotot, és belép a ProbEBW-be, akkor a sor hiányzik, így a 3/4 együttható nem végzi feladatait. Ebben az összefüggésben 3/4 kérelem csak negatív hatás: a csatorna töltése ebben a fázisban 3/4, és nem 1. Így a ciklus kezdete 3/4 csak negatív hatással van, de nincs A pozitív, és mivel az állami probebw bejárata minden kapcsolat elején elkezdődik, a BBR ezt a kis optimalizálást használja.

A BBR patakok együttesen hatnak, hogy rendszeresen kiürítsük a várólistát egy keskeny helyen, a Probertt nevű állammal. A PROBERTT-tól eltérő bármilyen állapotban, ha az RTprop arány nem frissül (például kisebb RTT mérésével) több mint 10 másodperc, a BBR belép a Probertt állapotba, és csökkenti a CWND-t nagyon kicsi értékre (négy csomag). A "repülés közben" ilyen minimális csomagok megmentése legalább 200 ms, és a kettős átjáró átjáró egyik időpontjára a BBR kijön a Probertt állapotból, és az értékeléstől függően, vagy a ProBEBW-ból származik, akár a A csatorna már kitöltött.

A BBR-t a ProbeBW állapotban (kb. 98%) többségként dolgozzák, és az idő hátralévő részében - a kompromisszumok sorozatán alapulva. A Probertt állapota elég hosszú (legalább 200 ms), hogy lehetővé tegye a különböző RTT-es patakokat, hogy párhuzamos államok Probertt-nek legyenek, de ugyanakkor meglehetősen rövid ideig tart, hogy korlátozza a teljesítménycsökkentést mintegy két százalék (200 ms / 10 másodperc). Az RTprop szűrőablak (10 másodperc) elég kicsi ahhoz, hogy gyorsan beállítsa a forgalmi szintet, vagy módosítsa az útvonalat, de az interaktív alkalmazásokhoz nagyon nagy. Az ilyen alkalmazások (például a weboldalak, a távoli eljárásokra, a videó töredékekre) gyakran bizonyítják a csendes vagy kis aktivitás természetes időszakát az ablak rákjában, ahol az áramlási sebesség meglehetősen alacsony vagy elég hosszú ahhoz, hogy eloszlassa a várólistát keskeny hely. Az RTPROP szűrő ezután szelektíven kiválasztja az RTProp mérését, és az RTPROP frissül, anélkül, hogy a Probertt használnia kellene. Így a szálak általában csak a sáv 2% -ának áldozata szükségesek, ha számos áramot bőségesen töltenek ki a csatornán az egész RTPROP ablakban.

Viselkedés indításkor

Amikor a BBR-patak elindul, elvégzi az első (és a leggyorsabb) szekvenciális folyamatot a sor érzékelésének / kiürítésének. A hálózati sávszélesség 10 12-es tartományban változik - több bitből 100 gigabitre másodpercenként. A BTLBW értékének megismerése ilyen gigantikus tartományváltással, a BBR bináris keresést biztosít a sebességterületen. Gyorsan megtalálja a BTLBW-t (kétcsomagos csomagok), de a keresés utolsó szakaszában 2BDP-ben várakozási sor létrehozásával. A keresést a BBR üzembe helyezési állapotában végzik, és a létrehozott sor kiürülése a leeresztő állapotban van.

Először is, az indítás exponenciálisan növeli az adatok küldésének sebességét mindegyik fordulóban. Az ilyen gyors érzékelés elérése a legcsendesebb, a nyereség-együtthatók értékének megkezdése során pacing_gain. és cwnd_gain. Telepítve, minimális értékben, amely lehetővé teszi, hogy megduplázza az adatok küldésének sebességét. A csatorna kitöltése után az együttható cwnd_gain. Korlátozza a sorérték méretét.

A BBR-kapcsolat megkezdésekor becslések szerint a csatorna tele van egy fennsík-kereséssel a BTLBW értékelésben. Ha azt találtuk, hogy több (három) forduló telt el, ahol a szállítási sebesség megszakítására irányuló kísérletek valóban nem adnak nagy sebességet (kevesebb mint 25%), úgy véli, hogy elérte a BTLBW-t, így kijön az indításból Állapot és belép a leeresztő állapotba. A BBR három fordulóra vár, hogy meggyőző bizonyítékot szerezzen arra, hogy a szállítási sebesség feladója nem átmeneti hatás a vételi ablak hatása alatt. Várakozás három fordulóban elegendő időt ad arra, hogy automatikusan beállítsa a címzett oldalát, hogy megnyissa a fogadó ablakot, és hogy a BBR feladó felfedezte, hogy növelni kell a BTLBW-t: az első fordulóban a vételi ablak automatikus hangolási algoritmusa növeli a fogadó ablak; A második fordulóban a feladó kitölti a vétel megnövekedett ablakát; A harmadik fordulóban a feladó nagyméretű szállítási sebességgel fogadja a mintákat. A három forduló ilyen határértéke a YouTube bevezetése eredményeinek megfelelően bizonyult.

A leeresztő állapotban a BBR algoritmus arra törekszik, hogy gyorsan kiürítse a kapcsolódási állapotban kialakított sorát, hogy elforduljon pacing_gain. Konfigurációkkal, mint az indítási állapotban használtak. Ha a járatban lévő csomagok száma megfelel a BDP-pontszámnak, ez azt jelenti, hogy a BBR becslése szerint teljesen üres, de a csatorna még mindig kitöltött. Ezután BBR jön ki a leeresztő állapotból, és belép a probebw-ba.

Megjegyezzük, hogy a dob a BBR kapcsolatot, és a lassú Cubic Start egyaránt tanulmányozzák a sávszélesség a szűk exponenciálisan, kétszeres sebességgel küld minden körben. Azonban drámaian különböznek egymástól. Először is, a BBR megbízhatóabban határozza meg a rendelkezésre álló sávszélességet, mivel nem állítja meg a keresést csomagvesztés esetén, vagy (a hystart a Cubic-nél) növeli a késést. Másodszor, a BBR zökkenőmentesen növeli a küldési sebességet, míg a köbmétek mindegyik fordulóban (még az ingerléssel is) a csomagok splash, majd a csend időtartama. A 4. ábra a járatban lévő csomagok számát mutatja be, és a BBR és a COBIC minden visszaigazoló üzenetét az RTT időtartama.

Reagál az átmeneti helyzetekre

A hálózati útvonal és a forgalmi átutalás hirtelen drámai változásokat tapasztalhat. Ahhoz, hogy zökkenőmentesen és megbízhatóan alkalmazkodjon hozzájuk, valamint csökkentse a csomagveszteséget ezekben a helyzetekben, a BBR számos stratégiát alkalmaz az alapmodell végrehajtására. Először is, a BBR azt a célt tekinti, amelyhez az áram cwnd. Óvatosan közeledik az aljzathoz, növekszik cwnd. Minden alkalommal, amikor nem több, mint az adatok mennyisége, amelyre a szállítási visszaigazolás jött. Másodszor, egy átadási időtúllépéssel, ami azt jelenti, hogy a feladó úgy véli, hogy az összes csomagot repülés közben, BBR konzervatívan csökkenti cwnd. Egy csomaghoz, és elküldi az egyetlen csomagot (pontosan olyan algoritmusokként, amelyek a csomagok elvesztésének torlódását szabályozzák, például a Cubic). Végül, amikor a feladó észreveszi a csomag elvesztését, de a repülés során még mindig vannak csomagok, a helyreállítási folyamat első szakaszában, a BRB-veszteség átmenetileg csökkenti az aktuális szállítási sebesség szintjének küldését; A helyreállítási veszteségek második és későbbi fordulóján ellenőrzi, hogy a küldés sebessége soha nem haladja meg az aktuális szállítási sebességet több mint kétszer. Ez jelentősen csökkenti az átmeneti veszteségeket, amikor a BBR sebességváltókkal rendelkezik, vagy a BDP méretéhez hasonló pufferben lévő egyéb szálakkal versenyez.

Linkek

1. Abrahamsson, M. 2015. TCP ACK elnyomás. IETF AQM levelezési levéllista;

A nyilvános szoftver a legfontosabb strukturális elem lett, amikor a legnagyobb weboldalakat hozza létre. A weboldalak növekedésével a fejlett gyakorlati módszerek és az architektúra iránymutatásai merültek fel. Ez a fejezet olyan kulcsfontosságú kérdésekre törekszik, amelyeket figyelembe kell venni a nagy webhelyek tervezése során, valamint a célok eléréséhez használt alapvető összetevők.

E fejezet fókusza a webes rendszerek elemzésére szolgál, bár az anyag egy része extrapolálható más elosztott rendszerekhez.

1.1 Az elosztott webes rendszerek építéséhez 1.1

Pontosan mit csinál egy skálázható weboldal vagy alkalmazás létrehozása és kezelése? Primitív szinten ez egyszerűen a távoli erőforrásokkal rendelkező felhasználók csatlakoztatása az interneten keresztül. És az erőforrásokhoz, vagy ezekhez az erőforrásokhoz való hozzáférés, amelyek több kiszolgálón szétszóródnak, és a honlap skálázhatóságának biztosítása.

Mint a legtöbb dolog az életben, a webszolgáltatás tervezéséről előzetesen eltöltött idő segíthet a jövőben; A nagy webhelyek mögött álló néhány megfontolások és kompromisszumok megértése az okosabb megoldások formájában hozhat létre, amikor kisebb weboldalakat hoz létre. A nagyméretű webes rendszerek kialakítását befolyásoló egyik kulcsfontosságú elv:

  • Elérhetőség: A weboldal működőképes állapotának időtartama kritikus a sok vállalat hírnevével és funkcionalitásával kapcsolatban. Néhány nagyobb online kiskereskedelmi üzlet esetében pedig néhány percig is elérhetetlen lehet több ezer vagy több millió dolláros elvesztett jövedelemhez vezethet. Így a folyamatosan megfizethető és rugalmas fejlődése a rendszerek meghibásodásához egyaránt alapvető üzleti és technológiai követelmény. Az elosztott rendszerek magas rendelkezésre állása gondos megfontolást igényel a kulcskomponensek redundanciájának, a részleges rendszerhibák gyors helyreállítása és a problémák előfordulása utáni rövidítés után.
  • Teljesítmény: A weboldal teljesítménye a legtöbb webhely számára fontos mutatóvá vált. A weboldal sebessége befolyásolja a munkát és a felhasználói elégedettséget, valamint a keresőmotor rangsorát - olyan tényezőt, amely közvetlenül befolyásolja a közönség és a jövedelem gazdaságát. Ennek eredményeként a kulcs egy olyan rendszer létrehozása, amely gyors válaszokra és alacsony késésekre optimalizált.
  • Megbízhatóság: A rendszernek megbízhatónak kell lennie, hogy egy bizonyos adatgyűjtési kérelem egységesen visszatért bizonyos adatokat. Adatváltozás vagy frissítés esetén ugyanaz a lekérdezésnek új adatokat kell visszaadnia. A felhasználóknak tudniuk kell, hogy van-e, ha valamit rögzítenek a rendszerben, vagy tárolják benne, akkor biztos lehet benne, hogy a helyén marad, hogy az adatokat később kivonja.
  • Skálázhatóság: Amikor bármilyen nagy elosztott rendszerre van szükség, a méret csak egy pontot jelent az egész listából, amelyet figyelembe kell venni. Nem kevésbé fontos erőfeszítés a nagy terhelési volumen feldolgozásának sávszélességének növelésére, amelyet általában a rendszer skálázhatóságának neveznek. A skálázhatóság a különböző rendszerparaméterekhez kapcsolódhat: a további forgalom számát, amellyel megbirkózhat, mennyire könnyű növelni a tárolóeszköz kapacitását, vagy hogyan lehet több, mint más tranzakciók feldolgozni.
  • Ellenőrzhetőség: Egy olyan rendszer tervezése, amely könnyen kezelhető egy másik fontos tényezőt. A rendszer szabályozhatósága megegyezik a "karbantartás" és a "frissítések" műveletek skálázhatóságával. A kezelhetőség biztosítása érdekében figyelembe kell venni a feltörekvő problémák diagnosztizálásának és megértésének egyszerűségét, egyszerű frissítéseket vagy módosításokat, a rendszer szeszélyét működik. (vagyis a kudarcok vagy kivételek nélkül működik?)
  • Költség: A költség fontos tényező. Nyilvánvalóan magában foglalhatja a hardver és a szoftver költségeit, de fontos, hogy figyelembe vegye a rendszer telepítéséhez és fenntartásához szükséges egyéb szempontokat is. A rendszer kiépítéséhez szükséges fejlesztők mennyisége, a rendszer elindításához szükséges működési erőfeszítések köre, sőt elegendő szintű képzés - mindent meg kell adni. A költségek a tulajdonjog teljes költsége.

Mindegyik elvek az alapul szolgálnak az elosztott webes architektúra kialakításában. Mindazonáltal ellentmondanak egymással is, mert az egyik célkitűzéseinek elérése mások figyelmen kívül hagyása miatt következik be. Egy egyszerű példa: A többszállítás egyszerű hozzáadásának kiválasztása teljesítményoldatként (méretezhetőség) növelheti a szabályozhatósági költségeket (kiegészítő kiszolgálót kell működtetnie) és a szerverek megvásárlása.

A webes alkalmazás bármilyen típusának fejlesztése során fontos figyelembe venni ezeket a kulcsfontosságú elveket, még akkor is, ha meg kell erősítenie, hogy a projekt egy vagy többet adjon.

1.2 Alapok

A rendszer architektúrájának figyelembevételével számos olyan kérdés merül fel, amelyeket meg kell világítani, például: mely komponenseket kell használni, mivel összekapcsolódnak egymással, és milyen kompromisszumokat lehet elérni. A pénzeszközök befektetése a skálázáshoz anélkül, hogy nyilvánvaló szükséglet lenne, nem tekinthető ésszerű üzleti döntésnek tekinthető. Azonban a tervezés némi iroda jelentősen időt és erőforrásokat takaríthat meg a jövőben.

Ez a rész olyan alapvető tényezőknek szentelt, amelyek szinte minden nagy webes alkalmazáshoz elengedhetetlenek: szolgáltatások,
redundancia, szegmentálás, I. feldolgozási hiba. Mindegyik tényező magában foglalja a választás és kompromisszumok, különösen az előző szakaszban leírt elvek összefüggésében. Magyarázatra példát adunk.

Példa: Képtároló alkalmazás

Valószínűleg már valaha is elhelyezett képeket a hálózaton. A több kép tárolására és szállítására szolgáló nagy webhelyek esetében problémák merülnek fel a költséghatékony, rendkívül megbízható architektúra létrehozásában, amelyet alacsony válasz késleltetések jellemeznek (gyors extrakció).

Képzelje el azt a rendszert, ahol a felhasználók képesek feltölteni képeiket a központi kiszolgálóra, és ugyanakkor a képeket a webhelyhez vagy az API-hez, hasonlóan a Flickr vagy a Picasahoz hasonlóan kérte. A leírás egyszerűsítése érdekében feltételezzük, hogy ez az alkalmazás két fő feladattal rendelkezik: a képek feltöltésének képessége a kiszolgálóra és a képek kérésére. Természetesen a hatékony letöltés fontos kritérium, de a prioritás gyors szállítás a felhasználók kérésére (például a képek igénybe vehetik a weboldalon vagy más alkalmazásban). Ez a funkció hasonló ahhoz, hogy a webszerver webkiszolgálót vagy határtartalom-szállítási hálózati kiszolgálót (tartalomszállítási hálózat, CDN) biztosítson. A CDN-kiszolgáló általában számos helyen tárolja az adatobjektumokat, ezért földrajzi / fizikai elhelyezése közelebb áll a felhasználókhoz, ami a teljesítmény növeléséhez vezet.

A rendszer egyéb fontos szempontjai:

  • A tárolt képek száma korlátozható lehet, így a tárolás skálázhatóságát ebből a szempontból figyelembe kell venni.
  • A letöltési / képkérések alacsony késedelme.
  • Ha a felhasználó betölti a képet a kiszolgálóhoz, akkor az adatoknak mindig holisztikusak és megfizethetőek maradnak.
  • A rendszernek könnyen karbantartható (kezelés).
  • Mivel a kép hosting nem hoz nagy nyereséget, a rendszernek költséghatékonynak kell lennie.

Ennek a tervnek egy másik lehetséges problémája, hogy a webszerver, például az Apache vagy a Lightpd, általában az egyidejű kapcsolatok számának felső határa van, amely a kiszolgálás állapotában van (alapértelmezett érték - körülbelül 500, de lehet sokkal magasabb), és nagy forgalmú, felvétel gyorsan eltöltheti ezt a határértéket. Mivel a leolvasások aszinkron vagy egy másik teljesítményoptimalizálás lehetnek GZIP tömörítésként vagy átvitelként egy részenkénti részleggel, a webszerver gyorsabban válthat a takarmányolvasóhoz, és az ügyfelek közötti váltás, sokkal több kérés, mint a maximális kapcsolatok száma (Apache és Az 500-ban telepített kapcsolatok maximális száma meglehetősen reális, hogy másodpercenként több ezer olvasási kérelmet szolgáljon). A bejegyzések viszont nyitott kapcsolatot tartanak fenn az egész letöltési idő alatt. Tehát az 1 MB méretű fájl átvitele a kiszolgálón több mint 1 másodperces lehet a legtöbb otthoni hálózatban, ennek eredményeképpen a webszerver csak 500 ilyen egyidejű rekordot képes feldolgozni.


1.2. Ábra: Az olvasás és az írás megosztása

Az ilyen potenciális probléma előrejelzése azt jelzi, hogy meg kell osztani az olvasási és írása képeket a független szolgáltatásokhoz. Ez nem csak egyedileg skálázza (mivel valószínű, hogy mindig több olvasást fogunk tenni, mint a rekordok), hanem tudatában is, hogy mi történik minden szolgáltatásban. Végül megkülönbözteti a jövőben képes problémákat, amely egyszerűsíti a lassú olvasás problémájának diagnosztizálását és értékelését.

Ennek a megközelítésnek az az előnye, hogy képesek vagyunk megoldani a problémákat egymástól függetlenül - míg nem kell gondolkodnunk az új képek rögzítésének és megszerzésének szükségességére egy kontextusban. Mindkét szolgáltatás még mindig használja a globális képet, de ha a megfelelő specifikus szolgáltatás módszereit használja, képesek optimalizálni saját teljesítményüket (például a várakozási kérelmeket, vagy a népszerű képek gyorsítótárát - többet fognak megvitatni további). Mind a szolgáltatás szempontjából, mind a költség szempontjából, az egyes szolgáltatások szükség szerint függetlenül méretezhetők. És ez pozitív tényező, mivel az egyesületüket és a keverést véletlenül befolyásolhatják teljesítményük, mint a fent leírt forgatókönyvben.

Természetesen a fent említett modell munkája optimális lesz, két különböző végpont jelenléte esetén (valójában nagyon hasonlít a "felhő" adattár és a tartalomszállítási hálózatok szolgáltatói számos megvalósításához). Számos módja van az ilyen problémák megoldására, és minden esetben kompromisszumot találhat.

Például a Flickr megoldja ezt író-olvasó probléma, terjesztése a felhasználók között különböző modulokat, úgy, hogy minden modul csak arra szolgálnak, korlátozott számú egyes felhasználók, és ha a szám a felhasználók egyre több modult adunk a klaszter (lásd Flickr skálázás bemutatás,
http://mysqldba.blogspot.com/2008/04/mysql-uc-2007-presentation-file.html). Az első példában könnyebb a felhasználás tényleges használatán alapuló hardver (az olvasás és a rekordok száma a rendszerben), míg a Flickr skálázása a felhasználói bázison alapul (de itt használják az egyenletes Használat különböző felhasználókból, így a tápellátást a tartalékból kell tervezni). A múltban, megközelíthetetlenség vagy probléma az egyik szolgáltatásnál, az egész rendszer funkcionalitása nem volt működőképes (például senki sem írhat fájlokat), akkor az egyik Flickr modulok elérhetetlensége csak a rajta kapcsolódó felhasználókra vonatkozik. Az első példában könnyebb végrehajtani a teljes adatkezelési készletet - például a felvételi szolgáltatás frissítéséhez az új metaadatok engedélyezéséhez vagy az összes metaament képhez való kereséshez - míg a Flickr architektúrával minden modul frissíteni kell, vagy A keresés (vagy a keresési szolgáltatás meg kell teremteni azokat a metaadatok rendezését, amelyek ténylegesen erre törekszenek).

Ami ezeket a rendszereket illeti - nincs panasza, de mindig a fejezet elején leírt elvekből kell eljárnia: a rendszer igényeinek azonosítása (az olvasás vagy "írás" műveletek vagy mindenki, a párhuzamosság szintje, Adatkészletek, tartományok, típusok stb. Kérései, amelyek különböző alternatívák összehasonlító referenciaellenőrzését végzik, megértik a potenciális rendszerhiba feltételeit, és integrált tervet dolgoznak ki a kudarc előfordulására.

Redundancia

Az elegánsan megbirkózni az elutasítással, a webes architektúrának redundanciával kell rendelkeznie szolgáltatásaival és adataival. Például az egyetlen szerveren tárolt fájl csak egy példánya esetén a kiszolgáló elvesztése veszteséget és fájlt jelent. Nem valószínű, hogy az ilyen helyzet pozitívan jellemezhető, és általában több vagy biztonsági másolat létrehozásával elkerülhető.

Ugyanez az elv alkalmazható a szolgáltatásokra. Az egyetlen csomópont meghibásodásából megvédheti, hogy lehetséges-e az alkalmazás funkcionalitásának szerves részét, amely garantálja több példányának vagy verziójának egyidejű működését.

A redundancia létrehozása a rendszerben lehetővé teszi, hogy megszabaduljon a gyenge pontoktól, és abnormális helyzet esetén biztonsági másolatot vagy redundáns funkcionalitást biztosítson. Például, ha a "termelésben működő szolgáltatás két példányának jelenléte), és egyikük teljes mértékben vagy részben meghiúsul, a rendszer leküzdheti az elutasítást Átkapcsolható példányra váltás.
A váltás automatikusan előfordulhat, vagy kézi beavatkozást igényel.

A szolgáltatások másik kulcsfontosságú szerepe redundancia - teremtés az építészet nem biztosítja az erőforrás-elválasztást. Ezzel az architektúrával minden csomópont képes önállóan dolgozni, és továbbá egy középső "agy", irányító államok kezelése vagy más csomópontok koordinációs cselekvése hiányában. Hozzájárul a skálázhatósághoz, mivel az új csomópontok hozzáadása nem igényel különleges feltételeket vagy tudást. És ami a legfontosabb, ezeken a rendszerekben nincsenek kritikus veszélyességi pont, ami sokkal rugalmasságot tesz lehetővé a kudarchoz.

Például az alkalmazáskiszolgáló alkalmazásunkban az összes kép redundáns példányban van valahol a hardver egy másik részében (ideális - egy másik földrajzi elhelyezkedéssel ilyen katasztrófa esetén, például földrengés vagy tűz az adatközpontban), és Képes hozzáférési szolgáltatások, amelyek redundánsak lesznek, annak ellenére, hogy mindannyian esetleg kéréseket szolgálnak. (Cm.)
Várakozás, terheléskiegyenlítés nagyszerű módja annak, hogy lehetővé tegye, de többet az alábbiakban.


1.3. Ábra: Alkalmazás hosting alkalmazás redundanciával

Szegmentálás

Az adatkészletek olyan nagyok lehetnek, amelyeket nem lehet egy kiszolgálóra helyezni. Előfordulhat, hogy a számítástechnikai műveletek túl nagy számítógépes erőforrásokat igényelnek, csökkentve a termelékenységet és szükségessé teszik a teljesítmény növelését. Mindenesetre két lehetőség van: függőleges vagy vízszintes méretezés.

A függőleges skálázás magában foglalja a további erőforrások hozzáadását egy külön szerverhez. Tehát egy nagyon nagy adatkészlethez ez több (vagy több) merevlemez hozzáadását jelentene, így az egész adatkészlet ugyanazon a kiszolgálón található. Számítástechnikai műveletek esetén ez a számítások mozgása egy nagyobb szerverre, gyorsabb CPU-val vagy nagy mennyiségű memóriával. Mindenesetre a függőleges skálázást elvégezzük annak érdekében, hogy a további adatfeldolgozásra képes számítási rendszer külön erőforrása legyen.

A vízszintes skálázás viszont nagyobb számú csomópontot tartalmaz. Abban az esetben, egy nagy adatbázisba, ez azt jelentené, hozzátéve, egy második szerver tárolja része a teljes adatmennyiség, és egy számítási erőforrás ez azt jelentené, az elkülönítés munka vagy letöltés útján néhány további csomópontokat. Annak érdekében, hogy teljes mértékben kihasználni a potenciális horizontális skálázás, végre kell hajtani, mint egy belső elve a fejlődés a rendszer felépítése. Ellenkező esetben a vízszintes skálázáshoz szükséges kontextus változása és elosztása problémás lehet.

A horizontális méretezés legelterjedtebb módja a szegmensek vagy modul szolgáltatások szétválasztása. Oly módon lehet elosztani, hogy minden logikai funkcionalitás külön-külön működjön. Ezt földrajzi határok vagy más kritériumok végezhetik, mint például a felhasználók kifizetése és a felhasználók kifizetése. Ezeknek a rendszereknek az előnye, hogy kiterjesztett funkcionalitású szolgáltatási vagy adattárházat biztosítanak.

A képszerverünk példájában lehetséges, hogy a kép tárolására használt egyetlen fájlkiszolgáló helyettesíthető a fájlkiszolgálók sokaságával, és mindegyikük tartalmazza saját egyedi képkészletét. (Lásd.) Az ilyen architektúra lehetővé teszi a rendszer számára, hogy töltse ki az egyes fájlkiszolgálókat a képek hozzáadásával, mivel a lemezterület töltődik. A tervezés egy olyan elnevezési sémát igényel, amely összekapcsolja a képfájl nevét a kiszolgálóval. A kép neve kialakítható a szerverekhez kötődő Hashing konzisztenciájából. Vagy alternatív módon minden képnek lehet egy inkrementális azonosítója, amely lehetővé teszi a szállítási szolgáltatás, amikor a képet csak az egyes kiszolgálókhoz kapcsolódó azonosítók tartományát (mint index) feldolgozza.


1.4. Ábra: Hosting alkalmazás redundanciával és szegmentációval

Természetesen nehézségek vannak az adatok vagy funkcionalitás eloszlásában számos szerverre. Az egyik legfontosabb kérdés - az adatok helye; Az elosztott rendszerekben az adatok közelebbi az üzemeltetési hely vagy a számítási pont, annál jobb a rendszer teljesítménye. Következésképpen az adatok több kiszolgálóra történő eloszlása \u200b\u200bpotenciálisan problematikus, mivel ezeknek az adatoknak bármikor szükségesek, azzal a kockázattal, hogy nem állnak rendelkezésre állítás helyén, a kiszolgálónak a szükséges információk költséges mintáját kell elvégeznie a hálózaton.

Egy másik lehetséges probléma az űrlapon történik
ellentmondások (nem vitatás). Amikor a különböző szolgáltatások olvashatók és írnak a megosztott erőforrásról, potenciálisan egy másik szolgáltatás vagy adattárolás, lehetőség van a "verseny" feltételekre - ahol egyes adatok frissülnek a jelenlegi állapotra, de a valóságban, az olvasásuk addig fordul elő, amíg a Az aktualizálás pillanatában - és ebben az esetben az adatok nem kontenzálisak. Például a kép hosting forgatókönyvében a verseny állapota előfordulhat, ha egy ügyfél küldött egy kérést, hogy frissítse a kutya képét a "kutya" fejlécben a "Gizmo" fejlécben, abban a pillanatban, amikor egy másik ügyfél olvasható a kép. Ilyen helyzetben nem világos, hogy milyen címet, "kutyát" vagy "gizmo" kapna a második ügyfél.

Természetesen vannak olyan akadályok, amelyek az adatok szegmentálásához kapcsolódnak, de a szegmentáció lehetővé teszi, hogy az egyes problémákat másoktól eltérítsen: az adatok szerint a terhelésen, a felhasználási minták szerint stb. Kezelt blokkokban. Segíthet a skálázhatóság és a kezelhetőségben, de a kockázat még mindig jelen van. A kudarcok kockázatának és feldolgozásának sokféle módja van; A rövidség érdekében azonban ebben a fejezetben nem szerepelnek. Ha több információt szeretne erről a témáról, meg kell néznie a hibás toleranciát és a monitoring blogját.

1.3. A gyors és skálázható adatokhoz való strukturális elemek

Miután megvizsgálta az elosztott rendszerek kidolgozásának néhány alapelveit, lépjünk tovább egy összetettebb pillanatra - az adatokhoz való hozzáféréshez.

A legegyszerűbb webes alkalmazások, mint például a lámpa stack alkalmazások, hasonlóak a képhez.


1.5 ábra: Egyszerű webes alkalmazások

A növekvő alkalmazással két fő nehézség van: az alkalmazáskiszolgálóhoz való hozzáférés és az adatbázishoz való hozzáférés. Az alkalmazások jól skálázható kialakításában a webszerver vagy az alkalmazáskiszolgáló általában minimalizálódik, és gyakran olyan architektúrát testesít meg, amely nem rendelkezik közös erőforrás-elválasztást. Ez a rendszer alkalmazási szerverének vízszintesen skálázhatóvá teszi. Az ilyen kialakítás használata eredményeképpen a kemény munka az adatbázis-kiszolgálóra és a leányvállalat szolgáltatásaira csökkenti a veremet; Ez a rétegen a skálázás és a termelékenység valódi problémái játszanak.

A fejezet többi részét a termelékenység javításának és módszereinek néhány leggyakoribb stratégiájára és módszereire fordítják, és biztosítják az ilyen típusú szolgáltatások méretezhetőségét az adatokhoz való gyors hozzáféréssel.


1.6. Ábra: Egyszerűsített webes alkalmazás

A legtöbb rendszer egyszerűsíthető a rendszer előtt,
Ami jó kiindulási pont a figyelem megkezdéséhez. Ha sok adat van, feltételezhető, hogy ugyanazt a könnyű hozzáférést és gyors hozzáférést szeretné elérni, mint egy doboz nyalókával az asztal felső fiókjában. Bár ez az összehasonlítás túlságosan egyszerűsíthető, két összetett problémát jelez: az adatraktár skálázhatósága és az adatok gyors elérése.

Tekintse meg ezt a részt, feltételezzük, hogy sok terabájt (TB) adata van, és lehetővé teszi a felhasználók számára, hogy bármilyen sorrendben hozzáférhessenek az adatok kis részeit. (Cm.)
Hasonló feladat az, hogy meghatározzuk a képfájl helyét valahol a fájlkiszolgálóban a képtároló alkalmazás példájában.


1.7. Ábra: A konkrét adatokhoz való hozzáférés

Ez különösen nehéz, mert a terabájt adatainak a memóriába való betöltése nagyon érvénytelen lehet, és közvetlenül befolyásolja az I / O lemezműveletek számát. Az olvasás sebessége a lemezről többször alacsonyabb, mint a RAM-ból való olvasás sebessége - azt lehet mondani, hogy a memóriához való hozzáférés ugyanolyan gyors, mint a Chuck Norris, miközben a lemez elérése lassabb, mint a klinika sora. Ez a sebességkülönbség különösen kézzelfogható a nagy adatkészletekhez; Száraz számban a memóriához való hozzáférés 6-szor gyorsabb, mint az egymás utáni olvasási műveletek olvasása, és 100 000-szer - a véletlenszerű sorrendben való olvasáshoz (lásd: "Nagy adatok patológiája", http://que.a.acm.Ag/detail . CFM? ID \u003d 1563874).).). Ezenkívül még egyedi azonosítók is, amelyek megoldják a problémát, hogy megtalálják az egy kis adatainak helyének megtalálásának problémáját, ugyanazok a nehéz feladat lehet, mint egy kísérlet, anélkül, hogy megpróbálná kihúzni az utolsó cukorkát egy csokoládé kitöltésével a dobozból száz más cukorka .

Szerencsére sok olyan megközelítés létezik, amelyek egyszerűsítésére alkalmazhatók, amelyek közül a négy legfontosabb megközelítés a gyorsítótár, a proxy, az indexek és a terhelés kiegyenlítőinek használata. Ennek a résznek a fennmaradó része megvitatja, hogyan lehet ezeket a fogalmakat felhasználni annak érdekében, hogy sokkal gyorsabban hozzáférhessenek az adatokhoz.

Gyorsítótár

A gyorsítótár az alapelv jellemző jellemzőjének köszönhetően előnyökkel jár: a közelmúltban kért adatok valószínűleg újra szükségesek. A cashies-t szinte minden egyes számítástechnikai szinten használják: hardver, operációs rendszerek, webböngészők, webes alkalmazások és nem csak. A gyorsítótár olyan, mint egy rövid távú memória: korlátozott mennyiségben, de gyorsabb, mint a forrásadatforrás, és olyan elemeket tartalmaz, amelyekhez a közelmúltban érkezett hozzáférés. Kashi minden szinten létezhet az építészetben, de gyakran a legközelebbi szinten van a Frontland-nak, ahol végrehajtják az adatokat, hogy gyorsan visszaadják az adatokat anélkül, hogy jelentős hátteret biztosítanak.

Milyen módon használható a gyorsítótár az adatok hozzáférésének felgyorsítására az API-n belül? Ebben az esetben több helyen megfelelő gyorsítótár elhelyezése van. Az esetleges elhelyezési lehetőségként a kérés szintjén kiválaszthatja a csomópontokat, amint azt a
.


1.8. Ábra: A gyorsítótár a lekérdezési szint csomópontra helyezve

A gyorsítótár közvetlenül a lekérdezési szint csomópontján található, lehetővé teszi a válaszadatok helyi tárolását. Minden alkalommal, amikor a szolgáltatási kérelem végrehajtásra kerül, a csomópont gyorsan visszaadja a helyi, gyorsítótárazott adatokat, ha létezik. Ha nem a gyorsítótárban van, akkor a kérés csomópontja adatokat kér a lemezről. Az egyik kérés szintű csomópontján lévő gyorsítótár mind a memóriában is elhelyezhető (ami nagyon gyors) és a csomópont helyi lemezén (gyorsabb, mint a hálózati tárolásra való felkelés kísérlete).


1.9. Ábra: A gyorsítótárak rendszerei

Mi történik, ha a gyorsítótárat különböző csomópontokon terjeszti? Amint azt látod, ha a lekérdezési szint több csomópontot tartalmaz, akkor valószínű, hogy minden csomópont is saját gyorsítótára lesz. Ha azonban a véletlenszerű sorrendben a Balanzert véletlenszerű sorrendben elosztja a csomópontok közötti kéréseket, ugyanaz a lekérdezés különböző csomópontokra vált, így a gyorsítótár sikertelen fellebbezésének növelése. Kétféleképpen, hogy leküzdjék ezt az akadályt globális és elosztott gyorsítótárak.

Globális készpénz

A globális gyorsítótár jelentése a címből világos: Minden csomópont használ egy gyorsítótár tér. Ebben az esetben hozzá kell adni egy kisfajta fájlok szerverét vagy tárolóját, amely gyorsabb, mint az eredeti tárolása, és amely minden kérés szintű csomóponthoz elérhető lesz. A kérés csomópontok mindegyike ugyanúgy kéri a gyorsítótárat, mintha helyi lenne. Ez a fajta gyorsítótárazási rendszer nehézséget okozhat, mivel az egyetlen gyorsítótár nagyon könnyen túlterhelhető, ha az ügyfelek és a kérések száma növekedni fog. Ugyanakkor, egy ilyen rendszer nagyon hatékony egy bizonyos építészeti (elsősorban például a speciális hardver, amelyek ezt a globális cache nagyon gyors, vagy amelyeknek állandó adatállomány, amelyet be kell cache).

A rendszerekben bemutatott globális gyorsítótárak két standard formája létezik. A helyzetet akkor ábrázolják, ha a gyorsítótárazott válasz nem található a gyorsítótárban, maga a gyorsítótár felelős lesz az adatok hiányzó részének megszerzéséért az alapvető tárolásból. A kérelem csomópontok felelőssége szemlélteti, hogy olyan adatokat szerezzen be, amelyek nem találhatók a gyorsítótárban.


1.10. Ábra: Globális gyorsítótár, ahol a gyorsítótár felelős a kivonásért


1.11 ábra: A globális gyorsítótár, ahol a kérés csomópontok felelősek a kivonásért

A legtöbb olyan alkalmazás, amely növeli a globális gyorsítótárakat, hajlamos az első típusú, ahol a gyorsítótár maga kezeli a helyettesítési és mintavételi adatokat, hogy megakadályozza a kérelmek lavinója ugyanazon adatokat az ügyfelektől. Vannak azonban olyan esetek, amikor a második megvalósításnak több jelentése van. Például, ha a gyorsítótárat nagyon nagy fájlokhoz használják, a gyorsítótárhoz való sikeres átalakulás alacsony százaléka a puffer gyorsítótárának sikertelenségének túlterheléséhez vezet a gyorsítótárhoz; Ebben a helyzetben segít a közös adatkészlet (vagy forró adatkészlet) nagy százalékában a gyorsítótárban. Egy másik példa egy olyan architektúra, ahol a gyorsítótárban tárolt fájlok statikusok, nem szabad törölni. (Ez előfordulhat az ilyen adatok késleltetésével kapcsolatos fő működési jellemzők miatt - talán az adatok bizonyos részeinek nagyon gyorsnak kell lenniük a nagy adatkészletekhez - amikor az alkalmazás logikája megérti a helyettesítési stratégiát vagy a forró foltokat, mint a gyorsítótár.)

Elosztott készpénz

Ezeket az indexeket gyakran tárolják a memóriában, vagy valahol helyben, az ügyfél bejövő kérésére. A Berkeley DB (BDB) és a megrendelt listák tárolására használt fa adatszerkezetek ideálisak az indexhez való hozzáféréshez.

Gyakran számos olyan index létezik, amelyek térképként szolgálnak egy helyről a másikra, stb., Amíg nem kapja meg a szükséges adatok azon részét. (Cm.)


1.17. Ábra: Többszintű indexek

Az indexek ugyanabban az adatokból több más prezentációt is felhasználhatunk. A nagy adatkészletek esetében ez egy nagyszerű módja annak, hogy azonosítsák a különböző szűrőket és fajokat anélkül, hogy sok további példányt hoznának létre.

Tegyük fel például, hogy a fent említett képtároló rendszer ténylegesen helyezi a képoldalak képét, és a szolgáltatás biztosítja az ügyfélkérelmeket a szövegekben, és az adott témában minden szöveges tartalmat keres, valamint a keresőmotorok lehetővé teszik a HTML-t Tartalom. Ebben az esetben mindezek a könyvek sok kiszolgálót használnak a fájlok tárolására, és egy oldalt találni, hogy a felhasználó meglehetősen bonyolult legyen. Kezdetben fordított indexek az önkényes szavak és szavak beállításaira könnyen hozzáférhetőnek kell lenniük; Ezután van egy feladat a pontos oldalra és helyére ebben a könyvben, és visszaküldi a helyes képet a keresési eredményekhez. Így ebben az esetben az invertált index megjelenítené a helyszínen (például a B könyvben), majd a B tartalmazhat egy indexet minden szóval, helyszínekkel és események számával.

A fordított index, amely az index1 indexet mutatja a fenti áramkörben, valami ilyesmit fog kinézni: Minden szó vagy szavak sorai indexként szolgálnak azoknak a könyveknek, amelyek tartalmazzák őket.

A köztes index úgy fog kinézni, de csak szavak, hely és információkat tartalmaz a B könyv számára. Ez több szintű architektúrát tartalmaz, lehetővé teszi az egyes indexek számára, hogy kevesebb helyet foglaljanak el, mint ha az összes ilyen információt egy nagy fordított indexben tárolták.

És ez a legfontosabb pont a nagyszabású rendszerekben, mert még tömörített is, ezek az indexek meglehetősen nagyok és költségesek lehetnek a tároláshoz. Tegyük fel, hogy sok könyve van a világ minden tájáról ebben a rendszerben - 100.000.000 (lásd a blog rögzítése "a Google Könyvek belsejében") - és hogy minden könyv csak 10 oldalt tartalmaz (a számítások egyszerűsítése érdekében) 250 szóval egy oldalon : Ez a teljes 250 milliárd szót ad. Ha elfogadjuk az 5-ös szóban lévő karakterek átlagos számát, és az egyes szimbólumok 8 bitet (vagy 1 bájtot kódolnak, még akkor is, ha egyes karakterek ténylegesen 2 bájtot foglalnak el), miközben 5 bájtot adnak a szóhoz csak egyszer megkövetelnek tárolókapacitást több mint 1 terabájt. Így azt látja, hogy az indexek, amelyekben más információk, például szókészletek, az adatok helye és a felhasználás mennyisége nagyon gyorsan növekedhet.

Az ilyen közbenső indexek létrehozása és az adatok kisebb részekkel történő bemutatása megkönnyíti a "nagy adatok" problémáját. Az adatok több kiszolgálón is eloszthatók, ugyanakkor gyorsan hozzáférhetők. Az indexek az információs keresés sarokköve és a mai modern keresőmotorok alapja. Persze, ez a rész csak azokra a téma indexelés, és sok vizsgálatot végeztek, hogyan indexek kisebb, gyorsabb több információt tartalmazó (például relevancia) és unhinderedly frissíteni. (Vannak problémák merülnek fel a versengő feltételek kezelésével, valamint az új adatok hozzáadásához szükséges frissítések számával vagy a meglévő adatok módosításához, különösen akkor, ha releváns vagy értékelés) részt vesznek.

Nagyon fontos, hogy gyorsan és egyszerűen megtalálja az adatait, és az indexek a legegyszerűbb és leghatékonyabb eszköz a cél eléréséhez.

Kiegyenlítők betöltése

Végül bármely elosztott rendszer másik kritikus része terheléskiegyenlítés. A terheléskiegyenlítés bármely architektúra fő része, mivel szerepük a terhelést a kérelmek szervizeléséért felelős csomópontok között terjeszti. Ez lehetővé teszi több csomópont számára, hogy átláthatóan szolgáljanak ugyanazt a funkciót a rendszerben. (Lásd.) Fő céljuk, hogy számos egyidejű kapcsolatot kezeljük, és ezeket a kapcsolatokat a kért csomópontok egyikéhez irányítják, lehetővé téve a rendszer méretezését, egyszerűen hozzáadva a csomópontokat a további lekérdezések megjelenítéséhez.


1.18. Ábra: Load Balanger

Számos különböző algoritmus van a kérelmek szervizelésére, beleértve a véletlen csomópont kiválasztását, egy ciklikus algoritmust, vagy akár egy csomópont kiválasztását bizonyos kritériumok alapján, például egy központi processzor vagy RAM alkalmazásával. A terheléskiegyenlítés hardverként vagy szoftverként valósítható meg. A Load Balancing a nyílt forráskódú szoftverek között a Haproxy megkapta a leginkább elterjedt.

Az elosztott rendszerben a terhelés kiegyenlítői gyakran a rendszer "elülső szélén" helyezkednek el, így az összes bejövő kérés közvetlenül áthalad. Nagyon valószínű, hogy egy komplex elosztott rendszerben a kérésnek több kiegyenlítőn kell átmennie, amint azt a
.


1.19. Ábra: Több terheléskiegyenlítés

Mint egy proxy, egyes terheléskiegyenlítés különböző módon is kéréseket is küldhet, a kérelem típusától függően. Ezenkívül reverzibilis (fordított) proxyként is ismertek.

Az adott felhasználói munkamenethez specifikus adatkezelés az egyik probléma a terheléskiegyenlítő eszközök használatakor. Az e-kereskedelmi webhelyen, ha csak egy ügyfél van, akkor nagyon könnyű lehetővé teszi a felhasználók számára, hogy a dolgokat a kosárba helyezzék, és fenntartják a látogatásokat (ez fontos, mivel az áruk értékesítésének valószínűsége jelentősen növekszik, ha a felhasználó Vissza a webhelyre, a termék még mindig a kosárban található). Ha azonban a felhasználó az első munkamenet egy csomópontjára irányul, akkor a következő látogatás során egy másik csomópontra is ellentmondások lehetnek, mivel az új csomópontnak nem lehet adatai a felhasználó kosárának tartalmával kapcsolatban. (Ne ideges, ha a hegyi harmat italcsomagot a kosárba helyezi, és ha visszaadja, akkor nem lesz ott?) Az egyik megoldás lehet, hogy "ragadós" ülések legyenek, hogy a felhasználó mindig irányuljon Ugyanaz a csomópont. Azonban bizonyos megbízhatósági funkciók használata, mint például az automatikus failover, jelentősen nehéz lesz. Ebben az esetben a felhasználó kosara mindig van tartalma, de ha ragacsos csomópontja nem érhető el, akkor különleges megközelítésre lesz szükség, és a kosár tartalmának feltételezése nem lesz helyesbítve (bár érdemes lenne remélve, hogy ez a feltételezés nem kerül beépítésre a mellékletbe). Természetesen ez a probléma megoldható más stratégiákkal és eszközökkel, amint azt az ebben a fejezetben leírtak, például a szolgáltatások és sok más (böngésző gyorsítótárak, cookie-k és átírási URL-ek).

Ha a rendszernek csak néhány csomópontja van, akkor az ilyen technikák, mint például a DNS-karusszel valószínűleg praktikusabbak, mint a betöltési kiegyenlítés, amely drága lehet, és növeli a rendszer összetettségét egy felesleges szint hozzáadásával. Természetesen nagy rendszerekben mindenféle különböző algoritmus létezik a terhelés tervezéséhez és kiegyenlítéséhez, beleértve mind az egyszerű, például egy véletlenszerű választás vagy egy karusszel algoritmus, valamint összetettebb mechanizmusok, amelyek figyelembe veszik a rendszerhasználati modell teljesítményét. Mindezek az algoritmusok lehetővé teszik a forgalom és a kérelmek elosztását, és hasznos megbízhatósági eszközöket biztosítanak, például a sérült csomópont automatikus hibakerejét vagy automatikus eltávolítását (például, ha nem válaszol a kérésekre válaszolva). Ezek a kiterjesztett funkciók azonban terjedelmes problémákkal diagnosztizálhatják. Például a nagy terhelésű helyzetekben, terheléselosztás törli csomópontok, amelyek a munka lassan, vagy meghaladja a várakozási idő (mivel pattog lekérdezések), ami csak súlyosbítja a helyzetet a többi csomópont. Ezekben az esetekben a kiterjedt kontroll fontos, mert még ha úgy tűnik, hogy a teljes rendszerforgalom és a terhelés csökken (mivel a csomópontok kevesebb lekérdezéseket szolgálnak) - az egyes csomópontok betölthetők a határértékhez.

A terheléselosztás egyszerű módja annak, hogy növelje a rendszer teljesítményét. Mint az e cikkben leírt egyéb módszerek, jelentős szerepet játszik az elosztott rendszer építészetében. A terheléskiegyenlítés biztosítja a csomópontok teljesítményének ellenőrzésének kritikus funkcióját is. Ha a vizsgálat eredményei szerint a csomópont nem válaszol, vagy túlterhelt, akkor eltávolítható a kérésfeldolgozó medencéből, és a rendszer redundanciája miatt a terhelés a fennmaradó munkás csomópontok között újraelosztható.

Sorok

Eddig sok módot fordítottunk az adatok gyors olvasására. Ugyanakkor az adatszint-skálázás egy másik fontos része a rekordok hatékony kezelése. Amikor a rendszerek egyszerűek, és minimális feldolgozási terhelések és kis adatbázisok jellemzik, a felvétel gyorsan megjósolható. Azonban a bonyolultabb rendszerekben ez a folyamat határozatlan időre hosszú ideig elfoglalhat. Tehát például az adatokat különböző kiszolgálókon vagy indexeken több helyen kell rögzíteni, vagy a rendszer egyszerűen nagy terhelés alatt lehet. Azokban az esetekben, ahol a felvételi, vagy akár csak olyan feladatot foglalnak el hosszú idő, megvalósítása a termelékenység és a rendelkezésre állás megköveteli beágyazó szinkronhibája be a rendszerbe. Ennek közös módja a lekérdezési sorok megszervezése.


1.20 ábra: Szinkron kérés

Képzelje el egy olyan rendszert, amelyben minden ügyfél távoli szolgáltatási feladatot igényel. Mindegyik ügyfelek kérését elküldi a kiszolgálónak, amely a lehető leggyorsabban végrehajtja a feladatokat, és visszaadja az eredményeket az érintett ügyfeleknek. A kis rendszerekben, ahol egy kiszolgáló (vagy logikai szolgáltatás) a bejövő ügyfeleket olyan gyorsan szolgálhatja, amennyire megérkezik, az ilyen helyzeteknek normálisan kell működniük. Ha azonban a kiszolgáló több kérelmet kap, mint amennyit feldolgozhat, akkor minden ügyfél kénytelen arra, hogy elvárja a más ügyfelek igényeinek feldolgozásának befejezését, mielőtt saját kérelmére válaszolna. Ez egy példa a bemutatott szinkron kérésre.

Ez a fajta szinkron viselkedés jelentősen ronthatja az ügyfél kapacitását; Tény, hogy az ügyfél kénytelen elvárni, amíg nem kap választ a kérés. A rendszer terhelésével kapcsolatos további szerverek hozzáadásával valójában nem oldja meg a problémát; Még hatékony terhelés-kiegyenlítés esetén rendkívül nehéz biztosítani az egységes és tisztességes terhelési eloszlás szükséges az ügyfél termelékenységének maximalizálásához. Ráadásul, ha a kérés feldolgozására szolgáló kiszolgáló nem érhető el (vagy nem sikerült), akkor az ezhez kapcsolódó ügyfél leáll a munkához is. A probléma hatékony megoldása az ügyfél kérésének és a szolgáltatásért végzett tényleges munka között absztrakció szükséges.


1.21. Ábra: A kérések kezeléséhez szükséges sorok használata

Bemeneti sorok. A sor működési mechanizmusa nagyon egyszerű: a feladat jön, a sorban van, majd a "munkások" a következő feladatot, amint úgy tűnik, hogy feldolgozzák. (Lásd.) Ezek a feladatok lehetnek egyszerű bejegyzések az adatbázisba, vagy valami olyan összetett, mint a dokumentum előnézeti képteremtése. Amikor az ügyfél a várakozási célkitűzések iránti kérelmeket küld, már nem szükséges elvárni a végrehajtás eredményeit; Ehelyett a kérelmek csak akkor szükségük van arra, ha megfelelő módon megerősítik az átvételük tényét. Ez a megerősítés később az eredményekre utalhat, amikor az ügyfél azt állítja.

A sorok lehetővé teszik az ügyfelek számára aszinkron módon, biztosítva az ügyfél stratégiai absztrakcióját és válaszát. Másrészt a szinkron rendszerben nincs különbség a lekérdezés és a válasz között, ezért nem lehet külön kezelni. Az aszinkron rendszerben az ügyfél beállítja a feladatot, a szolgáltatás megfelel az üzenetnek, megerősíti a feladat megszerzését, majd az ügyfél rendszeresen ellenőrizheti a feladat állapotát, csak akkor kérdezi az eredményt, amint véget ért. Míg az ügyfél aszinkron kérelmet hajt végre, ingyenes más munkában, és akár aszinkron kéréseket is végezhet más szolgáltatásokhoz. Az utóbbi példa arra, hogy a sorok és az üzenetek az elosztott rendszerekben működnek.

A sorok bizonyos védelmet nyújtanak a szolgáltatási felfüggesztések és a kudarcok ellen. Például elég egyszerű, hogy hozzon létre egy nagyon stabil sorot, amely megismételheti azokat a szolgáltatási kérelmeket, amelyek a rövid távú kiszolgáló hibái miatt megszűntek. Ez előnyös használni a sor, hogy hajtsák végre a minőségbiztosítás garanciát, mint az ügyfelére ideiglenes kimaradása a szolgáltatást igénylő bonyolult és gyakran egymásnak ellentmondó hibakezelés a kliens oldalon.

1.4. Következtetés

A nagy mennyiségű adathoz való gyors hozzáférésű hatékony rendszerek fejlesztése nagyon érdekes téma, és még mindig van egy jelentős számú jó eszköz, amely lehetővé teszi, hogy mindenféle új alkalmazást alkalmazzon. Ez a fejezet csak néhány példát érintett, de a valóságban sokkal többek vannak - és az új innovációk létrehozása ezen a területen csak folytatódik.

Ez a munka a változatlan kreatív Commons Attribution 3.0 licenc alatt terjed ki. Lásd a részleteket