H2

H2
Typ Relační DBMS
Autor Thomas Mueller
Vývojář Thomas Muller
Zapsáno v Jáva
Operační systém Multiplatformní software
První vydání prosince 2005
Hardwarová platforma Java virtuální stroj
Nejnovější verze 2.1.212 [1] (9. dubna 2022 ) ( 2022-04-09 )
Licence MPL , EPL
webová stránka h2database.com

H2  je open source multiplatformní DBMS napsaný výhradně v Javě .

Navzdory své malé velikosti (něco málo přes 1 MB) podporuje H2 hned po vybalení následující funkce:

Co ještě nebylo implementováno:

H2 se používá například v projektu Grails jako základní DBMS pro vývoj.

Historie vytvoření

Vývoj H2 začal v květnu 2004, s prvním vydáním 14. prosince 2005. Hlavním vývojářem je Thomas Müller, jeden z vývojářů za Hypersonic SQL ( HSQLDB ). H2 je zkratka pro Hypersonic 2, ale H2 nepoužívá kód HSQLDB a byl přepsán.

Proč byla vybrána platforma Java

Srovnání se stávajícími DBMS

Web H2 obsahuje srovnávací srovnání mezi H2 a některými dalšími populárními databázemi (zejména HSQLDB, PostgreSQL a MySQL), které ukazují, že H2 má obecně lepší výkon než tyto databáze. Porovnání s komerčními DBMS (Oracle, DB2, MSSQL) nebylo provedeno z důvodu omezení vyplývajících z licencí na tyto produkty.

Problémy se spolehlivostí

Dokumentace k H2 uvádí, že existují problémy s ACID z hlediska spolehlivosti ( trvanlivosti ) [2] , což může vést ke ztrátě dat dokončených transakcí při vypnutí napájení.
Dokumentace uvádí, že systém nepoužívá volání FileDescriptor.sync(), FileChannel.force() a fsync, protože výrazně zpomalují systém: lze s nimi dosáhnout pouze 60 zápisů za sekundu .
Dalším důvodem, proč se fsync nepoužívá, je to, že mnoho disků je dodáváno s povoleným ukládáním do mezipaměti.
Pro zajištění trvanlivosti se v dokumentaci doporučuje používat další příkazy SET WRITE_DELAY a CHECKPOINT SYNC , které jsou dostupné pouze s právy správce.

Původní text  (anglicky)[ zobrazitskrýt] Pokus o vyprázdnění vyrovnávacích pamětí pevného disku je těžký, a pokud tak učiníte, výkon je velmi špatný. Nejprve se musíte ujistit, že pevný disk skutečně vyprázdní všechny vyrovnávací paměti. Testy ukazují, že to nelze provést spolehlivým způsobem. Pak se maximální počet transakcí pohybuje kolem 60 za sekundu. Z těchto důvodů je výchozím chováním H2 zpoždění zápisu potvrzených transakcí.

V H2 může po výpadku napájení dojít ke ztrátě o něco více než jedné sekundy potvrzených transakcí. Chcete-li změnit chování, použijte SET WRITE_DELAY a CHECKPOINT SYNC. Většina ostatních databází podporuje také zpoždění potvrzení. V porovnání výkonu bylo použito zpoždění potvrzení pro všechny databáze, které jej podporují.

Plánované inovace

Nové verze

Aktivní práce na DBMS pokračují, nové verze jsou vydávány téměř každý měsíc.

Poznámky

Je docela pozoruhodné, že navzdory bohaté funkčnosti nejsou při vývoji DBMS použity knihovny třetích stran. Veškerou potřebnou funkcionalitu implementují sami vývojáři, aby usnadnili nasazení aplikace. Ve skutečnosti se celý DBMS vejde do 1 MB souboru a celý archiv včetně příkladů a zdrojového kódu se vejde do 5 MB (pro srovnání: distribuce Oracle 11 DBMS pro Microsoft Windows zabírá 1,7 GB).

DBMS je velmi užitečný při vývoji, protože umožňuje vytvářet sady testovacích dat přímo v paměti, má pokročilé možnosti dotazování, řadu funkcí, které jsou kompatibilní s těžšími databázemi, snadno se konfiguruje a má podrobnou a srozumitelnou dokumentaci. Pro malé programy může být DBMS použit samostatně, protože je snadno integrován do aplikace.

  1. Verze 2.1.212 . Získáno 17. května 2022. Archivováno z originálu dne 17. května 2022.
  2. [1] Archivováno 9. července 2006 na Wayback Machine 

Odkazy