otávio santana @otaviojava€¦ · nosql 01 database 02 doesn't use structure 03 not...

23
Otávio Santana @otaviojava Eclipse JNoSQL

Upload: others

Post on 28-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

Otávio Santana @otaviojava

Eclipse JNoSQL

Page 2: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

NoSQL

01 Database

02 Doesn't use structure

03 Not Transaction

04 Base

Five different types05

Page 3: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

Key Value

AmazonDynamo

AmazonS3

Redis

Hazelcast

Apollo

Ares

Aphrodite

Sun

War

Love Beauty

Page 4: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

Column Family

Apollo

Aphrodite

Ares

Kratos

Duty

Duty

Duty

Dead Gods

Love, happy

Sun

War

13

Color

weaponSword

Row-key ColumnsHBase

Scylla

SimpleDb

Cassandra

DynamoDB

Clouddata

Page 5: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

Document{ "name":"Diana", "duty":[ "Hunt", "Moon", "Nature" ], "siblings":{ "Apollo":"brother" }}

ApacheCouchDB

MongoDB

Couchbase

Page 6: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

Graph

Apollo Ares

Kratoswas killed by was killed by

killed killed

Neo4j

InfoGrid

Sones

HyperGraphDB

Page 7: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

Multi-Model

01

02

03

04

OrientDB (graph, document)

Couchbase (key value, document)

Elasticsearch (document, graph)

ArangoDB (document, graph, key-value)

Page 8: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

BASE vs ACID

• Basically Available• Soft state• Eventual consistency

• Atomicity• Consistency• Isolation• Durability

Page 9: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

CAP

Page 10: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

JPA & JDO problem for NoSQL

01

02

03

04

05

06

Saves Async

Async Callback

Time to Live (TTL)

Consistency Level

SQL based

Diversity in NoSQL

Page 11: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

The Eclipse NoSQL Solution

DIANA

ARTEMIS

JNoSQL

DAO

Mapping

Communication

Column Documents Key Graph

Data Tier

01

02

03

04

Mapping API

Communication API

No lock-in

Divide and Conquer

Page 12: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

Communication Issue

ODocument document = new ODocument(“collection”);document.field(name, value);

JsonObject jsonObject = JsonObject.create();jsonObject.put(name, value);

BaseDocument baseDocument = new BaseDocument();baseDocument.addAttribute(name, value);

Document document = new Document();document.append(name, value);

Page 13: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

Eclipse JNoSQL

DocumentEntity entity = DocumentEntity.of("collection");entity.add(name, value);

Page 14: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

01

02

03

04

05

06

Artemis

CDI Based

Diana Based

Annotation Based

Events to insert, delete, update

Supports to Bean Validation

Configurable and Extensible

07 Query Method

Page 15: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

Support to

JSON XML YAMLJava

Page 16: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

NoSQL Providers

Page 17: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

Draft and code proposal

Community Feedback

Involve NoSQL Vendors

Involve Solution Vendors

Eclipse Project

Road Map

Development

Page 18: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

JUGs/Communities

Page 19: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

Latin America

● Paraguay, Asunción● Chile, Santiago de Chile● Brasil, São Paulo● Uruguay, Montevideo● Argentina, Buenos Aires● Perú, Lima● Ecuador, Quito● Colombia, Barranquilla● Costa Rica, San José● Panamá, Ciudad de Panamá● México, Ciudad de México● Guatemala, Ciudad de Guatemala

Page 20: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

Oracle Code SF

● HOL5998 Eclipse JNoSQL: One API to Many NoSQL Databases - BYOL● DEV6043 Let’s Make Graph Databases Fun Again with Java● DEV6109 Jakarta EE Meets NoSQL in the Cloud Age

Page 21: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

Specification Process

● Java EE belongs to Eclipse Foundation● Code First● Move Jakarta EE forwards with new specifications● Hopefully a new namespace until Oracle One

Page 22: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

References

Communication APISupport to Async operationsAPIs

Mapping APIBean ValidationEventsRepositoryTemplate

Query by textPrepared Statement

https://projects.eclipse.org/projects/technology.jnosqlhttps://github.com/eclipse?q=Jnosqlhttps://dev.eclipse.org/mailman/listinfo/jnosql-devhttps://wiki.eclipse.org/JNoSQL

Page 23: Otávio Santana @otaviojava€¦ · NoSQL 01 Database 02 Doesn't use structure 03 Not Transaction 04 Base 05 Five different types

Otávio Santana @otaviojava

Thank you