Databaseless In-Memory Data Processing with Java and EclipseStore
Details
Mit Big-Data und Cloud-Computing hat sich die Anwendungsentwicklung mit Java stark verändert: Von Monolithen zu Microservices, von Application Server zu Microservice Frameworks, vom In-House-Server zu Serverless Computing. Die Verarbeitung von Daten hat sich dagegen kaum verändert. Relationale Datenbanken und JPA bilden nach wie vor die Standardstrategie zur Datenspeicherung. Mit Big-Data und spätestens dem aktuellen KI-Hype gibt es jedoch immer mehr Anwendungsfälle für die traditionelle Datenbanksysteme mit Reaktionszeiten im Bereich von Millisekunden nicht mehr schnell genug sind. Dazu kommen explodierende Cloud-Kosten, die zu einem Teil auf aufgeblähte Software-Architekturen zurückzuführen sind, die mittlerweile für die Verarbeitung von Daten benötigt wird. Und Entwickler müssen sich derweil mit ebenso wachsender Komplexität herumplagen.
Unternehmen aus dem Bereich Online-Banking und Online-Gaming verfolgen bereits seit vielen Jahren einen völlig anderen Ansatz: Die Verarbeitung von Daten durch die Anwendung selbst mit Pure Java, völlig ohne traditionellem Datenbanksystem. Damit sind Reaktionszeiten im Bereich von Mikro- bis Nanosekunden möglich - 1000 Mal schneller jede Datenbanken. Solche Systeme mussten bislang jedoch individuell entwickelt werden, was mit enormen Aufwand und -Kosten verbunden ist. Mit EclipseStore gibt es dafür jedoch jetzt ein Framework, das sich einfach und schnell in jede Java Anwendung einbinden lässt.
EclipseStore ist ein Persistenz Framework, das die Speicherung völlig beliebiger Java Objektmodelle, beliebiger Größe und Komplexität ermöglicht - und zwar völlig ohne teuren mappings wie ORM oder Datenkonvertierungen nach XML oder JSON. Die Speicherung der persistenten Daten kann in herkömmlichen Dateien auf einer lokalen Festplatte, einem Persistent Volume oder in einer Cloud Object Storage wie AWS S3 erfolgen. Daraus ergeben sich im wesentlichen 3 Vorteile:
- High-Performance Datenverarbeitung mit Pure Java: Daten lassen sich ausschließlich mit Core Java Features wie Java Streams im schnellen DRAM verarbeiten, was Antwortzeiten, Suchen und Filtern im Bereich von Mikrosekunden ermöglicht - bis zu 1000 Mal schneller als vergleichbare JPA Queries und bis zu 100 Mal schneller als reine Cache Zugriffe. 2) Drastische Cloud Kosten Einsparungen: Cloud Object Storage wie AWS S3 ist bis zu 96% günstiger als jede Datenbank in der Cloud.
- Simplicity - der Ansatz vereinfacht die gesamte Anwendungsarchitektur sowie den gesamten Anwendungsentwicklungsprozess radikal. Es gibt keine Einschränkungen mehr in Sachen Objektmodell-Design und Klassen, keine Mappings oder Datenkonvertierungen, keine datenankspezifischen Funktionen, Konzepte oder Abfragesprachen, kein komplexes Caching und die Schemamigration ist ebenfalls elegant und einfach.
EclipseStore ist ein offizielles Eclipse Open Source Projekt. Der Quellcode ist unter der Eclipse Public License 2.0 veröffentlicht, die eine kommerzielle Nutzung in proprietärer Software erlaubt. Zahlreiche große Unternehmen setzen EclipseStore breeits produktiv ein und es werden immer mehr.
In dieser Session erfahrt Ihr, wie EclipseStore funktioniert, wie man damit startet, für welche Anwendungsfälle EclipseStore geeignet ist, wo die Grenzen liegen und auch die kuriose Wahrheit darüber was für die meisten Java Entwickler die größte Herausforderung beim Einsatz von EclipseStore ist.
Referenten:
Florian Habermann, Project Lead of EclipseStore & Eclipse Serializer, MicroStream CTO Markus Kett, MicroStream CEO
