IMDG (anglicky In-Memory Data Grid) je zkratka pro distribuované objektové úložiště. Data jsou uložena v operační paměti ve tvaru klíč – hodnota. Oproti tradičním systémům, ve kterých jsou typy klíčů a hodnot omezeny polem bajtů (byte array) nebo řetězcem (String), v IMDG žádné omezení není: lze použít jakýkoliv objekt. Tato vlastnost významně zvyšuje agilitu tím, že umožňuje ukládat jakékoliv objekty bez serializace/deserializace navíc.
Rozdil od IMDB Na rozdíl od IMDB, In-Memory Data Grid osvobozuje uživatele od nutnosti používání ORM a umožňuje přistupovat v datům jako k obecné hash-tabulce. To se hodí pro snadné využití v nejpopulárnějších programovacích jazycích, jako Java, C#/.Net, Python, C++ atd.
Charakteristika Úkolem, který řeší IMDG je zajištění rychlého přístupu k datům prostřednictvím jejich uložení do operační paměti (RAM) v distribuovaném stavu.
Moderní in-memory technologie umožňují spojení s existujícími úložišti dat jako například Hadoop nebo Postgresql. V takovém případě bude IMDG systém splňovat funkci cache.
Různé systémy mají různé mechanismy zamykání přístupu k datům, nejmodernější poskytují konkurenční zamykací mechanismus (jako například MVCC – Multi-Version Concurrency Control) a zároveň splňují ACID vlastnosti s největším výkonem.alt=Příklad použití IMDG|náhled|Příklad použití IMDG
Příklady použití IMDG se dá použít buď jako datové úložiště, nebo jako cache vrstvu pro již existující databázi. Na obrázku je uvedena schema klasického použití IMDG.
V takovém konkrétním případě každý klíč s množinou hodnot patří do jednotlivého uzlu. Vnější databáze není povinná, ale pokud se vyskytuje, tak, zpravidla, IMDG bude automatické načítat a zapisovat data do databáze.
náhled Použití IMDG a Compute Grid Typická in-memory architektura rozděluje data v klasteru pomocí IMDG, pak se spustitelný kód posílá do těch serverů, ve kterých jsou potřebná data. Integrace mezi IMDG a Computer Grid je velmi důležitá, protože získaný spustitelný kód (výpočetní úkol), obvykle je součástí gridových výpočtů (Grid computing) a musí být správně nasazen (deploy), sbalancován (load-balancing), mít vysokou stupeň odolnosti proti selhání (fail-over) a mít možnost být spustitelný podle předem daného rozvrhu.
Specifické funkcionální rysy Neomezený typ uložených klíčů a hodnot. Podpora distribuovaných ACID transakcí. Obecně řečeno 2-phase-commit (2PC) protokol zajišťuje konzistenci dat uvnitř klasteru. Systémy IMDG splňují ACID (atomicita (atomicity), konzistence (consistency), izolovanost (isolation), trvalost (durability)). Podpora stovek tisíc změn in-memory dat. Snadná horizontální škálovatelnost bez rozložení. Rychlejší přístup k datům díky uložení v RAM paměti.
Existující IMDG řešení Hazelcast IMDG GridGain (Apache Ignite) Redis Apache Geode Infispan Ehcache
Odkazy Externí odkazy Co je IMDG. Habr (rusky) In-memory Data Grid vs In-memory Data Bases. InfoWorld (anglicky) Jak vybrat IMDG řešení. Habr (rusky)
Kategorie:Počítačová paměť Kategorie:Anglické zkratky