MySQL Document Store and Node.js

Size: px
Start display at page:

Download "MySQL Document Store and Node.js"

Transcription

1 MySQL Document Store and Node.js Johannes Schlüter Rui Quelhas MySQL Clients and Middleware September 2017 Copyright 2017, Oracle and/or its affiliates. All rights reserved. 1

2 Follow along h ps://ruiquelhas.github.io/percona-live-europe-2017/ 2

3 (Rough) Outline 1. Unstructured Data 2. MySQL 3. Document Store 4. X Protocol 5. Node.js 6. MySQL Connector/Node.js 7. Pu ng it all together 8. Demo 3

4 Unstructured Data Not only rela onal data O en data of unstructured nature Data from external sources 4. 1

5 Unstructured Data { } "type": "node", "id": , "lat": , "lon": , "tags": { "amenity": "pub", "name": "The Viscount" } 4. 2

6 Unstructured Data { } "type": "node", "id": , "lat": , "lon": , "tags": { "amenity": "pub", "name": "The Viscount" } 4. 3

7 Unstructured Data { } "type": "node", "id": , "lat": , "lon": , "tags": { "addr:city": "Dublin", "addr:housenumber": "21", "addr:street": "Store Street", "amenity": "pub", "name": "Le Monde", "wheelchair": "no" } 4. 4

8 Unstructured Data { } "type": "node", "id": , "lat": , "lon": , "tags": { "amenity": "pub", "name": "The Ballinteer House", "wheelchair": "limited" } 4. 5

9 Unstructured Data { } "type": "node", "id": , "lat": , "lon": , "tags": { "accommodation": "yes", "addr:street": "Lombard Street East", "amenity": "pub", "opening_hours": "Mo-Th 09:00-23:30;Fr-Sa 09:30-01:30;Su 10:00-23:00", "name": "The Lombard",... } 4. 6

10 Unstructured Data JSON data type Introduced in MySQL 5.7 Efficient storage Set of func ons to create, modify and access elements Generated columns allow indexing parts of a document 4. 7

11 Unstructured Data Access using SQL CREATE TABLE pubs (doc JSON); INSERT INTO pubs VALUES ('{ "type":"node"... }'); ALTER TABLE pubs ADD COLUMN wheelchair VARCHAR(255) GENERATED ALWAYS AS (json_unquote(json_extract(doc, '$.tags.wheelchair'))) STORED KEY; SELECT * FROM pubs WHERE wheelchair!= 'no'; SELECT * FROM pubs WHERE json_unquote(doc->'$.tags.wheelchair')!= 'no'; 4. 8

12 MySQL is a Great Database Powerful Features InnoDB Replica on, Group Commit,... Proven and Stable 5. 1

13 Document Databases Simple to setup Higher level APIs 5. 2

14 So, why not combine both!? 5. 3

15 MySQL Document Store An X-Over between a rela onal database and a document database 6. 1

16 MySQL Document Store Built upon a new protocol, the X Protocol Implemen ng a common API over mul ple languages and environments C++, Java,.Net, Node.JS, Python. PHP New MySQL Shell Easy CRUD opera ons on rela onal tables and document database style collec ons Based on proven MySQL founda on 6. 2

17 MySQL Document Store Collec ons An Collec on is a set of JSON Documents Each document has it's unique ID in an _id property Easy to search within documents Implemented as a table with a JSON column and indexes on generated columns 6. 3

18 X Protocol Protocol Insights New Protocol implemented in X Plugin Based on Google Protocol Buffers More flexibility for future extensions Be er understanding of content CRUD Expression trees in protocol Expecta ons to a ach condi ons on pipelined statements Bound parameters 7. 1

19 X Protocol Protocol opera ons message ClientMessages { enum Type { CON_CAPABILITIES_GET = 1; CON_CAPABILITIES_SET = 2; CON_CLOSE = 3; SESS_AUTHENTICATE_START = 4; SESS_AUTHENTICATE_CONTINUE = 5; SESS_RESET = 6; SESS_CLOSE = 7; SQL_STMT_EXECUTE = 12; CRUD_FIND = 17; CRUD_INSERT = 18; 7. 2

20 X Protocol CRUD Example Mysqlx.Crud.Find { collection { name: "collection_name", schema: "test" } data_model: DOCUMENT criteria { type: OPERATOR operator { name: "==" param { type: IDENT, identifier { name:"_id" } } param { type: LITERAL, literal { type: V_STRING, v_string: { value: "some_string" } } } } } } 7. 3

21 Node.js (straight) from the horse's mouth Node.js is a JavaScript run me built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, nonblocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world. 8. 1

22 Node.js Overview JavaScript server run me on top of V8 HTTP as a first-class ci zen Filesystem, OS, network (TCP/UDP) and TLS Out-of-the box streaming APIs Non-blocking IO through the event loop Bindings for C/C++ na ve addons Unified module system ( CommonJS) and package manager ( npm) 8. 2

23 Node.js Programming model Single-threaded environment (it's JavaScript a er all) Asynchronous callback-based core Non-blocking opera ons run immediatelly and sequen ally Blocking opera ons queued outside execu on scope Result of a blocking opera on is handled "eventually" Concurrency with C++ APIs (threads) or mul ple processes 8. 3

24 Node.js Dealing with asynchronicity Push-based abstrac ons for asynchronous callbacks: Event emi ers Streams (special kind of event emi ers) Promises Pull-based abstrac ons for asynchronous callbacks: Generators Async/await Many other userland experiments of both kinds 8. 4

25 Node.js Callback pa ern const asyncfn = (success, callback) => { settimeout(() => { if (!success) return callback(new Error('bar')) callback(null, 'foo') }, 1000); } asyncfn(true, (err, data) => { }) console.log(data) // foo asyncfn(false, (err) => { }) console.log(err.message) // bar 8. 5

26 Node.js Event emi er const emitter = new EventEmitter() emitter.on('someevent', message => { }) console.log(message) // foo emitter.emit('someevent', 'foo') 8. 6

27 Node.js Streams const readable = new Stream.Readable() const writable = new Stream.Writable() readable.on('data', data => { }) console.log(data) // foo readable.pipe(writable) writable.write('foo') 8. 7

28 Node.js Promises const promise1 = Promise.resolve('foo') const promise2 = Promise.reject(new Error('bar')) promise1.then(data => { }) console.log(data) // foo promise2.catch(err => { }) console.log(err.message) // bar 8. 8

29 Node.js Generators const gen = function * () { yield 'foo' return 'bar' } console.log(gen.next()) // { value: 'foo', done: false } console.log(gen.next()) // { value: 'bar', done: true } 8. 9

30 Node.js Async/await const asyncfn1 = () => Promise.resolve('foo') const asyncfn2 = () => Promise.reject(new Error('bar')) (async function () { try { const value = await asyncfn1(); console.log(value) // 'foo' await asyncfn2() } catch (err) { console.log(err.message) // 'bar' } }()) 8. 10

31 MySQL Connector/Node.js Overview Official implementa on Based on the brand new X protocol Asynchronous and Promise-based Supports async/await Fluent/chainable API (out-of-the-box query builder) Flexible parameter methods 9. 1

32 MySQL Connector/Node.js Some features Document store CRUD API Rela onal CRUD API Fallback to plain old SQL Transac ons and row locking Secure sessions (SSL/TLS) Authen ca on Configura on handling interface 9. 2

33 MySQL Connector/Node.js Fluent API (Document Store) collection.add({ name: 'foo' }).add({ name: 'bar' }).execute() collection.find('$.name == :name').bind(name, 'foo').execute() collection.modify('$.name == "foo"').set('$.name', 'qux').execute() collection.remove('$.name == "bar"').execute() 9. 3

34 MySQL Connector/Node.js Database opera ons // // CollectionAdd const addoperation = collection.add() // CollectionFind const findoperation = collection.find() // CollectionModify const modifyoperation = collection.modify() // CollectionRemove const removeoperation = collection.remove() 9. 4

35 MySQL Connector/Node.js CollectionAdd 9. 5

36 MySQL Connector/Node.js CollectionFind 9. 6

37 MySQL Connector/Node.js CollectionModify 9. 7

38 MySQL Connector/Node.js CollectionRemove 9. 8

39 MySQL Connector/Node.js Fallback to plain-old SQL // insert document into a collection session.sql(`insert INTO pubs (doc) VALUES ('{"_id": ,"tags":{"name":"foo"}}')`).execute() // project "name" property values session.sql(`select JSON_EXTRACT(doc, '$.tags.name') FROM pubs`).execute() // create a virtual column and use it as an index session.sql(`alter TABLE collection ADD COLUMN name TEXT(50) GENERATED ALWAYS AS (JSON_EXTRACT(doc, '$.tags.name')) VIRTUAL, ADD INDEX i_name (name)`).execute() 9. 9

40 MySQL Connector/Node.js Asynchronous API <=> Promise getsession() createschema() dropschema() createcollection() dropcollection() execute() 9. 10

41 MySQL Connector/Node.js Simple push-based "cursors" // the cursor gets executed for each element of the result set function cursor (p) { // p: result set element currently being processed } collection.find().execute(cursor) 9. 11

42 MySQL Connector/Node.js Opera on comple on collection.find().execute(function (d) { // d: document instance }).then(function (r) { // r: instance of Result (coming up next) }).catch(function (e) { // e: instance of Error }) 9. 12

43 MySQL Connector/Node.js Result getdocumentid() getdocumentids() getaffectedrowscount() getwarnings() getwarningscount() 9. 13

44 Pu ng everything together Boilerplate, sessions and schemas $ npm const mysqlx = require('@mysql/xdevapi') const session = await mysqlx.getsession('mysqlx://demo@localhost:33060') // re-create the schema await session.dropschema('ple2017') const schema = await session.createschema('ple2017') 10. 1

45 Pu ng everything together Working with collec ons and documents (CRUD) const schema = session.getschema('ple2017') // re-create a collection await schema.dropcollection('pubs') const collection = await schema.createcollection('pubs') // or re-use an existing collection const collection = await schema.createcollection('pubs', { ReuseExistingObject: true }) 10. 2

46 Pu ng everything together CREATE const collection = schema.getcollection('pubs') // pipelining parallel calls await Promise.all([ collection.add({ type: 'node', _id: ,... }).execute(), collection.add([ { type: 'node', _id: ,... }, { type: 'node', _id: ,... } ]).execute() ]) 10. 3

47 Pu ng everything together READ const collection = schema.getcollection('pubs') const pubs = [] await collection.find().execute(pub => pub && pubs.push(pub)) console.log(pubs) // [{ _id: ,... }, { id: ,... },... ] 10. 4

48 Pu ng everything together UPDATE const collection = schema.getcollection('pubs') await collection.modify('$.id == ').set('type', 'foo').set('oldtype', 'node').execute() const pubs = [] await collection.find().execute(pub => pub && pubs.push(pub)) console.log(pubs) // [{ type: 'foo', _id: , oldtype: 'node' },... ] 10. 5

49 Pu ng everything together DELETE const collection = schema.getcollection('pubs') await collection.remove('$.type == "foo"').execute() const pubs = [] await collection.find().execute(pub => pub && pubs.push(pub)) console.log(pubs) // [{ type: 'node', _id: ,... }, { type: 'node', _id: ,... }] 10. 6

50 Pu ng everything together Transac on Support try { await session.starttransaction() const result = await schema.getcollection('beers').add({ name: 'Guinness', pubs: [ ] }).execute() await schema.getcollection('pubs').modify('$._id == ').arrayAppend('beers', result.getdocumentid()).execute() await session.commit() } catch (err) { await session.rollback() } 10. 7

51 DEMO h ps://gitlab.com/ruiquelhas/pub-crawler 11

52 Links h ps://dev.mysql.com/doc/refman/8.0/en/document-store.html h ps://dev.mysql.com/doc/x-devapi-userguide/en/ h ps:// h ps://github.com/mysql/mysql-connector-nodejs h ps://dev.mysql.com/doc/dev/connector-nodejs/ 12

53 Some related Sessions Tomorrow 9:15AM State of the Dolphin (Keynote by Geir Høydalsvik) 11:20AM Introduc on to MySQL InnoDB Cluster (Frederic Descamps, Jan Kneschke) 4:55PM MySQL Document Store (Frederic Descamps, Jan Kneschke) 13. 1

54 Thank You 13. 2

55 14

56 Safe Harbor Statement The preceding is intended to outline our general product direc on. It is intended for informa on purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or func onality, and should not be relied upon in making purchasing decisions. The development, release, and ming of any features or func onality described for Oracle s products remains at the sole discre on of Oracle. 15

MySQL as a Document Store. Ted Wennmark

MySQL as a Document Store. Ted Wennmark MySQL as a Document Store Ted Wennmark ted.wennmark@oracle.com Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and

More information

3 / 120. MySQL 8.0. Frédéric Descamps - MySQL Community Manager - Oracle

3 / 120. MySQL 8.0. Frédéric Descamps - MySQL Community Manager - Oracle 1 / 120 2 / 120 3 / 120 MySQL 8.0 a Document Store with all the benefits of a transactional RDBMS Frédéric Descamps - MySQL Community Manager - Oracle 4 / 120 Save the date! 5 / 120 Safe Harbor Statement

More information

Introduction to the MySQL Document Store Alfredo Kojima, Rui Quelhas, Mike Zinner MySQL Middleware and Clients Team October 22, 2018

Introduction to the MySQL Document Store Alfredo Kojima, Rui Quelhas, Mike Zinner MySQL Middleware and Clients Team October 22, 2018 Introduction to the MySQL Document Store Alfredo Kojima, Rui Quelhas, Mike Zinner MySQL Middleware and Clients Team October 22, 2018 Safe Harbor Statement The following is intended to outline our general

More information

Introduction to MySQL InnoDB Cluster

Introduction to MySQL InnoDB Cluster 1 / 148 2 / 148 3 / 148 Introduction to MySQL InnoDB Cluster MySQL High Availability made easy Percona Live Europe - Dublin 2017 Frédéric Descamps - MySQL Community Manager - Oracle 4 / 148 Safe Harbor

More information

Using the MySQL Document Store

Using the MySQL Document Store Using the MySQL Document Store Alfredo Kojima, Sr. Software Dev. Manager, MySQL Mike Zinner, Sr. Software Dev. Director, MySQL Safe Harbor Statement The following is intended to outline our general product

More information

MySQL InnoDB Cluster. MySQL HA Made Easy! Miguel Araújo Senior Software Developer MySQL Middleware and Clients. FOSDEM 18 - February 04, 2018

MySQL InnoDB Cluster. MySQL HA Made Easy! Miguel Araújo Senior Software Developer MySQL Middleware and Clients. FOSDEM 18 - February 04, 2018 MySQL InnoDB Cluster MySQL HA Made Easy! Miguel Araújo Senior Software Developer MySQL Middleware and Clients FOSDEM 18 - February 04, 2018 Safe Harbor Statement The following is intended to outline our

More information

NoSQL + SQL = MySQL. Nicolas De Rico Principal Solutions Architect

NoSQL + SQL = MySQL. Nicolas De Rico Principal Solutions Architect NoSQL + SQL = MySQL Nicolas De Rico Principal Solutions Architect nicolas.de.rico@oracle.com Safe Harbor Statement The following is intended to outline our general product direction. It is intended for

More information

Column-Family Stores: Cassandra

Column-Family Stores: Cassandra NDBI040: Big Data Management and NoSQL Databases h p://www.ksi.mff.cuni.cz/ svoboda/courses/2016-1-ndbi040/ Lecture 10 Column-Family Stores: Cassandra Mar n Svoboda svoboda@ksi.mff.cuni.cz 13. 12. 2016

More information

State of the Dolphin Developing new Apps in MySQL 8

State of the Dolphin Developing new Apps in MySQL 8 State of the Dolphin Developing new Apps in MySQL 8 Highlights of MySQL 8.0 technology updates Mark Swarbrick MySQL Principle Presales Consultant Jill Anolik MySQL Global Business Unit Israel Copyright

More information

NoSQL + SQL = MySQL Get the Best of Both Worlds

NoSQL + SQL = MySQL Get the Best of Both Worlds NoSQL + SQL = MySQL Get the Best of Both Worlds Jesper Wisborg Krogh Senior Principal Technical Support Engineer Oracle, MySQL Support October 22, 2018 NEXT 15-MINUTE BRIEFING NoSQL + SQL = MySQL Safe

More information

Key-Value Stores: RiakKV

Key-Value Stores: RiakKV B4M36DS2: Database Systems 2 h p://www.ksi.mff.cuni.cz/ svoboda/courses/2016-1-b4m36ds2/ Lecture 4 Key-Value Stores: RiakKV Mar n Svoboda svoboda@ksi.mff.cuni.cz 24. 10. 2016 Charles University in Prague,

More information

Safe Harbor Statement

Safe Harbor Statement Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment

More information

Develop Python Applications with MySQL Connector/Python DEV5957

Develop Python Applications with MySQL Connector/Python DEV5957 Develop Python Applications with MySQL Connector/Python DEV5957 Jesper Wisborg Krogh Senior Principal Technical Support Engineer Oracle MySQL Support October 24, 2018 Safe Harbor Statement The following

More information

Key-Value Stores: RiakKV

Key-Value Stores: RiakKV B4M36DS2, BE4M36DS2: Database Systems 2 h p://www.ksi.m.cuni.cz/~svoboda/courses/181-b4m36ds2/ Lecture 7 Key-Value Stores: RiakKV Mar n Svoboda mar n.svoboda@fel.cvut.cz 12. 11. 2018 Charles University,

More information

MYSQL DOCUMENT STORE

MYSQL DOCUMENT STORE MYSQL DOCUMENT STORE UNDER THE HOOD Jan Kneschke, mailto:jan.kneschke@oracle.com Architect, MySQL Middleware and Clients Percona Live, April 2016 WHAT TO EXPECT What is MySQL Document Store Foundations

More information

Modern Development With MySQL

Modern Development With MySQL Modern Development With MySQL Nicolas De Rico nicolas.de.rico@oracle.com Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes

More information

Key-Value Stores: RiakKV

Key-Value Stores: RiakKV NDBI040: Big Data Management and NoSQL Databases h p://www.ksi.mff.cuni.cz/ svoboda/courses/2016-1-ndbi040/ Lecture 4 Key-Value Stores: RiakKV Mar n Svoboda svoboda@ksi.mff.cuni.cz 25. 10. 2016 Charles

More information

NODE.JS MOCK TEST NODE.JS MOCK TEST I

NODE.JS MOCK TEST NODE.JS MOCK TEST I http://www.tutorialspoint.com NODE.JS MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Node.js Framework. You can download these sample mock tests at

More information

MySQL Group Replication in a nutshell

MySQL Group Replication in a nutshell 1 / 126 2 / 126 MySQL Group Replication in a nutshell the core of MySQL InnoDB Cluster Oracle Open World September 19th 2016 Frédéric Descamps MySQL Community Manager 3 / 126 Safe Harbor Statement The

More information

CS193X: Web Programming Fundamentals

CS193X: Web Programming Fundamentals CS193X: Web Programming Fundamentals Spring 2017 Victoria Kirst (vrk@stanford.edu) CS193X schedule Today - MongoDB - Servers and MongoDB Friday - Web application architecture - Authentication MongoDB installation

More information

MySQL Document Store. How to replace a NoSQL database by MySQL without effort but with a lot of gains?

MySQL Document Store. How to replace a NoSQL database by MySQL without effort but with a lot of gains? 1 / 71 2 / 71 3 / 71 MySQL Document Store How to replace a NoSQL database by MySQL without effort but with a lot of gains? Percona University, Ghent, Belgium June 2017 Frédéric Descamps - MySQL Community

More information

From the Beginning: Your First Node.js Web Service

From the Beginning: Your First Node.js Web Service From the Beginning: Your First Node.js Web Service P. Venkatramen Data Access Development Oracle Database 10 April 2018 Copyright 2017, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement

More information

B4M36DS2, BE4M36DS2: Database Systems 2

B4M36DS2, BE4M36DS2: Database Systems 2 B4M36DS2, BE4M36DS2: Database Systems 2 h p://www.ksi.mff.cuni.cz/~svoboda/courses/171-b4m36ds2/ Lecture 2 Data Formats Mar n Svoboda mar n.svoboda@fel.cvut.cz 9. 10. 2017 Charles University in Prague,

More information

Everything You Need to Know About MySQL Group Replication

Everything You Need to Know About MySQL Group Replication Everything You Need to Know About MySQL Group Replication Luís Soares (luis.soares@oracle.com) Principal Software Engineer, MySQL Replication Lead Copyright 2017, Oracle and/or its affiliates. All rights

More information

What's New in MySQL 5.7?

What's New in MySQL 5.7? What's New in MySQL 5.7? Norvald H. Ryeng Software Engineer norvald.ryeng@oracle.com Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information

More information

Web Application Development

Web Application Development Web Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie SERVER SIDE JAVASCRIPT PART 1 Outline 1.

More information

Full Stack boot camp

Full Stack boot camp Name Full Stack boot camp Duration (Hours) JavaScript Programming 56 Git 8 Front End Development Basics 24 Typescript 8 React Basics 40 E2E Testing 8 Build & Setup 8 Advanced JavaScript 48 NodeJS 24 Building

More information

Oracle APEX 18.1 New Features

Oracle APEX 18.1 New Features Oracle APEX 18.1 New Features May, 2018 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated

More information

h p://

h p:// B4M36DS2, BE4M36DS2: Database Systems 2 h p://www.ksi.m.cuni.cz/~svoboda/courses/181-b4m36ds2/ Prac cal Class 7 Redis Mar n Svoboda mar n.svoboda@fel.cvut.cz 19. 11. 2018 Charles University, Faculty of

More information

<Insert Picture Here> MySQL Cluster What are we working on

<Insert Picture Here> MySQL Cluster What are we working on MySQL Cluster What are we working on Mario Beck Principal Consultant The following is intended to outline our general product direction. It is intended for information purposes only,

More information

MySQL & NoSQL: The Best of Both Worlds

MySQL & NoSQL: The Best of Both Worlds MySQL & NoSQL: The Best of Both Worlds Mario Beck Principal Sales Consultant MySQL mario.beck@oracle.com 1 Copyright 2012, Oracle and/or its affiliates. All rights Safe Harbour Statement The following

More information

JS Event Loop, Promises, Async Await etc. Slava Kim

JS Event Loop, Promises, Async Await etc. Slava Kim JS Event Loop, Promises, Async Await etc Slava Kim Synchronous Happens consecutively, one after another Asynchronous Happens later at some point in time Parallelism vs Concurrency What are those????

More information

Node.js. Node.js Overview. CS144: Web Applications

Node.js. Node.js Overview. CS144: Web Applications Node.js Node.js Overview JavaScript runtime environment based on Chrome V8 JavaScript engine Allows JavaScript to run on any computer JavaScript everywhere! On browsers and servers! Intended to run directly

More information

MySQL X Protocol Talking to MySQL Directly over the Wire

MySQL X Protocol Talking to MySQL Directly over the Wire MySQL X Protocol Talking to MySQL Directly over the Wire Simon J Mudd Percona Live Europe Amsterdam 5 th October 2016 Content What is MySQL X protocol How does it work Building

More information

What is Node.js? Tim Davis Director, The Turtle Partnership Ltd

What is Node.js? Tim Davis Director, The Turtle Partnership Ltd What is Node.js? Tim Davis Director, The Turtle Partnership Ltd About me Co-founder of The Turtle Partnership Working with Notes and Domino for over 20 years Working with JavaScript technologies and frameworks

More information

MySQL HA Solutions Selecting the best approach to protect access to your data

MySQL HA Solutions Selecting the best approach to protect access to your data MySQL HA Solutions Selecting the best approach to protect access to your data Sastry Vedantam sastry.vedantam@oracle.com February 2015 Copyright 2015, Oracle and/or its affiliates. All rights reserved

More information

MySQL for Developers. Duration: 5 Days

MySQL for Developers. Duration: 5 Days Oracle University Contact Us: 0800 891 6502 MySQL for Developers Duration: 5 Days What you will learn This MySQL for Developers training teaches developers how to develop console and web applications using

More information

MySQL for Developers. Duration: 5 Days

MySQL for Developers. Duration: 5 Days Oracle University Contact Us: Local: 0845 777 7 711 Intl: +44 845 777 7 711 MySQL for Developers Duration: 5 Days What you will learn This MySQL for Developers training teaches developers how to develop

More information

Node.js. Mendel Rosenblum. CS142 Lecture Notes - Node.js

Node.js. Mendel Rosenblum. CS142 Lecture Notes - Node.js Node.js Mendel Rosenblum Threads versus Events request = readrequest(socket); reply = processrequest(request); sendreply(socket, reply); Implementation: Thread switching (i.e. blocking) and a scheduler

More information

MEAN Stack. 1. Introduction. 2. Foundation a. The Node.js framework b. Installing Node.js c. Using Node.js to execute scripts

MEAN Stack. 1. Introduction. 2. Foundation a. The Node.js framework b. Installing Node.js c. Using Node.js to execute scripts MEAN Stack 1. Introduction 2. Foundation a. The Node.js framework b. Installing Node.js c. Using Node.js to execute scripts 3. Node Projects a. The Node Package Manager b. Creating a project c. The package.json

More information

A RESTful Java Framework for Asynchronous High-Speed Ingest

A RESTful Java Framework for Asynchronous High-Speed Ingest A RESTful Java Framework for Asynchronous High-Speed Ingest Pablo Silberkasten Jean De Lavarene Kuassi Mensah JDBC Product Development October 5, 2017 3 Safe Harbor Statement The following is intended

More information

ADBA Asynchronous Database Access

ADBA Asynchronous Database Access ADBA Asynchronous Database Access A new asynchronous API for connecting to a database Douglas Surber Kuassi Mensah JDBC Architect Director, Product Management Database Server Technologies July 18, 2018

More information

JSON Evaluation. User Store

JSON Evaluation. User Store Overview Demo following technologies: JSON Node Package Manager npm Node modules. Very brief introduction to asynchronous programming using async and await. Mongo db JSON JavaScript Object Notation. Inductive

More information

Web Services in Ac-on. Mark Schroeder 2E Track

Web Services in Ac-on. Mark Schroeder 2E Track Web Services in Ac-on Mark Schroeder 2E Track FOR INFORMATION PURPOSES ONLY Terms of this presenta3on This presenta-on was based on current informa-on and resource alloca-ons as of April 2013 and is subject

More information

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 8

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 8 1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 8 ADVANCED MYSQL REPLICATION ARCHITECTURES Luís

More information

MySQL Replication Update

MySQL Replication Update MySQL Replication Update Lars Thalmann Development Director MySQL Replication, Backup & Connectors OSCON, July 2011 MySQL Releases MySQL 5.1 Generally Available, November 2008 MySQL

More information

MapReduce, Apache Hadoop

MapReduce, Apache Hadoop B4M36DS2, BE4M36DS2: Database Systems 2 h p://www.ksi.mff.cuni.cz/~svoboda/courses/171-b4m36ds2/ Lecture 5 MapReduce, Apache Hadoop Mar n Svoboda mar n.svoboda@fel.cvut.cz 30. 10. 2017 Charles University

More information

Building Real-time Data in Web Applications with Node.js

Building Real-time Data in Web Applications with Node.js Building Real-time Data in Web Applications with Node.js Dan McGhan Oracle Developer Advocate JavaScript and HTML5 March, 2017 Copyright 2017, Oracle and/or its affiliates. All rights reserved. Safe Harbor

More information

Welcome to Virtual Developer Day MySQL!

Welcome to Virtual Developer Day MySQL! Welcome to Virtual Developer Day MySQL! Keynote: Developer and DBA Guide to What s New in MySQL 5.6 Rob Young Director of Product Management, MySQL 1 Program Agenda 9:00 AM Keynote: What s New in MySQL

More information

Oracle SQL Developer & REST Data Services

Oracle SQL Developer & REST Data Services Oracle SQL Developer & REST Data Services What s New Jeff Smith Senior Principal Product Manager Database Development Tools Jeff.d.smith@oracle.com @thatjeffsmith http://www.thatjeffsmith.com Agenda New

More information

Improvements in MySQL 5.5 and 5.6. Peter Zaitsev Percona Live NYC May 26,2011

Improvements in MySQL 5.5 and 5.6. Peter Zaitsev Percona Live NYC May 26,2011 Improvements in MySQL 5.5 and 5.6 Peter Zaitsev Percona Live NYC May 26,2011 State of MySQL 5.5 and 5.6 MySQL 5.5 Released as GA December 2011 Percona Server 5.5 released in April 2011 Proven to be rather

More information

REST APIs on z/os. How to use z/os Connect RESTful APIs with Modern Cloud Native Applications. Bill Keller

REST APIs on z/os. How to use z/os Connect RESTful APIs with Modern Cloud Native Applications. Bill Keller REST APIs on z/os How to use z/os Connect RESTful APIs with Modern Cloud Native Applications Bill Keller bill.keller@us.ibm.com Important Disclaimer IBM s statements regarding its plans, directions and

More information

Group Replication: A Journey to the Group Communication Core. Alfranio Correia Principal Software Engineer

Group Replication: A Journey to the Group Communication Core. Alfranio Correia Principal Software Engineer Group Replication: A Journey to the Group Communication Core Alfranio Correia (alfranio.correia@oracle.com) Principal Software Engineer 4th of February Copyright 7, Oracle and/or its affiliates. All rights

More information

Fluentd. Open Source Data Collector. Eduardo Jan 23, 2016 Scale14x, Pasadena!

Fluentd. Open Source Data Collector. Eduardo Jan 23, 2016 Scale14x, Pasadena! Fluentd Open Source Data Collector Jan 23, 2016 Scale14x, Pasadena! Eduardo Silva eduardo@treasuredata.com @edsiper spread the word! #scale14x #fluentd @edsiper About Me Eduardo Silva Github & Twitter

More information

#MySQL #oow16. MySQL Server 8.0. Geir Høydalsvik

#MySQL #oow16. MySQL Server 8.0. Geir Høydalsvik #MySQL #oow16 MySQL Server 8.0 Geir Høydalsvik Copyright Copyright 2 2016, 016,Oracle Oracle aand/or nd/or its its aaffiliates. ffiliates. AAll ll rights rights reserved. reserved. Safe Harbor Statement

More information

Performance improvements in MySQL 5.5

Performance improvements in MySQL 5.5 Performance improvements in MySQL 5.5 Percona Live Feb 16, 2011 San Francisco, CA By Peter Zaitsev Percona Inc -2- Performance and Scalability Talk about Performance, Scalability, Diagnostics in MySQL

More information

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, 2016

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, 2016 DATABASE SYSTEMS Database programming in a web environment Database System Course, 2016 AGENDA FOR TODAY Advanced Mysql More than just SELECT Creating tables MySQL optimizations: Storage engines, indexing.

More information

Selenium Testing Course Content

Selenium Testing Course Content Selenium Testing Course Content Introduction What is automation testing? What is the use of automation testing? What we need to Automate? What is Selenium? Advantages of Selenium What is the difference

More information

Unifying Events & Logs into the Cloud

Unifying Events & Logs into the Cloud Unifying Events & Logs into the Cloud October 05, 2015 CloudOpen/LinuxCon, Dublin Eduardo Silva eduardo@treasuredata.com @edsiper About Me Eduardo Silva Github & Twitter Personal Blog @edsiper http://edsiper.linuxchile.cl

More information

When learning coding, be brave

When learning coding, be brave Who am I? Web Technology Overview with a focus on JavaScript-based technologies Lawrence Yao l.yao@unsw.edu.au Lawrence Yao UNSW casual staff Developer Analyst at YTML Consulting Email me if you need technical

More information

Using Cowichan Problems to Inves6gate Programmability of X10 Programming System

Using Cowichan Problems to Inves6gate Programmability of X10 Programming System Using Cowichan Problems to Inves6gate Programmability of X1 Programming System Jeeva S. Paudel, J. Nelson Amaral Department of Computing Science University of Alberta, Edmonton Canada June 4, 211 X1: Design

More information

Watch Angular Js and Node Js Demo Video Here: Why Training with Us?

Watch Angular Js and Node Js Demo Video Here:   Why Training with Us? Website: http://www.ruchiwebsolutions.com/ Contact person: Ranjan Raja Moble/Whatsapp: +91-9347045052 / 09032803895 Dilsukhnagar, Hyderabad Email: info@ruchiwebsolutions.com Skype: Purnendu_ranjan Course

More information

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015 Fundamentals of Website Development CSC 2320, Fall 2015 The Department of Computer Science Review Web Extensions Server side & Where is your JOB? 1 In this chapter Dynamic pages programming Database Others

More information

MySQL InnoDB Cluster. New Feature in MySQL >= Sergej Kurakin

MySQL InnoDB Cluster. New Feature in MySQL >= Sergej Kurakin MySQL InnoDB Cluster New Feature in MySQL >= 5.7.17 Sergej Kurakin Sergej Kurakin Age: 36 Company: NFQ Technologies Position: Software Engineer Problem What if your database server fails? Reboot? Accidental

More information

In Workflow. Viewing: Last edit: 11/04/14 4:01 pm. Approval Path. Programs referencing this course. Submi er: Proposing College/School: Department:

In Workflow. Viewing: Last edit: 11/04/14 4:01 pm. Approval Path. Programs referencing this course. Submi er: Proposing College/School: Department: 1 of 5 1/6/2015 1:20 PM Date Submi ed: 11/04/14 4:01 pm Viewing: Last edit: 11/04/14 4:01 pm Changes proposed by: SIMSLUA In Workflow 1. INSY Editor 2. INSY Chair 3. EN Undergraduate Curriculum Commi ee

More information

NDBI040: Big Data Management and NoSQL Databases. h p:// svoboda/courses/ ndbi040/

NDBI040: Big Data Management and NoSQL Databases. h p://  svoboda/courses/ ndbi040/ NDBI040: Big Data Management and NoSQL Databases h p://www.ksi.mff.cuni.cz/ svoboda/courses/2016-1-ndbi040/ Prac cal Class 2 Riak Key-Value Store Mar n Svoboda svoboda@ksi.mff.cuni.cz 25. 10. 2016 Charles

More information

Smashing Node.JS: JavaScript Everywhere

Smashing Node.JS: JavaScript Everywhere Smashing Node.JS: JavaScript Everywhere Rauch, Guillermo ISBN-13: 9781119962595 Table of Contents PART I: GETTING STARTED: SETUP AND CONCEPTS 5 Chapter 1: The Setup 7 Installing on Windows 8 Installing

More information

What s New in MySQL 5.7 Geir Høydalsvik, Sr. Director, MySQL Engineering. Copyright 2015, Oracle and/or its affiliates. All rights reserved.

What s New in MySQL 5.7 Geir Høydalsvik, Sr. Director, MySQL Engineering. Copyright 2015, Oracle and/or its affiliates. All rights reserved. What s New in MySQL 5.7 Geir Høydalsvik, Sr. Director, MySQL Engineering Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes

More information

Mix n Match Async and Group Replication for Advanced Replication Setups. Pedro Gomes Software Engineer

Mix n Match Async and Group Replication for Advanced Replication Setups. Pedro Gomes Software Engineer Mix n Match Async and Group Replication for Advanced Replication Setups Pedro Gomes (pedro.gomes@oracle.com) Software Engineer 4th of February Copyright 2017, Oracle and/or its affiliates. All rights reserved.

More information

Project Avatar: Server Side JavaScript on the JVM GeeCon - May David Software Evangelist - Oracle

Project Avatar: Server Side JavaScript on the JVM GeeCon - May David Software Evangelist - Oracle Project Avatar: Server Side JavaScript on the JVM GeeCon - May 2014! David Delabassee @delabassee Software Evangelist - Oracle The following is intended to outline our general product direction. It is

More information

NDBI040: Big Data Management and NoSQL Databases

NDBI040: Big Data Management and NoSQL Databases NDBI040: Big Data Management and NoSQL Databases h p://www.ksi.mff.cuni.cz/~svoboda/courses/171-ndbi040/ Prac cal Class 8 MongoDB Mar n Svoboda svoboda@ksi.mff.cuni.cz 5. 12. 2017 Charles University in

More information

Corey Clark PhD Daniel Montgomery

Corey Clark PhD Daniel Montgomery Corey Clark PhD Daniel Montgomery Web Dev Platform Cross Platform Cross Browser WebGL HTML5 Web Socket Web Worker Hardware Acceleration Optimized Communication Channel Parallel Processing JaHOVA OS Kernel

More information

SQL Gone Wild: Taming Bad SQL the Easy Way (or the Hard Way) Sergey Koltakov Product Manager, Database Manageability

SQL Gone Wild: Taming Bad SQL the Easy Way (or the Hard Way) Sergey Koltakov Product Manager, Database Manageability SQL Gone Wild: Taming Bad SQL the Easy Way (or the Hard Way) Sergey Koltakov Product Manager, Database Manageability Oracle Enterprise Manager Top-Down, Integrated Application Management Complete, Open,

More information

<Insert Picture Here> Introduction to MySQL

<Insert Picture Here> Introduction to MySQL Introduction to MySQL Giuseppe Maxia MySQL Community Team Lead at Oracle about me -Giuseppe Maxia a.k.a. The Data Charmer MySQL Community Team Lead Long time hacking with MySQL features

More information

MySQL High Availability

MySQL High Availability MySQL High Availability InnoDB Cluster and NDB Cluster Ted Wennmark ted.wennmark@oracle.com Copyright 2016, Oracle and/or its its affiliates. All All rights reserved. Safe Harbor Statement The following

More information

Watch AngularJS and NodeJS Demo Video Here:

Watch AngularJS and NodeJS Demo Video Here: Website: http://www.php2ranjan.com/ Contact person: Ranjan Mobile/whatsapp: 91-9347045052, 09032803895 Dilsukhnagar, Hyderabad, India Email: purusingh2004@gmail.com Skype: purnendu_ranjan Course name:

More information

Oracle NoSQL Database at OOW 2017

Oracle NoSQL Database at OOW 2017 Oracle NoSQL Database at OOW 2017 CON6544 Oracle NoSQL Database Cloud Service Monday 3:15 PM, Moscone West 3008 CON6543 Oracle NoSQL Database Introduction Tuesday, 3:45 PM, Moscone West 3008 CON6545 Oracle

More information

Safe Harbor Statement

Safe Harbor Statement Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment

More information

Eduardo

Eduardo Eduardo Silva @edsiper eduardo@treasure-data.com About Me Eduardo Silva Github & Twitter Personal Blog @edsiper http://edsiper.linuxchile.cl Treasure Data Open Source Engineer Fluentd / Fluent Bit http://github.com/fluent

More information

InnoDB: What s new in 8.0

InnoDB: What s new in 8.0 InnoDB: What s new in 8.0 Sunny Bains Director Software Development Copyright 2017, Oracle and/or its its affiliates. All All rights reserved. Safe Harbor Statement The following is intended to outline

More information

REST Services. Zaenal Akbar

REST Services. Zaenal Akbar PS/ Web Services REST Services Zaenal Akbar Friday, - - Outline REST Services Overview Principles Common Errors Exercise What is REST? Set of architectural principles used for design of distributed systems

More information

What s new in Mongo 4.0. Vinicius Grippa Percona

What s new in Mongo 4.0. Vinicius Grippa Percona What s new in Mongo 4.0 Vinicius Grippa Percona About me Support Engineer at Percona since 2017 Working with MySQL for over 5 years - Started with SQL Server Working with databases for 7 years 2 Agenda

More information

MySQL 8.0: Atomic DDLs Implementation and Impact

MySQL 8.0: Atomic DDLs Implementation and Impact MySQL 8.0: Atomic DDLs Implementation and Impact Ståle Deraas, Senior Development Manager Oracle, MySQL 26 Sept 2017 Copyright 2017, Oracle and/or its its affiliates. All All rights reserved. Safe Harbor

More information

But before understanding the Selenium WebDriver concept, we need to know about the Selenium first.

But before understanding the Selenium WebDriver concept, we need to know about the Selenium first. As per the today s scenario, companies not only desire to test software adequately, but they also want to get the work done as quickly and thoroughly as possible. To accomplish this goal, organizations

More information

THE ATLAS DISTRIBUTED DATA MANAGEMENT SYSTEM & DATABASES

THE ATLAS DISTRIBUTED DATA MANAGEMENT SYSTEM & DATABASES 1 THE ATLAS DISTRIBUTED DATA MANAGEMENT SYSTEM & DATABASES Vincent Garonne, Mario Lassnig, Martin Barisits, Thomas Beermann, Ralph Vigne, Cedric Serfon Vincent.Garonne@cern.ch ph-adp-ddm-lab@cern.ch XLDB

More information

Digital Analy 韜 cs Installa 韜 on and Configura 韜 on

Digital Analy 韜 cs Installa 韜 on and Configura 韜 on Home > Digital AnalyĀcs > Digital Analy 韜 cs Installa 韜 on and Configura 韜 on Digital Analy 韜 cs Installa 韜 on and Configura 韜 on Introduc 韜 on Digital Analy 韜 cs is an e automate applica 韜 on that assists

More information

Module 6 Node.js and Socket.IO

Module 6 Node.js and Socket.IO Module 6 Node.js and Socket.IO Module 6 Contains 2 components Individual Assignment and Group Assignment Both are due on Wednesday November 15 th Read the WIKI before starting Portions of today s slides

More information

Connecting your Microservices and Cloud Services with Oracle Integration CON7348

Connecting your Microservices and Cloud Services with Oracle Integration CON7348 Connecting your Microservices and Cloud Services with Oracle Integration CON7348 Robert Wunderlich Sr. Principal Product Manager September 19, 2016 Copyright 2016, Oracle and/or its affiliates. All rights

More information

Continuous delivery of Java applications. Marek Kratky Principal Sales Consultant Oracle Cloud Platform. May, 2016

Continuous delivery of Java applications. Marek Kratky Principal Sales Consultant Oracle Cloud Platform. May, 2016 Continuous delivery of Java applications using Oracle Cloud Platform Services Marek Kratky Principal Sales Consultant Oracle Cloud Platform May, 2016 Safe Harbor Statement The following is intended to

More information

MySQL Architecture Design Patterns for Performance, Scalability, and Availability

MySQL Architecture Design Patterns for Performance, Scalability, and Availability MySQL Architecture Design Patterns for Performance, Scalability, and Availability Brian Miezejewski Principal Manager Consulting Alexander Rubin Principal Consultant Agenda HA and

More information

Copyright 2018, Oracle and/or its affiliates. All rights reserved.

Copyright 2018, Oracle and/or its affiliates. All rights reserved. Beyond SQL Tuning: Insider's Guide to Maximizing SQL Performance Monday, Oct 22 10:30 a.m. - 11:15 a.m. Marriott Marquis (Golden Gate Level) - Golden Gate A Ashish Agrawal Group Product Manager Oracle

More information

electronic license applications user s guide Contents What you need Page 1 Get started Page 3 Paper Non-Resident Licensing Page 10

electronic license applications user s guide Contents What you need Page 1 Get started Page 3 Paper Non-Resident Licensing Page 10 applications Contents What you need Page 1 Get started Page 3 Paper Non-Resident Licensing Page 10 Welcome to the Na onal Insurance Producer Registry s applications The give producers the ability to quickly

More information

WHY AND HOW TO LEVERAGE THE POWER AND SIMPLICITY OF SQL ON APACHE FLINK - FABIAN HUESKE, SOFTWARE ENGINEER

WHY AND HOW TO LEVERAGE THE POWER AND SIMPLICITY OF SQL ON APACHE FLINK - FABIAN HUESKE, SOFTWARE ENGINEER WHY AND HOW TO LEVERAGE THE POWER AND SIMPLICITY OF SQL ON APACHE FLINK - FABIAN HUESKE, SOFTWARE ENGINEER ABOUT ME Apache Flink PMC member & ASF member Contributing since day 1 at TU Berlin Focusing on

More information

DATABASE SYSTEMS. Database programming in a web environment. Database System Course,

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, DATABASE SYSTEMS Database programming in a web environment Database System Course, 2016-2017 AGENDA FOR TODAY The final project Advanced Mysql Database programming Recap: DB servers in the web Web programming

More information

Overview. Principal Product Manager Oracle JDeveloper & Oracle ADF

Overview. Principal Product Manager Oracle JDeveloper & Oracle ADF Rich Web UI made simple an ADF Faces Overview Dana Singleterry Dana Singleterry Principal Product Manager Oracle JDeveloper & Oracle ADF Agenda Comparison: New vs. Old JDeveloper Provides JSF Overview

More information

<Insert Picture Here>

<Insert Picture Here> Oracle Forms Modernization with Oracle Application Express Marc Sewtz Software Development Manager Oracle Application Express Oracle USA Inc. 540 Madison Avenue,

More information

MySQL High Availability

MySQL High Availability MySQL High Availability And other stuff worth talking about Peter Zaitsev CEO Moscow MySQL Users Group Meetup July 11 th, 2017 1 Few Words about Percona 2 Percona s Purpose To Champion Unbiased Open Source

More information

Future Web App Technologies

Future Web App Technologies Future Web App Technologies Mendel Rosenblum MEAN software stack Stack works but not the final say in web app technologies Angular.js Browser-side JavaScript framework HTML Templates with two-way binding

More information

MySQL for Database Administrators Ed 3.1

MySQL for Database Administrators Ed 3.1 Oracle University Contact Us: 1.800.529.0165 MySQL for Database Administrators Ed 3.1 Duration: 5 Days What you will learn The MySQL for Database Administrators training is designed for DBAs and other

More information

Introduction to Azure DocumentDB. Jeff Renz, BI Architect RevGen Partners

Introduction to Azure DocumentDB. Jeff Renz, BI Architect RevGen Partners Introduction to Azure DocumentDB Jeff Renz, BI Architect RevGen Partners Thank You Presenting Sponsors Gain insights through familiar tools while balancing monitoring and managing user created content

More information