db4o open source object database
db4o :: Blog in Deutsch

Syndicate This

Samstag, Februar 25, 2006

db4o V5.2 Released: Bessere Performance, bessere Abfragen

db4objects hat Version 5.2 freigegeben, ein Produktionsrelease, das ab sofort zum freien Download in der db4o Community Zone zur Verfuegung steht.

db4o Version 5.2 kommt mit bis zu 300% Performance-Steigerung sowie zahlreichen zusaetzlichen APIs fuer Native Abfragen (Native Queries) und sortierte Abfragen, um die Entwicklerproduktivitaet noch weiter zu erhoehen.

VERBESSERTE PERFORMANCE: In Antwort auf und in Kooperation mit unseren Usern hat db4objects die Insert und Delete Performance massiv im Vergleich zu frueheren Versionen von V5 erhoeht. Die Dauer um 100.000 einfach Objekte zu speichern wurde auf ein Viertel gedrueckt. Die Insert Performance, die in Version 5.0 (mit FlushFileBuffers = on) unter einer Optimierung im Bereich des File-Flushings gelitten hatte, wurde nicht nur auf V4.5 Level zurueckgebracht (eine Version, in der in sehr seltenen Faellen Datenkorruption aufgrund der File-Flushing Reihenfolge im Falle eines Stromausfalls entstehen konnten), sondern ist sogar schneller - fuer tiefe Objektstrukturen um rund 20%.

Natuerlich sind die Eigenschaften des Speichergeraetes entscheidend fuer Performance. Auf Standard-Hardware ( P4 3Ghz, 7000 RPM SATA ) speichert db4o 14.000 Objekte pro Sekunde. Mit einem Speicher IO Adapter springt die Geschwindigkeit schon auf 25.000 Objekte/Sekunde hoch. Und wenn db4o im Hauptspeicher laeuft, ist db4o sogar in der Lage, 200.000 und mehr Objekte pro Sekunde zu speichern - ein Wert den db4o z.B. im Steuerungssystem des spanischen Hochgeschwindigkeitszugs AVE unter beweist stellt.

NATIVE QUERIES: Die weit-beachtete db4o Native Query Maschine wurde weiter ausgebaut und wurde geschwindigkeits-optimiert fuer weitere Anwendungsfaelle wie:

  • String#startsWith()
  • String#endsWith()
  • String#contains()
  • Static member access and method calls
  • Array access for non-candidate based fields
  • Arbitrary method calls on non-candidate based fields

Ein Beispiel mit #startsWith Optimierung sieht folgendermassen aus:

IList employees = db.Query(delegate(Employee e)
{
return e.FirstName.StartsWith("P");
});

Seit Version 5.0 unterstuetzt db4o Native Queries, um Datenbankabfragen in nativer Semantik der Programmiersprache, als z.B. Java, C# oder VB.NET, auszudruecken. Das macht Softwareentwicklung erheblich produktiver als bestehende, string-basierende APIs (wie SQL, JDO, OQL) zu verwenden, weil Entwickler einen 100% typensicheren, 100% refakturierbaren und 100% objekt-orientierten Zugriff auf Ihre Datenbank bekommen.

SORTIERTE ABFRAGEN: Wir haben den am meisten nachgefragten Wunsch erfuellt: Sortierte Abfragen. Ein neues Interface ist kompatibel mit Standard-Sortierung in Java und .NET. Die Abfrage-Maschine akzeptiert jetzt ein normales java.util.Comparator / System.Collections.IComparer Objekt, was echtes, objekt-orientiertes Sortieren mit beliebiger Komplexitaet erlaubt. Der neue Sortiermechanismus funktioniert sowohl fuer SODA als auch Native Queries.

NEUE MONO PASCAL CASE DISTRIBUTION: Fuer unsere schnell wachsende Mono Anwendergemeinde haben wir ein neues API mit PascalCase Namenskonventionen herausgegeben. Das neue API ist Standard jeder db4o fuer Mono-Version 5.2.002 oder hoeher. Das alte API ist weiterhin verfuegbar - in dem Ordner namens 'legacy' in db4o's Installationsverzeichnis, nachdem das tarball/RPM Paket von V5.2 heruntergeladen und installiert wurde.

VISUAL BASIC TUTORIAL: db4objects legt besonderen Wert darauf, eine professionelle und effiziente Dokumentation zu den Produkten anzubieten. Als weiteren Schritt in diesem Programm hat db4o jetzt das geschaetzte interaktive Tutorial fuer Visual Basic erweitert. Das Tutorial (in englischer Sprache) ist Bestandteil des Version 5.2 Downloads und kann im Distributionsordner doc/tutorial/vb folder gefunden werden.