Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue?



Ähnliche Dokumente
Überblick und Vergleich von NoSQL. Datenbanksystemen

Big Data Informationen neu gelebt

Dokumentenorientierte Datenbanken - MongoDB

Java Enterprise Architekturen Willkommen in der Realität

RESTful Web. Representational State Transfer

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

PostgreSQL in großen Installationen

ANALYTICS, RISK MANAGEMENT & FINANCE ARCHITECTURE. NoSQL Datenbanksysteme Übersicht, Abgrenzung & Charakteristik

Überblick. Multi-Cloud Computing Motivation Redundant Array of Cloud Storage (RACS) Zusammenfassung. c td MWCC (WS14/15) Multi-Cloud Computing 13 1

NoSQL. Einblick in die Welt nicht-relationaler Datenbanken. Christoph Föhrdes. UnFUG, SS

Datenbanken. Prof. Dr. Bernhard Schiefer.

HTML5. Die Zukunft mobiler geodatenbasierter Anwendungen? Dipl.-Inf. Steve Schneider. Fraunhofer-Institut für Fabrikbetrieb und -automatisierung IFF

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

4D Server v12 64-bit Version BETA VERSION

Datenmanagement in Android-Apps. 16. Mai 2013

Apache HBase. A BigTable Column Store on top of Hadoop

Prozedurale Datenbank- Anwendungsprogrammierung

Predictive Modeling Markup Language. Thomas Morandell

Allgemeines zu Datenbanken

NoSQL mit Postgres 15. Juni 2015

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

ASAM ODS 6.0 next technology

Man liest sich: POP3/IMAP

Software-Validierung im Testsystem

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Elasticsearch aus OPS-Sicht Teil1. Markus Rodi Karlsruhe,

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Fachhochschule Deggendorf Platzziffer:...

User Experience vs. Retrievaltests Wie lässt sich die Relevanz von Suchergebnissen bewerten?

Der Cloud Point of Purchase. EuroCloud Conference, 18. Mai 2011 (Christoph Streit, CTO & Co-Founder ScaleUp)"

EMC. Data Lake Foundation

INDIVIDUELLE SOFTWARELÖSUNGEN CUSTOMSOFT CS GMBH

Systemvoraussetzungen winvs office winvs advisor

ORACLE Business Components for Java (BC4J) Marco Grawunder

Konsistenzproblematik bei der Cloud-Datenspeicherung

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

XINDICE. The Apache XML Project Name: J acqueline Langhorst blackyuriko@hotmail.de

Bausteine für zukünftige HL7- Hausstandards. Kraska D, Wentz B, Prokosch HU Medizinisches IK-Zentrum; Universitätsklinikum Erlangen

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

FORGE2015 HDC Session 4. Nachhaltige Infrastruktur als technologische Herausforderung. Tibor Kálmán Tim Hasler Sven Bingert

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Upgrade-Leitfaden. Apparo Fast Edit 1 / 7

3. Stored Procedures und PL/SQL

Synchronisations- Assistent

LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering

Abschlussarbeiten für StudentInnen

Business Application Framework für SharePoint Der Kern aller PSC-Lösungen

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Softwaretechnische Anforderungen zu Opale bluepearl Version 1.0 vom

Software development Consulting Library services. Schnittstellen zu Bibliothekssystemen

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Objektrelationale Datenbanken

5. Programmierschnittstellen für XML

Seminar Informationsintegration und Informationsqualität. Dragan Sunjka. 30. Juni 2006

AS/point, Ihr Partner die nächsten 10 und mehr Jahre -

DB2 Codepage Umstellung

5. Programmierschnittstellen für XML

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand:

Look Inside: desite. modellorientiertes Arbeiten im Bauwesen. B.I.M.

Datenbank-Service. RZ-Angebot zur Sicherstellung von Datenpersistenz. Thomas Eifert. Rechen- und Kommunikationszentrum (RZ)

Datenbanksysteme für Business, Technologie und Web. Nutzerdefinierte Replikation zur Realisierung neuer mobiler Datenbankanwendungen DB I S

FileLock FLEXIBLE SKALIERBARE KOSTENEFFIZIENTE HARDWARE- UNABHÄNGIGE LÖSUNGEN ZUR LANG-ZEIT DATENARCHIVIERUNG YOUR DATA.

Anforderungen an die HIS

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Continuous Database Integration mit Flyway

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Schnellste Realtime Segmentierung weltweit

1. Was bedeutet EAI? 2. Worin liegen die Vorteile? 3. Worin liegen die Nachteile? 4. EAI-Markt

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Bernadette Büsgen HR-Consulting

2. Datenbank-Programmierung

SQL on Hadoop für praktikables BI auf Big Data.! Hans-Peter Zorn und Dr. Dominik Benz, Inovex Gmbh

Preisvergleich ProfitBricks - Amazon Web Services M3 Instanz

Upgrade-Leitfaden. Apparo Fast Edit. Wechsel von Version 2 auf Version oder Wechsel von Version auf Version 3.0.

Vorhersagemodell für die Verfügbarkeit von IT-Services

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

Beratung. Results, no Excuses. Consulting. Lösungen. Grown from Experience. Ventum Consulting. SQL auf Hadoop Oliver Gehlert Ventum Consulting

Mobile Angebote Strategie einer Verwaltung. Freie und Hansestadt Hamburg Dr. Ursula Dankert

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Client-Server-Beziehungen

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Allgemeine Informationen

How to do? Projekte - Zeiterfassung

Redundante Dienste Idealfall und Notfalllösungen. Präsentation von Matthias Müller

Avira Server Security Produktupdates. Best Practice

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Urs Meier Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Copyright by QualityMinds. Quelle:

Lars Priebe Senior Systemberater. ORACLE Deutschland GmbH

Matrix42. Matrix42 Cloud Trial Erste Schritte. Version

ETL in den Zeiten von Big Data

Daten in EPUB visualisieren und dynamisch aktualisieren

Zeit bedeutet eine Abwägung von Skalierbarkeit und Konsistenz

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn

Paul Petzold Firmengründer, Verwaltungsratspräsident und Delegierter der Mirus Software AG

Transkript:

Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? Uta Störl, Thomas Hauf, Meike Klettke, Stefanie Scherzinger Hochschule Darmstadt, Uni Rostock, OTH Regensburg

Motivation Herausforderungen bei der Anwendungsentwicklung mit NoSQL-DBMS Heterogenität und Volatilität des Marktes Proprietäre Schnittstellen in NoSQL-Datenbanksystemen db.blogposts.find ( { _id : 042 }, { titel: 1, text: 1 } ) get blogposts, 042, { COLUMN => [ blogpost_daten:titel, blogpost_daten:text ] } SELECT titel, text FROM blogposts WHERE id = 042 ; function (doc) { if (doc._id == 042 ) { emit(doc._id, [doc.titel, doc.text]); } } Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 2

Motivation Agile Softwareentwicklung führt zu neuen Releases teilweise wöchentlich oder gar täglich mit verändertem Schema Schemaflexibilität von NoSQL-DBMS Maximale Flexibilität bei der Anwendungsentwicklung Aber: Was ist mit existierenden Daten im Produktivsystem? Applikation Version n Applikation Version n + Anwendung muss mit verschiedenen Versionen der Daten umgehen Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 3

Fokus der Analyse Mögliche Vorteile beim Einsatz eines Objekt-NoSQL Mapper Bekanntes Programmierparadigma mit einheitlicher Anfragesprache? Datenbanksystemunabhängigkeit? Unterstützung für Schema-Management? Bislang existieren keine Vergleichsstudien Marktsituation? Reifegrad der Technologie und Systeme? Performance? Applikation Objekt-NoSQL Mapper { } "id" : "042", "titel" :... id tit id tit Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 4

Objekt-NoSQL Mapper: Architektur Applikation id tit SELECT b.titel, b.text FROM blogpost b WHERE b.id = 042 Objekt-NoSQL Mapper id tit db.blogposts.find ( { _id : 042 }, { titel: 1, text: 1 } ) SELECT titel, text FROM blogposts WHERE id = 042 ; get blogposts, 042, { COLUMN => [ blogpost_daten:titel, blogpost_daten:text ] } { } "id" : "042", "titel" :... id titel 042 id titel 042 MongoDB Cassandra HBase Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 5

Marktübersicht Mapper für unterschiedliche Programmiersprachen Java,.NET, Python, Ruby Neuer und volatiler Markt Schwerpunkt der Analyse: Objekt-NoSQL Mapper für Java Standardisierung: Java Persistence API (JPA) mit Java Persistence Query Language (JPQL) Fokus auf etablierte, stabile Systeme Kategorisierung Mapper für mehrere NoSQL-DBMS (Multi Data Store Mapper) Mapper für einzelne NoSQL-DBMS (Single Data Store Mapper) Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 6

Evaluierte Java Objekt-NoSQL Mapper Multi Data Store Mapper Hibernate OGM Version 4.1 B6 Kundera Version 2.13 DataNucleus Version 4.01 EclipseLink Version 2.5.2 Single Data Store Mapper Morphia Version 0.108 Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 7

Evaluierte Java Objekt-NoSQL Mapper Dokumenten. DBMS DataNucleus EclipseLink Hibernate OGM Kundera Morphia CouchDB MongoDB Column-Family DBMS Cassandra HBase Graph-DBMS Neo4J Key-Value DBMS Ehcache Elasticsearch Infinispan Oracle NoSQL Redis Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 8

Objekt-NoSQL Mapper: Requirements Create / Read / Update / Delete (CRUD) Operationen auch Statements für Änderungen mehrerer Objekte Standardisierte Anfragesprache z.b. JPQL für Java Native Queries für spezielle Funktionalitäten bzw. Performance-Optimierung MapReduce Parallele, verteilte Anfrageverarbeitung Polyglot Persistence Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 9

Analyse der unterstützten Funktionalität Single Data Store Mapper *Eingeschränkte Funktionalität; abhängig vom verwendeten NoSQL-DBMS Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 10

Query Language Unterstützung Herausforderung: Sehr unterschiedliche Query-Schnittstellen Nicht nur syntaktisch verschieden, sondern auch Unterschiede in der Mächtigkeit Beispiele: NOT, LIKE, ORDER BY werden von vielen NoSQL-DBMS (noch) nicht unterstützt JOIN wird von (fast) keinem NoSQL-DBMS unterstützt Lösungsansätze 1. Unterstützung nur der Funktionalitäten, die von allen(!) NoSQL-DBMS unterstützt werden 2. NoSQL-DBMS-spezifische Unterstützung 3. Gleicher Funktionsumfang für alle NoSQL-DBMS mit Implementierung fehlender Funktionalität im ONM Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 11

Query Language Unterstützung Ansatz 2: NoSQL-DBMS-spezifische Unterstützung von JPQL- Operatoren Nachteil: Datenbanksystemunabhängigkeit eingeschränkt Systeme: Hibernate OGM, Kundera, EclipseLink Beispiel: Operatoren (Auswahl) in Kundera Erweiterung: Vom NoSQL-DBMS nicht unterstützte Suchoperatoren mit Hilfe von Suchmaschinen bereitstellen Systeme: Hibernate OGM (Hibernate Search), Kundera jeweils mit Apache Lucene Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 12

Query Language Unterstützung Ansatz 3: Gleicher Funktionsumfang für alle NoSQL-DBMS mit Implementierung fehlender Funktionalität im ONM Analyse der Query und Realisierung von nicht unterstützten Funktionalitäten im Objekt-NoSQL Mapper Vorteil: Datenbanksystemunabhängigkeit / Portabilität Nachteil: Performance Applikation Objekt-NoSQL Mapper Systeme: DataNucleus, Hibernate OGM (geplant) NoSQL-DBMS Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 13

Funktionalität: Fazit Datenbanksystemunabhängigkeit Standardisierte Anfragesprache (JPQL) Unterschiedliche Vielfalt der unterstützten NoSQL-DBMS Teilweise Abhängigkeit des Umfangs der JPQL-Unterstützung vom verwendeten NoSQL-DBMS Teilweise Modellierungseinschränkungen (@ElementCollection) Details siehe Paper Performance? Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 14

Performance Fragestellungen Wie beeinflusst die Nutzung eines Objekt-NoSQL Mappers die Performance von Lese- und Schreiboperationen? Gibt es Unterschiede in den Performance-Auswirkungen zwischen verschiedenen Objekt-NoSQL Mappern? Gibt es Unterschiede in den Performance-Auswirkungen abhängig vom verwendeten NoSQL-DBMS? Disclaimer Es existiert derzeit kein allgemein anerkannter NoSQL- Benchmark mit nicht-trivialen Operationen Viele Objekt-NoSQL Mapper (ONM) sind in einem sehr frühen Release-Stadium Veränderungen mit jedem Release Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 15

Performance Datenmodell Mengengerüst Skalierung zwischen 1.000 und 1.000.000 Profile Pro Profil 5 WallEntry-Objekte mit Ø 2 Comment-Objekten 3 Chat-Objekte mit Ø 5 Message-Objekten Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 16

Performance Evaluierte Objekt-NoSQL Mapper / unterstützte NoSQL-DBMS Hibernate OGM Kundera Hibernate OGM Kundera Kundera Kundera DataNucleus DataNucleus DataNucleus EclipseLink Morphia MongoDB CouchDB Cassandra HBase Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 17

Performance Messumgebung Big Data Cluster der Hochschule Darmstadt Client und Server auf separaten Maschinen im gleichen lokalen Netzwerk Dell PowerEdge C6220 2 Intel Xeon E5-2609 (je 4 Cores) 32 GB RAM 4 x 1 TB SATA 7.2 k HDs Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 18

Read Performance: Queries 0. find( Profile, intvalue ) 1. SELECT p FROM Profile p WHERE p.profileid= intvalue 2. SELECT p FROM Profile p WHERE p.firstname= stringvalue AND p.lastname= stringvalue 3. SELECT p FROM Profile p WHERE p.yearofbirth= intvalue 4. SELECT p FROM Profile p WHERE p.lastname= stringvalue 5. SELECT p FROM Profile p WHERE p.yearofbirth >= intvalue AND p.yearofbirth <= intvalue 6. SELECT p FROM Profile p WHERE p.lastname= stringvalue AND p.firstname <> stringvalue AND p.firstname <> stringvalue 7. SELECT p FROM Profile p WHERE p.lastname= stringvalue AND ( p.firstname = stringvalue OR p.firstname = stringvalue ) 8. SELECT w FROM WallEntry w WHERE w.likecounter >= intvalue AND w.entry LIKE %stringvalue% 9. SELECT p FROM Profile p WHERE p.logininfo.mail LIKE %@stringvalue AND p.country IN ( stringvalue, stringvalue ) 10. SELECT w FROM WallEntry w JOIN w.comments c WHERE c.comment LIKE %stringvalue% AND w.entry LIKE %stringvalue% Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 19

Read Performance 10.000 Profile Werte für MongoDB Ergebnisse für die anderen NoSQL-DBMS vergleichbar Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 20

Read Performance 10.000 Profile (ohne DataNucleus) Werte für MongoDB Query 0 und 1: find-operator vs. JPQL Fehlende Werte Query nicht ausführbar oder falsche Ergebnisse Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 21

Read Performance Skalierung (ohne DataNucleus) Query 4: SELECT p FROM Profile p WHERE p.lastname = stringvalue Werte für MongoDB (Ergebnisse für die anderen NoSQL-DBMS vergleichbar) Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 22

Write Performance: Skalierung Insert Profile und Login 1:1 Beziehung gemeinsame Speicherung Profile und WallEntry 1:N Beziehung 100,000,000 100,000,000 Werte für MongoDB Overhead-Faktor abhängig vom verwendeten NoSQL-DBMS Werte für MongoDB Overhead-Faktor abhängig vom verwendeten NoSQL-DBMS Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 23

Write Performance: Update Update von 25 Profilen auf unterschiedlichen Datenmengen Werte für MongoDB Overhead-Faktor abhängig vom verwendeten NoSQL-DBMS Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 24

Performance: Fazit Read Performance Overhead (außer DataNucleus) zwischen Faktor 1.4 und 2 (unabhängig vom verwendeten NoSQL-DBMS) ABER: Nicht alle Queries können von allen ONM ausgeführt werden Teilweise Probleme mit Korrektheit der Query-Ausführung (abhängig vom NoSQL-DBMS) Testen!!! Write Performance Overhead beim Schreiben (Insert/Update/Delete) deutlich größer als beim Lesen Unterschiedliche NoSQL-DBMS: Rangfolge zwischen den ONM bleibt gleich, aber Faktor zur nativen Implementierung signifikant unterschiedlich (2 1000) Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 25

Status Quo Java Objekt-NoSQL Mapper Marktsituation Etablierte Objekt-Relational Mapper Anbieter erweitern ihr Angebot um Objekt-NoSQL Mapper (z.b. Hibernate, EclipseLink, DataNucleus) sowie neue Anbieter im Markt (z.b. Kundera) Volatiler Markt Datenbanksystemunabhängigkeit Standardisierte Anfragesprache (JPQL) Unterschiedliche Vielfalt der unterstützten NoSQL-DBMS Teilweise Abhängigkeit des Umfangs der JPQL-Unterstützung vom verwendeten NoSQL-DBMS Frühes Entwicklungsstadium teilweise noch mit Fehlern Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 26

Status Quo Java Objekt-NoSQL Mapper Performance Konstanter (moderater) und vom verwendeten NoSQL-DBMS unabhängiger Overhead für Read-Operationen Teilweise großer Overhead für Write-Operationen (Overhead stark abhängig vom verwendeten NoSQL-DBMS) Schema-Management Unterstützung für Schema-Definition und Validierung der Daten Bislang nur rudimentäre Unterstützung für Schema-Evolution Details siehe Paper Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 27

Ausblick Objekt-NoSQL Mapping Breitere Unterstützung für verschiedene NoSQL-DBMS Mächtigere Query Engines In NoSQL-DBMS und/oder in Objekt-NoSQL Mappern? Flexibilisierung der Mapping-Strategien Ausbau der Unterstützung für Schema-Evolution Polyglot Persistence Unterstützung für automatisierte Polyglot Persistence? Performance-Verbesserungen Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 28

Literatur M. Klettke, S. Scherzinger und U. Störl. Datenbanken ohne Schema? Herausforderungen und Lösungs-Strategien in der agilen Anwendungsentwicklung mit schemaflexiblen NoSQL- Datenbanksystemen. Datenbank-Spektrum, 14(2):119 129, 2014. P. J. Sadalage and M. Fowler. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Addison Wesley, 2012. M. Schaarschmidt, F. Gessert, N. Ritter. Towards Automated Polyglot Persistence. BTW 2015, Hamburg U. Störl, Th. Hauf, M. Klettke und Stefanie Scherzinger: Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? BTW 2015, Hamburg F. Wolf, H. Betz, F. Gropengießer, K.-U. Sattler: Hibernating in the Cloud - Implementation and Evaluation of Object- NoSQL-Mapping. BTW 2013, Magdeburg: 327-341 Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 29

Literatur Java Objekt-NoSQL Mapper DataNucleus: http://www.datanucleus.org/ EclipseLink: http://eclipse.org/eclipselink/ Hibernate OGM: http://hibernate.org/ogm/ http://hibernate.org/ogm/roadmap/ Kundera: https://github.com/impetus-opensource/kundera Morphia: https://github.com/mongodb/morphia/ PlayORM: http://buffalosw.com/products/playorm/ SpringData: http://projects.spring.io/spring-data/ Uta Störl Schemaless NoSQL Data Stores Object-NoSQL Mappers to the Rescue? 30