SlideShare una empresa de Scribd logo
1 de 23
Darwino DB
The Ultimate JSON Document Store
Introduction to Darwino DB
• NO-SQL, JSON based store, including semi structured data and attachments
• Designed for social and collaborative applications
• Designed for mobile development
– Local or remote access to the data, including replication
• Designed for cloud, with built-in multi tenancy capability
• Allows distributed computing with replication between instances
• Databases can be deployed on the cloud
• Leverage the existing relational database infrastructure
– Support very large amount of data
– Scalability is provided by the underlying RDBMS
Darwino DB Main Features
₋ Transactional
₋ Built-in multi-tenancy
₋ Document hierarchy
₋ Multi-level security
₋ Down to document level security
₋ Tailored for continuous delivery
₋ Static table schema to avoid table
changes
₋ Multi-points, two way replication,
including external data sources
₋ Same implementation everywhere
₋ Advanced query support
₋ Extensible MongoDB like query
language
₋ Data aggregation
₋ Joins
₋ Full text search
₋ Integrated social features
₋ Tagging, liking, rating
₋ Out of the box rest services
₋ With Java & Javascript binding
₋ OpenAPI compliant (e.g. Swagger)
The Value of RDBMS
• RDBMS is the most known and portable data store
– RDBMS are available and validated by many organizations
– RDBMS are available from many cloud vendors: IBM BlueMix, MS Azure…
• Many RDBMS capabilities can enhance the document store experience
– Transactions, queries, joins, performance, scalability, reliability…
– Standard access APIs, reporting…
• New RDBMS borrow concepts from the pure NoSQL implementation
– Store and index JSON documents, spatial indexes, in memory DB
• Think that a basic JSON document store is a table with 2 columns: id & json
– But other tables can add many capabilities on top of this
Darwino DB Typical Topology
Store Native API
Relational DB
REST APINative Local
Web Application
Relational DB
Native Local Application
Store Native API
Replication
Engine
Replication via
HTTP
Replication
Engine
Other Data
Server
Server
Mobile Clients
Web Browsers
Direct Access To the
Remote Data
Darwino DB Concepts
• A Server is the physical connection to the RDBMS or REST server
• A Session is the access point for a user
• A Database is the main container for JSON documents
• Databases are made of Stores, that are buckets of consistent documents
– The documents in the same store shares indexes, query fields, …
– Some stores are predefined: _default, _local, _comments & _design
• Documents are regular JSON valid values: objects, array & literals
– It is strongly advised to store objects, as some features depend on object fields
• Binary Attachments can be associated to any JSON document
• Indexes are like materialized views, or mapping in a map/reduce
Database Meta-Model
• A JSON store has several options that drives the behavior of each databases
– List of stores, extracted fields, indexes, full text search options
• Options are provided as a JSON object during the deployment step
– The deployment step checks the version number and, if auto-deploy is activated,
acts on the data or table meta-data
• Database is using 3 version numbers
– Database application version, as described by the definition
– Customization version for advanced
– Darwino relational table format – handled by the Darwino runtime
Simple Deployment
• The JEE ApplicationContextListener auto deploys the database
– The application is not activated until the deployment is completed
• The Mobile framework also auto deploys the database
• If RDBMS DDL access is not enabled, then the DDL can be generated as a text
file and sent to a DB admin
Documents
• Documents store JSON values with attachments
• Documents are identified by:
– A UNID that is a string of 512c max. The UNID can be set by the developer or
generated as a GUID.
• It is unique per store and traverses replication
– An Id that is an integer generated by Darwino
• It is unique per database, and is different on replicas
Document CRUD Operations
1. Reading a document
2. Creating a new document
3. Update an existing document
4. Deleting a document
5. Using transactions
Running Queries - Cursor
1. Cursor objects
2. Selecting entries (unid, keys, ….)
3. Full Text Search
4. Query language (based on MongoDB)
5. Data extraction language
6. Categorization – Aggregation
7. Hierarchical documents
Document Binary Attachments
• A set of binary attachments can be assigned to each JSON document
– Can contain any kind of data: multi-media, XML,… or even JSON!
– MIME type, as well as the attachment length, is stored in the database
• Attachments get replicated with the owning JSON document
– Optimized as only the changed attachments are replicated
• Attachments are stored in the RDBMS by default
– But an API allows the attachments to be stored in a different place
• Duplicates can be stored once to minimize the storage need (think DAOS)
• Way to support content from external stores (dropbox…)
Security
• Core security is implemented at different levels
– Server ACL
– Database ACL
– Document reader/editor fields (Darwino mode and IBM Domino compatibility)
• REST Services security
– Access to the service
– Data filtering
Multi-tenancy
• Multi tenancy can be expressed at different levels
– Database connection [RDBMS, Database, Schema]
• Can be implemented through a ‘bean’ delegating to the right connection
– JSON store instance
• An instance id is a string identifying a tenant
• An instance can provide user specific attribute role
– UserContextFactory
Document Hierarchy
• Documents can be organized in a hierarchy (documents/children)
– Set by assigning a parent to a document (might not exist!)
– A parent must be in the same DB, but could be in a different store
• Operations on documents can also affect the children
– Store.DELETE_CHILDREN - For deleting the whole hierarchy
– Store.DELETE_NOTOUCH – When actions on children affect parent documents
• Beyond parent/child relationship, Darwino also supports sync groups
– Documents can be grouped to form a coherent set of docs
Social Data
• Sharing
– Documents can be shared on a user basis
– Efficient share count computation, per
document
• Commenting
– Comments are provided as response
documents, so they support tailored data
models (JSON, attachments, …).
• All the social data are fully supported by
the replication engine, with proper
conflict resolution
• Tagging
– Every document can be tagged with a series of
tags
– Documents can be searched by tags
– Efficient tags retrieving, including weight, for
building a tag cloud
• Rating
– Documents can be rated with an integer (0-n) on
a user basis
– Efficient average rating computation, per
document
All the social data are fully supported by the replication engine, with proper conflict resolution
Built-in REST Services
• Ready to use REST services are available to do all the operations
– Used by the Http session implementation
– Only difference: as it is stateless, it does not support transactions over multiple
requests
• The rest services can be called from any languages
– OpenAPI description (e.g. Swagger) is provided
– Exposed through the Playground
• Custom REST services can be added to the existing ones
Business Logic
• Event handlers are triggered when an event happens
– Document create, update and delete
– Binary store access (reading and writing file attachments)
– Security checks
– Conflict handlers for synchronization
• Event handlers are implemented in the native platform languages
– Java is the preferred language, with portability on J2EE servers, Android devices
and iOS devices through J2OBJC
– More portability can be achieved with JavaScript using the GWT compiler (web
browsers, Node.js, Titanium Appcelerator…)
Data Replication
• Darwino uses a universal replication engine
– Can replicate between Darwino DBs and Enterprise systems
Darwino DB
Universal JSON
Replication Engine
Enterprise Data
Selective/functional replication
2 way data transformation
Running Replication
• Setting up a database to support replication
• Predefined replication settings
– Web application, Mobile application
– Highly customizable BackgroudReplicationTask
• Schedule, databases, instances…
• Using the replication APIs
– Core API
– Using a scheduled task
RDBC Abstraction
• Similarly to JDBC, RDBC encapsulates the access to RDBMS
• Way simpler than JDBC, and tailored for Darwino DB
– Connection, Statement, ResultSet
• Supports any JDBC database, and non JDBC ones (ex: SQLite)
• Contains drivers and methods to abstract the database differences
– Data types, SQL generation…
• Better transaction API
– Can be nested
– Explicit commit: a abort() cancels the
whole transaction
c.startTransaction();
try {
exec_code(c);
…
c.commitTransaction();
} finally {
c.endTransaction();
}
A Dive Into the Relational Tables
• Darwino creates a set of tables per JSON Database
• All the data is accessible using standard SQL
• WARN: The Darwino security layer does not apply when directly accessing
the RDBMS through SQL. But replication can!
Thank you for your attention!

Más contenido relacionado

La actualidad más candente

Non Relational Databases
Non Relational DatabasesNon Relational Databases
Non Relational DatabasesChris Baglieri
 
Cool NoSQL on Azure with DocumentDB
Cool NoSQL on Azure with DocumentDBCool NoSQL on Azure with DocumentDB
Cool NoSQL on Azure with DocumentDBJan Hentschel
 
Introduction à DocumentDB
Introduction à DocumentDBIntroduction à DocumentDB
Introduction à DocumentDBMSDEVMTL
 
An Intro to NoSQL Databases
An Intro to NoSQL DatabasesAn Intro to NoSQL Databases
An Intro to NoSQL DatabasesRajith Pemabandu
 
Spectrum Scale - Cognitive
Spectrum Scale - CognitiveSpectrum Scale - Cognitive
Spectrum Scale - CognitiveSmita Raut
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and HowBigBlueHat
 
Intro to NoSQL and MongoDB
Intro to NoSQL and MongoDBIntro to NoSQL and MongoDB
Intro to NoSQL and MongoDBDATAVERSITY
 
"PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr...
"PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr..."PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr...
"PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr...Stefan Adam
 
[PASS Summit 2016] Azure DocumentDB: A Deep Dive into Advanced Features
[PASS Summit 2016] Azure DocumentDB: A Deep Dive into Advanced Features[PASS Summit 2016] Azure DocumentDB: A Deep Dive into Advanced Features
[PASS Summit 2016] Azure DocumentDB: A Deep Dive into Advanced FeaturesAndrew Liu
 
NOSQL- Presentation on NoSQL
NOSQL- Presentation on NoSQLNOSQL- Presentation on NoSQL
NOSQL- Presentation on NoSQLRamakant Soni
 
Apache big data 2016 - Speaking the language of Big Data
Apache big data 2016 - Speaking the language of Big DataApache big data 2016 - Speaking the language of Big Data
Apache big data 2016 - Speaking the language of Big Datatechmaddy
 
No SQL : Which way to go? Presented at DDDMelbourne 2015
No SQL : Which way to go?  Presented at DDDMelbourne 2015No SQL : Which way to go?  Presented at DDDMelbourne 2015
No SQL : Which way to go? Presented at DDDMelbourne 2015Himanshu Desai
 
GIDS 2016 Understanding and Building No SQLs
GIDS 2016 Understanding and Building No SQLsGIDS 2016 Understanding and Building No SQLs
GIDS 2016 Understanding and Building No SQLstechmaddy
 
MongoDB: An Introduction - june-2011
MongoDB:  An Introduction - june-2011MongoDB:  An Introduction - june-2011
MongoDB: An Introduction - june-2011Chris Westin
 
MongoDB NoSQL database a deep dive -MyWhitePaper
MongoDB  NoSQL database a deep dive -MyWhitePaperMongoDB  NoSQL database a deep dive -MyWhitePaper
MongoDB NoSQL database a deep dive -MyWhitePaperRajesh Kumar
 

La actualidad más candente (20)

Non Relational Databases
Non Relational DatabasesNon Relational Databases
Non Relational Databases
 
Cool NoSQL on Azure with DocumentDB
Cool NoSQL on Azure with DocumentDBCool NoSQL on Azure with DocumentDB
Cool NoSQL on Azure with DocumentDB
 
Introduction à DocumentDB
Introduction à DocumentDBIntroduction à DocumentDB
Introduction à DocumentDB
 
An Intro to NoSQL Databases
An Intro to NoSQL DatabasesAn Intro to NoSQL Databases
An Intro to NoSQL Databases
 
Azure DocumentDB
Azure DocumentDBAzure DocumentDB
Azure DocumentDB
 
Mongo db
Mongo dbMongo db
Mongo db
 
Repository As A Service (RaaS) at ICPSR
Repository As A Service  (RaaS) at ICPSRRepository As A Service  (RaaS) at ICPSR
Repository As A Service (RaaS) at ICPSR
 
Spectrum Scale - Cognitive
Spectrum Scale - CognitiveSpectrum Scale - Cognitive
Spectrum Scale - Cognitive
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and How
 
Intro to NoSQL and MongoDB
Intro to NoSQL and MongoDBIntro to NoSQL and MongoDB
Intro to NoSQL and MongoDB
 
"PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr...
"PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr..."PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr...
"PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr...
 
[PASS Summit 2016] Azure DocumentDB: A Deep Dive into Advanced Features
[PASS Summit 2016] Azure DocumentDB: A Deep Dive into Advanced Features[PASS Summit 2016] Azure DocumentDB: A Deep Dive into Advanced Features
[PASS Summit 2016] Azure DocumentDB: A Deep Dive into Advanced Features
 
NOSQL- Presentation on NoSQL
NOSQL- Presentation on NoSQLNOSQL- Presentation on NoSQL
NOSQL- Presentation on NoSQL
 
Apache big data 2016 - Speaking the language of Big Data
Apache big data 2016 - Speaking the language of Big DataApache big data 2016 - Speaking the language of Big Data
Apache big data 2016 - Speaking the language of Big Data
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
 
No SQL : Which way to go? Presented at DDDMelbourne 2015
No SQL : Which way to go?  Presented at DDDMelbourne 2015No SQL : Which way to go?  Presented at DDDMelbourne 2015
No SQL : Which way to go? Presented at DDDMelbourne 2015
 
GIDS 2016 Understanding and Building No SQLs
GIDS 2016 Understanding and Building No SQLsGIDS 2016 Understanding and Building No SQLs
GIDS 2016 Understanding and Building No SQLs
 
Mongo DB
Mongo DB Mongo DB
Mongo DB
 
MongoDB: An Introduction - june-2011
MongoDB:  An Introduction - june-2011MongoDB:  An Introduction - june-2011
MongoDB: An Introduction - june-2011
 
MongoDB NoSQL database a deep dive -MyWhitePaper
MongoDB  NoSQL database a deep dive -MyWhitePaperMongoDB  NoSQL database a deep dive -MyWhitePaper
MongoDB NoSQL database a deep dive -MyWhitePaper
 

Destacado

15 darwino script & command line
15   darwino script & command line15   darwino script & command line
15 darwino script & command linedarwinodb
 
09 business apis
09   business apis09   business apis
09 business apisdarwinodb
 
SFD 2014: Multiplatform App Development with Migeran
SFD 2014: Multiplatform App Development with MigeranSFD 2014: Multiplatform App Development with Migeran
SFD 2014: Multiplatform App Development with MigeranGergely Kis
 
IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...
IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...
IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...darwinodb
 
02 configuration
02   configuration02   configuration
02 configurationdarwinodb
 
Migeran Tech Talk at Prezi HQ
Migeran Tech Talk at Prezi HQMigeran Tech Talk at Prezi HQ
Migeran Tech Talk at Prezi HQGergely Kis
 
06 web applications
06   web applications06   web applications
06 web applicationsdarwinodb
 
07 darwino rest services
07   darwino rest services07   darwino rest services
07 darwino rest servicesdarwinodb
 
10 domino integration
10   domino integration10   domino integration
10 domino integrationdarwinodb
 
Migeran: iOS Apps in Java at Budapest New Tech Meetup
Migeran: iOS Apps in Java at Budapest New Tech MeetupMigeran: iOS Apps in Java at Budapest New Tech Meetup
Migeran: iOS Apps in Java at Budapest New Tech MeetupGergely Kis
 
01 introduction to darwino
01   introduction to darwino01   introduction to darwino
01 introduction to darwinodarwinodb
 
Cooking Eclipse Plugins with BDD, Cucumber, SWTBot and Tycho
Cooking Eclipse Plugins with BDD, Cucumber, SWTBot and TychoCooking Eclipse Plugins with BDD, Cucumber, SWTBot and Tycho
Cooking Eclipse Plugins with BDD, Cucumber, SWTBot and TychoGergely Kis
 
MOE: Cross Platform Mobile Apps in Java
MOE: Cross Platform Mobile Apps in JavaMOE: Cross Platform Mobile Apps in Java
MOE: Cross Platform Mobile Apps in JavaGergely Kis
 
Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)Gergely Kis
 
04 darwino concepts and utility classes
04   darwino concepts and utility classes04   darwino concepts and utility classes
04 darwino concepts and utility classesdarwinodb
 
Space mouse sameer kumar telikicherla
Space mouse   sameer kumar telikicherlaSpace mouse   sameer kumar telikicherla
Space mouse sameer kumar telikicherlaSameer Telikicherla
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 

Destacado (20)

15 darwino script & command line
15   darwino script & command line15   darwino script & command line
15 darwino script & command line
 
09 business apis
09   business apis09   business apis
09 business apis
 
SFD 2014: Multiplatform App Development with Migeran
SFD 2014: Multiplatform App Development with MigeranSFD 2014: Multiplatform App Development with Migeran
SFD 2014: Multiplatform App Development with Migeran
 
IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...
IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...
IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...
 
02 configuration
02   configuration02   configuration
02 configuration
 
Migeran Tech Talk at Prezi HQ
Migeran Tech Talk at Prezi HQMigeran Tech Talk at Prezi HQ
Migeran Tech Talk at Prezi HQ
 
06 web applications
06   web applications06   web applications
06 web applications
 
07 darwino rest services
07   darwino rest services07   darwino rest services
07 darwino rest services
 
10 domino integration
10   domino integration10   domino integration
10 domino integration
 
Migeran: iOS Apps in Java at Budapest New Tech Meetup
Migeran: iOS Apps in Java at Budapest New Tech MeetupMigeran: iOS Apps in Java at Budapest New Tech Meetup
Migeran: iOS Apps in Java at Budapest New Tech Meetup
 
01 introduction to darwino
01   introduction to darwino01   introduction to darwino
01 introduction to darwino
 
Cooking Eclipse Plugins with BDD, Cucumber, SWTBot and Tycho
Cooking Eclipse Plugins with BDD, Cucumber, SWTBot and TychoCooking Eclipse Plugins with BDD, Cucumber, SWTBot and Tycho
Cooking Eclipse Plugins with BDD, Cucumber, SWTBot and Tycho
 
Multi-OS Engine Technology Overview
Multi-OS Engine Technology OverviewMulti-OS Engine Technology Overview
Multi-OS Engine Technology Overview
 
MOE: Cross Platform Mobile Apps in Java
MOE: Cross Platform Mobile Apps in JavaMOE: Cross Platform Mobile Apps in Java
MOE: Cross Platform Mobile Apps in Java
 
Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)Cross-Platform Native Apps in Java (budapest.mobile)
Cross-Platform Native Apps in Java (budapest.mobile)
 
04 darwino concepts and utility classes
04   darwino concepts and utility classes04   darwino concepts and utility classes
04 darwino concepts and utility classes
 
MWLUG 2016 - AD106
MWLUG 2016 - AD106MWLUG 2016 - AD106
MWLUG 2016 - AD106
 
Space mouse sameer kumar telikicherla
Space mouse   sameer kumar telikicherlaSpace mouse   sameer kumar telikicherla
Space mouse sameer kumar telikicherla
 
Space mouse
Space mouseSpace mouse
Space mouse
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

Similar a 05 darwino db

Big Data Architecture Workshop - Vahid Amiri
Big Data Architecture Workshop -  Vahid AmiriBig Data Architecture Workshop -  Vahid Amiri
Big Data Architecture Workshop - Vahid Amiridatastack
 
3.Implementation with NOSQL databases Document Databases (Mongodb).pptx
3.Implementation with NOSQL databases Document Databases (Mongodb).pptx3.Implementation with NOSQL databases Document Databases (Mongodb).pptx
3.Implementation with NOSQL databases Document Databases (Mongodb).pptxRushikeshChikane2
 
SWIB14 Weaving repository contents into the Semantic Web
SWIB14 Weaving repository contents into the Semantic WebSWIB14 Weaving repository contents into the Semantic Web
SWIB14 Weaving repository contents into the Semantic WebPascal-Nicolas Becker
 
mongodb-120401144140-phpapp01 claud camputing
mongodb-120401144140-phpapp01 claud camputingmongodb-120401144140-phpapp01 claud camputing
mongodb-120401144140-phpapp01 claud camputingmoeincanada007
 
Prague data management meetup 2018-03-27
Prague data management meetup 2018-03-27Prague data management meetup 2018-03-27
Prague data management meetup 2018-03-27Martin Bém
 
Got documents Code Mash Revision
Got documents Code Mash RevisionGot documents Code Mash Revision
Got documents Code Mash RevisionMaggie Pint
 
Hadoop and object stores can we do it better
Hadoop and object stores  can we do it betterHadoop and object stores  can we do it better
Hadoop and object stores can we do it bettergvernik
 
Hadoop and object stores: Can we do it better?
Hadoop and object stores: Can we do it better?Hadoop and object stores: Can we do it better?
Hadoop and object stores: Can we do it better?gvernik
 
MongoDB by Emroz sardar.
MongoDB by Emroz sardar.MongoDB by Emroz sardar.
MongoDB by Emroz sardar.Emroz Sardar
 
Compare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDBCompare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDBAmar Das
 
Dynamo vs Mongo
Dynamo vs MongoDynamo vs Mongo
Dynamo vs MongoAmar Das
 
Hibernate in XPages
Hibernate in XPagesHibernate in XPages
Hibernate in XPagesToby Samples
 

Similar a 05 darwino db (20)

Big Data Architecture Workshop - Vahid Amiri
Big Data Architecture Workshop -  Vahid AmiriBig Data Architecture Workshop -  Vahid Amiri
Big Data Architecture Workshop - Vahid Amiri
 
3.Implementation with NOSQL databases Document Databases (Mongodb).pptx
3.Implementation with NOSQL databases Document Databases (Mongodb).pptx3.Implementation with NOSQL databases Document Databases (Mongodb).pptx
3.Implementation with NOSQL databases Document Databases (Mongodb).pptx
 
MongoDB
MongoDBMongoDB
MongoDB
 
SWIB14 Weaving repository contents into the Semantic Web
SWIB14 Weaving repository contents into the Semantic WebSWIB14 Weaving repository contents into the Semantic Web
SWIB14 Weaving repository contents into the Semantic Web
 
mongodb-120401144140-phpapp01 claud camputing
mongodb-120401144140-phpapp01 claud camputingmongodb-120401144140-phpapp01 claud camputing
mongodb-120401144140-phpapp01 claud camputing
 
Apache Drill at ApacheCon2014
Apache Drill at ApacheCon2014Apache Drill at ApacheCon2014
Apache Drill at ApacheCon2014
 
Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introduction
 
Practical Use of a NoSQL Database
Practical Use of a NoSQL DatabasePractical Use of a NoSQL Database
Practical Use of a NoSQL Database
 
No sq lv1_0
No sq lv1_0No sq lv1_0
No sq lv1_0
 
Prague data management meetup 2018-03-27
Prague data management meetup 2018-03-27Prague data management meetup 2018-03-27
Prague data management meetup 2018-03-27
 
Got documents Code Mash Revision
Got documents Code Mash RevisionGot documents Code Mash Revision
Got documents Code Mash Revision
 
Hadoop and object stores can we do it better
Hadoop and object stores  can we do it betterHadoop and object stores  can we do it better
Hadoop and object stores can we do it better
 
Hadoop and object stores: Can we do it better?
Hadoop and object stores: Can we do it better?Hadoop and object stores: Can we do it better?
Hadoop and object stores: Can we do it better?
 
MongoDB by Emroz sardar.
MongoDB by Emroz sardar.MongoDB by Emroz sardar.
MongoDB by Emroz sardar.
 
Compare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDBCompare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDB
 
Dynamo vs Mongo
Dynamo vs MongoDynamo vs Mongo
Dynamo vs Mongo
 
Elasticsearch Introduction at BigData meetup
Elasticsearch Introduction at BigData meetupElasticsearch Introduction at BigData meetup
Elasticsearch Introduction at BigData meetup
 
dbms introduction.pptx
dbms introduction.pptxdbms introduction.pptx
dbms introduction.pptx
 
Got documents?
Got documents?Got documents?
Got documents?
 
Hibernate in XPages
Hibernate in XPagesHibernate in XPages
Hibernate in XPages
 

Más de darwinodb

17 open ntf-v30-darwinoorg
17   open ntf-v30-darwinoorg17   open ntf-v30-darwinoorg
17 open ntf-v30-darwinoorgdarwinodb
 
16 endeavour reporter
16   endeavour reporter16   endeavour reporter
16 endeavour reporterdarwinodb
 
14 integrating watson services
14   integrating watson services14   integrating watson services
14 integrating watson servicesdarwinodb
 
13 deploying cloud applications
13   deploying cloud applications13   deploying cloud applications
13 deploying cloud applicationsdarwinodb
 
12 ibm connections integration
12   ibm connections integration12   ibm connections integration
12 ibm connections integrationdarwinodb
 
11 advanced replication
11   advanced replication11   advanced replication
11 advanced replicationdarwinodb
 
08 mobile development
08   mobile development08   mobile development
08 mobile developmentdarwinodb
 

Más de darwinodb (7)

17 open ntf-v30-darwinoorg
17   open ntf-v30-darwinoorg17   open ntf-v30-darwinoorg
17 open ntf-v30-darwinoorg
 
16 endeavour reporter
16   endeavour reporter16   endeavour reporter
16 endeavour reporter
 
14 integrating watson services
14   integrating watson services14   integrating watson services
14 integrating watson services
 
13 deploying cloud applications
13   deploying cloud applications13   deploying cloud applications
13 deploying cloud applications
 
12 ibm connections integration
12   ibm connections integration12   ibm connections integration
12 ibm connections integration
 
11 advanced replication
11   advanced replication11   advanced replication
11 advanced replication
 
08 mobile development
08   mobile development08   mobile development
08 mobile development
 

Último

What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 

Último (20)

What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 

05 darwino db

  • 1. Darwino DB The Ultimate JSON Document Store
  • 2. Introduction to Darwino DB • NO-SQL, JSON based store, including semi structured data and attachments • Designed for social and collaborative applications • Designed for mobile development – Local or remote access to the data, including replication • Designed for cloud, with built-in multi tenancy capability • Allows distributed computing with replication between instances • Databases can be deployed on the cloud • Leverage the existing relational database infrastructure – Support very large amount of data – Scalability is provided by the underlying RDBMS
  • 3. Darwino DB Main Features ₋ Transactional ₋ Built-in multi-tenancy ₋ Document hierarchy ₋ Multi-level security ₋ Down to document level security ₋ Tailored for continuous delivery ₋ Static table schema to avoid table changes ₋ Multi-points, two way replication, including external data sources ₋ Same implementation everywhere ₋ Advanced query support ₋ Extensible MongoDB like query language ₋ Data aggregation ₋ Joins ₋ Full text search ₋ Integrated social features ₋ Tagging, liking, rating ₋ Out of the box rest services ₋ With Java & Javascript binding ₋ OpenAPI compliant (e.g. Swagger)
  • 4. The Value of RDBMS • RDBMS is the most known and portable data store – RDBMS are available and validated by many organizations – RDBMS are available from many cloud vendors: IBM BlueMix, MS Azure… • Many RDBMS capabilities can enhance the document store experience – Transactions, queries, joins, performance, scalability, reliability… – Standard access APIs, reporting… • New RDBMS borrow concepts from the pure NoSQL implementation – Store and index JSON documents, spatial indexes, in memory DB • Think that a basic JSON document store is a table with 2 columns: id & json – But other tables can add many capabilities on top of this
  • 5. Darwino DB Typical Topology Store Native API Relational DB REST APINative Local Web Application Relational DB Native Local Application Store Native API Replication Engine Replication via HTTP Replication Engine Other Data Server Server Mobile Clients Web Browsers Direct Access To the Remote Data
  • 6. Darwino DB Concepts • A Server is the physical connection to the RDBMS or REST server • A Session is the access point for a user • A Database is the main container for JSON documents • Databases are made of Stores, that are buckets of consistent documents – The documents in the same store shares indexes, query fields, … – Some stores are predefined: _default, _local, _comments & _design • Documents are regular JSON valid values: objects, array & literals – It is strongly advised to store objects, as some features depend on object fields • Binary Attachments can be associated to any JSON document • Indexes are like materialized views, or mapping in a map/reduce
  • 7. Database Meta-Model • A JSON store has several options that drives the behavior of each databases – List of stores, extracted fields, indexes, full text search options • Options are provided as a JSON object during the deployment step – The deployment step checks the version number and, if auto-deploy is activated, acts on the data or table meta-data • Database is using 3 version numbers – Database application version, as described by the definition – Customization version for advanced – Darwino relational table format – handled by the Darwino runtime
  • 8. Simple Deployment • The JEE ApplicationContextListener auto deploys the database – The application is not activated until the deployment is completed • The Mobile framework also auto deploys the database • If RDBMS DDL access is not enabled, then the DDL can be generated as a text file and sent to a DB admin
  • 9. Documents • Documents store JSON values with attachments • Documents are identified by: – A UNID that is a string of 512c max. The UNID can be set by the developer or generated as a GUID. • It is unique per store and traverses replication – An Id that is an integer generated by Darwino • It is unique per database, and is different on replicas
  • 10. Document CRUD Operations 1. Reading a document 2. Creating a new document 3. Update an existing document 4. Deleting a document 5. Using transactions
  • 11. Running Queries - Cursor 1. Cursor objects 2. Selecting entries (unid, keys, ….) 3. Full Text Search 4. Query language (based on MongoDB) 5. Data extraction language 6. Categorization – Aggregation 7. Hierarchical documents
  • 12. Document Binary Attachments • A set of binary attachments can be assigned to each JSON document – Can contain any kind of data: multi-media, XML,… or even JSON! – MIME type, as well as the attachment length, is stored in the database • Attachments get replicated with the owning JSON document – Optimized as only the changed attachments are replicated • Attachments are stored in the RDBMS by default – But an API allows the attachments to be stored in a different place • Duplicates can be stored once to minimize the storage need (think DAOS) • Way to support content from external stores (dropbox…)
  • 13. Security • Core security is implemented at different levels – Server ACL – Database ACL – Document reader/editor fields (Darwino mode and IBM Domino compatibility) • REST Services security – Access to the service – Data filtering
  • 14. Multi-tenancy • Multi tenancy can be expressed at different levels – Database connection [RDBMS, Database, Schema] • Can be implemented through a ‘bean’ delegating to the right connection – JSON store instance • An instance id is a string identifying a tenant • An instance can provide user specific attribute role – UserContextFactory
  • 15. Document Hierarchy • Documents can be organized in a hierarchy (documents/children) – Set by assigning a parent to a document (might not exist!) – A parent must be in the same DB, but could be in a different store • Operations on documents can also affect the children – Store.DELETE_CHILDREN - For deleting the whole hierarchy – Store.DELETE_NOTOUCH – When actions on children affect parent documents • Beyond parent/child relationship, Darwino also supports sync groups – Documents can be grouped to form a coherent set of docs
  • 16. Social Data • Sharing – Documents can be shared on a user basis – Efficient share count computation, per document • Commenting – Comments are provided as response documents, so they support tailored data models (JSON, attachments, …). • All the social data are fully supported by the replication engine, with proper conflict resolution • Tagging – Every document can be tagged with a series of tags – Documents can be searched by tags – Efficient tags retrieving, including weight, for building a tag cloud • Rating – Documents can be rated with an integer (0-n) on a user basis – Efficient average rating computation, per document All the social data are fully supported by the replication engine, with proper conflict resolution
  • 17. Built-in REST Services • Ready to use REST services are available to do all the operations – Used by the Http session implementation – Only difference: as it is stateless, it does not support transactions over multiple requests • The rest services can be called from any languages – OpenAPI description (e.g. Swagger) is provided – Exposed through the Playground • Custom REST services can be added to the existing ones
  • 18. Business Logic • Event handlers are triggered when an event happens – Document create, update and delete – Binary store access (reading and writing file attachments) – Security checks – Conflict handlers for synchronization • Event handlers are implemented in the native platform languages – Java is the preferred language, with portability on J2EE servers, Android devices and iOS devices through J2OBJC – More portability can be achieved with JavaScript using the GWT compiler (web browsers, Node.js, Titanium Appcelerator…)
  • 19. Data Replication • Darwino uses a universal replication engine – Can replicate between Darwino DBs and Enterprise systems Darwino DB Universal JSON Replication Engine Enterprise Data Selective/functional replication 2 way data transformation
  • 20. Running Replication • Setting up a database to support replication • Predefined replication settings – Web application, Mobile application – Highly customizable BackgroudReplicationTask • Schedule, databases, instances… • Using the replication APIs – Core API – Using a scheduled task
  • 21. RDBC Abstraction • Similarly to JDBC, RDBC encapsulates the access to RDBMS • Way simpler than JDBC, and tailored for Darwino DB – Connection, Statement, ResultSet • Supports any JDBC database, and non JDBC ones (ex: SQLite) • Contains drivers and methods to abstract the database differences – Data types, SQL generation… • Better transaction API – Can be nested – Explicit commit: a abort() cancels the whole transaction c.startTransaction(); try { exec_code(c); … c.commitTransaction(); } finally { c.endTransaction(); }
  • 22. A Dive Into the Relational Tables • Darwino creates a set of tables per JSON Database • All the data is accessible using standard SQL • WARN: The Darwino security layer does not apply when directly accessing the RDBMS through SQL. But replication can!
  • 23. Thank you for your attention!