Dynamo (úložný systém) - Dynamo (storage system)
tento článek potřebuje další citace pro ověření.Února 2017) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Dynamo je sada technik, které společně mohou tvořit a vysoce dostupné klíč – hodnota strukturované úložiště Systém[1] nebo a distribuované úložiště dat.[1] Má vlastnosti obou databáze a distribuované hashovací tabulky (DHT). Byl vytvořen, aby pomohl řešit některé problémy se škálovatelností, se kterými se web Amazon.com setkal během prázdnin v roce 2004.[2] Do roku 2007 byl používán v Amazon Web Services, jako je jeho Jednoduchá služba ukládání (S3).[1]
Vztah k DynamoDB
Amazon DynamoDB je „postaveno na principech Dynama“[3] a je hostovanou službou v rámci infrastruktury AWS. Zatímco je Dynamo založeno na replikaci bez vůdce, DynamoDB používá replikaci jednoho vůdce.[4]
Zásady
- Inkrementální škálovatelnost: Dynamo by mělo být schopné škálovat jeden hostitel úložiště (nebo „uzel“) najednou, s minimálním dopadem na operátory systému i na samotný systém.
- Symetrie: Každý uzel v Dynamu by měl mít stejnou sadu odpovědností jako jeho kolegové; neměl by existovat žádný rozlišující uzel nebo uzly, které přebírají speciální role nebo zvláštní sadu odpovědností.
- Decentralizace: Rozšíření symetrie, design by měl upřednostňovat decentralizované techniky peer-to-peer před centralizovaným ovládáním.
- Heterogenita: Systém by měl být schopen využívat heterogenitu v infrastruktuře, na které běží. Například pracovní distribuce musí být úměrná schopnostem jednotlivých serverů. To je zásadní při přidávání nových uzlů s vyšší kapacitou, aniž byste museli upgradovat všechny hostitele najednou.
Techniky
Problém | Technika | Výhoda |
---|---|---|
Rozdělení datové sady | Důsledné hašování | Inkrementální, případně lineární škálovatelnost v poměru k počtu spolupracujících uzlů. |
Vysoce dostupné zápisy | Vektorové hodiny nebo Sady tečkované verze vektoru, odsouhlasení během čtení | Velikost verze je oddělena od rychlosti aktualizace. |
Zpracování dočasných poruch | Nedbalé kvorum a Naznačené předání | Poskytuje vysokou dostupnost a záruku trvanlivosti, když některé repliky nejsou k dispozici. |
Obnova z trvalých poruch | Používání anti-entropie Merkle strom | Lze použít k identifikaci rozdílů mezi vlastníky replik a proaktivní aktivaci synchronizace odlišných replik. |
Detekce členství a selhání | Protokol o členství založený na drbech a detekce poruch | Vyhýbá se centralizovanému registru pro ukládání informací o členství a živosti uzlů, zachování symetrie. |
Implementace
Amazon publikoval článek o Dynamu, ale nikdy neuvolnil jeho implementaci. Indexová vrstva Amazon S3 implementuje a rozšiřuje mnoho základních funkcí Dynama. Od té doby bylo na základě příspěvku vytvořeno několik implementací. Příspěvek také inspiroval mnoho dalších NoSQL implementace databáze, jako např Apache Cassandra, Projekt Voldemort a Riak.[2]
Viz také
Reference
- ^ A b C Decandia, G .; Hastorun, D .; Jampani, M .; Kakulapati, G .; Lakshman, A .; Pilchin, A .; Sivasubramanian, S .; Vosshall, P .; Vogels, W. (2007). „Dynamo: Amazon's Highly Available Key-value Store“. Sborník jednadvacátého sympozia ACM SIGOPS o principech operačních systémů - SOSP '07. str. 205. doi:10.1145/1294261.1294281. ISBN 9781595935915.
- ^ A b Amazon má další průchod na NoSQL s DynamoDB
- ^ Amazon DynamoDB - rychlá a škálovatelná databázová služba NoSQL určená pro aplikace v internetovém měřítku
- ^ Kleppmann, Martin (2. dubna 2017). Navrhování datově náročných aplikací (1. vyd.). O'Reilly Media. str. 177. ISBN 978-1449373320.
Dynamo není k dispozici uživatelům mimo Amazon. Matoucím způsobem AWS nabízí hostovaný databázový produkt s názvem DynamoDB, který používá zcela jinou architekturu: je založen na replikaci jednoho vůdce.