H2

H2
Type Relationel DBMS
Forfatter Thomas Mueller
Udvikler Thomas Muller
Skrevet i Java
Operativ system Cross-platform software
Første udgave december 2005
Hardware platform Java virtuel maskine
nyeste version 2.1.212 [1] (9. april 2022 ) ( 09-04-2022 )
Licens MPL , EPL
Internet side h2database.com

H2  er en open source DBMS på tværs af platforme skrevet udelukkende i Java .

På trods af sin lille størrelse (lidt over 1 MB) understøtter H2 følgende funktioner ud af æsken:

Hvad er endnu ikke implementeret:

H2 bruges f.eks. i Grails -projektet som base DBMS for udvikling.

Oprettelseshistorie

Udviklingen af ​​H2 begyndte i maj 2004, med den første udgivelse den 14. december 2005. Hovedudvikleren er Thomas Müller, en af ​​udviklerne bag Hypersonic SQL ( HSQLDB ). H2 står for Hypersonic 2, dog bruger H2 ikke HSQLDB-kode og er blevet omskrevet.

Hvorfor Java-platformen blev valgt

Sammenligninger med eksisterende DBMS'er

H2-webstedet indeholder benchmark-sammenligninger mellem H2 og nogle andre populære databaser (især HSQLDB, PostgreSQL og MySQL), som viser, at H2 generelt yder bedre end disse databaser. Sammenligninger med kommercielle DBMS (Oracle, DB2, MSSQL) blev ikke udført på grund af begrænsninger pålagt af licenser for disse produkter.

Problemer med pålidelighed

Dokumentationen for H2 indikerer, at der er problemer med ACID med hensyn til pålidelighed ( holdbarhed ) [2] , hvilket kan føre til datatab af gennemførte transaktioner, når strømmen slukkes. Dokumentationen angiver, at systemet ikke bruger FileDescriptor.sync(), FileChannel.force() og fsync-kaldene, da de bremser systemet betydeligt: ​​kun 60 skrivninger i sekundet
kan opnås ved at bruge dem . En anden grund til, at fsync ikke bruges, er, at mange drev kommer med skrive-cache aktiveret. For at sikre holdbarhed foreslår dokumentationen brug af yderligere kommandoer SET WRITE_DELAY og CHECKPOINT SYNC , som kun er tilgængelige med administratorrettigheder.

Originaltekst  (engelsk)[ Visskjule] Det er svært at prøve at skylle harddiskbuffere, og hvis du gør det, er ydeevnen meget dårlig. Først skal du sikre dig, at harddisken rent faktisk skyller alle buffere. Test viser, at dette ikke kan gøres på en pålidelig måde. Så er det maksimale antal transaktioner omkring 60 pr. sekund. På grund af disse grunde er standardadfærden for H2 at forsinke skrivningen af ​​forpligtede transaktioner.

I H2, efter et strømsvigt, kan lidt mere end et sekund af forpligtede transaktioner gå tabt. For at ændre adfærden skal du bruge SET WRITE_DELAY og CHECKPOINT SYNC. De fleste andre databaser understøtter også commit delay. I præstationssammenligningen blev commit delay brugt til alle databaser, der understøtter det.

Planlagte innovationer

Nye versioner

Aktivt arbejde fortsætter på DBMS, nye versioner udgives næsten hver måned.

Noter

Det er ret bemærkelsesværdigt, at der på trods af den rige funktionalitet ikke bruges tredjepartsbiblioteker i udviklingen af ​​DBMS. Al den nødvendige funktionalitet implementeres af udviklerne selv for at lette implementeringen af ​​applikationen. Faktisk passer hele DBMS i en 1 MB fil, og hele arkivet, inklusive eksempler og kildekode, passer i 5 MB (til sammenligning: Oracle 11 DBMS distributionen til Microsoft Windows tager 1,7 GB).

DBMS er meget nyttigt i udviklingen, da det giver dig mulighed for at oprette testdatasæt direkte i hukommelsen, har avancerede forespørgselsmuligheder, talrige funktioner, der er kompatible med tungere databaser, er let at konfigurere og har detaljeret og forståelig dokumentation. Til små programmer kan DBMS bruges alene, da det nemt integreres i applikationen.

  1. Version 2.1.212 . Hentet 17. maj 2022. Arkiveret fra originalen 17. maj 2022.
  2. [1] Arkiveret 9. juli 2006 på Wayback Machine 

Links