What do you mean, Backwards Compatibility?

Size: px
Start display at page:

Download "What do you mean, Backwards Compatibility?"

Transcription

1 #gotober What do you mean, Backwards Compatibility? Trisha Gee, Java Driver Friday, 18 October 13

2 What s the problem?

3 The Domain

4 MongoDB is an open-source document database, featuring: Document-Oriented Storage Full Index Support Replication & High Availability Auto-Sharding Querying Fast In-Place Updates Map/Reduce GridFS

5 The Driver

6

7

8

9 Why is this my problem? Friday, 18 October 13

10 What do we want to do?

11 Design Goals Friday, 18 October 13 Intuitive API Consistency Understandable exceptions Cleaner design Test friendly Backwards compatible

12 Happy Users

13 Three Types Of Users

14 Three Types Of Users 1. Java Developers Friday, 18 October 13

15 Three Types Of Users 1. Java Developers 2. ODMs / other drivers / third parties Friday, 18 October 13

16 Three Types Of Users 1. Java Developers 2. ODMs / other drivers / third parties 3. Contributors Friday, 18 October 13

17 What s stopping us?

18 Lots of unknowns

19 Lots of APIs

20 Backward Compatibility

21 What did we do?

22 Architecture

23 How Hard Can It Be?

24 Domain

25 MongoDB is an open-source document database, featuring: Document-Oriented Storage Full Index Support Replication & High Availability Auto-Sharding Querying Fast In-Place Updates Map/Reduce GridFS

26 Bit more complex...

27 MongoDB is an open-source document database, featuring: Document-Oriented Storage Full Index Support Replication & High Availability Auto-Sharding Querying Fast In-Place Updates Map/Reduce GridFS

28 Instead of this...

29 Model the Domain

30 Scala Driver

31 Backwards Compatible!

32 MongoDB is an open-source document database, featuring: Document-Oriented Storage Full Index Support Replication & High Availability Auto-Sharding Querying Fast In-Place Updates Map/Reduce GridFS

33 Multi Server

34 Replica Set

35 Replica Set

36

37 Replica Sharding Set Friday, 18 October 13

38

39 Finding Servers the Old Way Friday, 18 October 13

40

41

42

43

44

45

46

47

48

49

50 But now...

51

52

53

54

55 MongoDB is an open-source document database, featuring: Document-Oriented Storage Full Index Support Replication & High Availability Auto-Sharding Querying Fast In-Place Updates Map/Reduce GridFS

56 MongoDB is an open-source document database, featuring: Document-Oriented Storage Full Index Support Replication & High Availability Auto-Sharding Querying Fast In-Place Updates Map/Reduce GridFS

57 The New API

58 Caveats It won t look like this Haven t decided consistent names yet Need something that suits all drivers Friday, 18 October 13

59 MongoDB is an open-source document database, featuring: Document-Oriented Storage Full Index Support Replication & High Availability Auto-Sharding Querying Fast In-Place Updates Map/Reduce GridFS

60 patron = { _id: "joe", name: "Joe Bookreader", address: { street: "123 Fake St", city: "Faketon", state: "MA", zip: } books: [ 27464, ,...] }

61 List books = new BasicDBList(); books.add(27464, ); new BasicDBObject("_id", "joe").append("name", "Joe Bookreader").append("address", new BasicDBObject("street", "123 Fake St").append("city", "Faketon").append("state", "MA").append("zip", 12345)).append("books", books); collection.insert(books); Building a Document Friday, 18 October 13

62 DBCollection collection = database.getcollection("coll"); ArrayList<Patron> resultstoreturn = new ArrayList<Patron>(); DBObject query = new BasicDBObject("name", thenametofind); DBCursor results = collection.find(query); for (DBObject dbobject : results) { Patron patron = new Patron((String) dbobject.get("name"), new Address((String)dbObject.get("street"), (String)dbObject.get("city"), (String)dbObject.get("state"), (Integer)dbObject.get("zip")), (BasicDBList)dbObject.get("books")); resultstoreturn.add(patron); } return resultstoreturn; Getting it back Friday, 18 October 13

63 DBCollection collection = database.getcollection("coll"); ArrayList<Patron> resultstoreturn = new ArrayList<Patron>(); DBObject query = new BasicDBObject("name", thenametofind); DBCursor results = collection.find(query); for (DBObject dbobject : results) { Patron patron = new Patron((String) dbobject.get("name"), new Address((String)dbObject.get("street"), (String)dbObject.get("city"), (String)dbObject.get("state"), (Integer)dbObject.get("zip")), (BasicDBList)dbObject.get("books")); resultstoreturn.add(patron); } return resultstoreturn; Casting is fun Friday, 18 October 13

64 MongoCollection<Patron> collection = database.getcollection("coll", new PatronCodec()); Document query = new Document("name", thenametofind); return collection.find(query).into(new ArrayList<Patron>()); New API Friday, 18 October 13

65 MongoCollection<Patron> collection = database.getcollection("coll", new PatronCodec()); Document query = new Document("name", thenametofind); return collection.find(query).into(new ArrayList<Patron>()); Separation of concerns Friday, 18 October 13

66 MongoDB is an open-source document database, featuring: Document-Oriented Storage Full Index Support Replication & High Availability Auto-Sharding Querying Fast In-Place Updates Map/Reduce GridFS

67 MongoDB is an open-source document database, featuring: Document-Oriented Storage Full Index Support Replication & High Availability Auto-Sharding Querying Fast In-Place Updates Map/Reduce GridFS

68 Find

69 collection.find(query).skip(1000).limit(100); Find Friday, 18 October 13

70 collection.find(query).skip(1000).limit(100); collection.find(query).skip(1000).limit(100); Find Friday, 18 October 13

71 collection.find(query).skip(1000).limit(100); collection.find(query).skip(1000).limit(100); collection.find(query, fields); Find Friday, 18 October 13

72 Which One?

73 Find

74 collection.find(query).skip(1000).limit(100); collection.find(query).skip(1000).limit(100); collection.find(query, fields); Find Friday, 18 October 13

75 collection.find(query).skip(1000).limit(100); collection.find(query).skip(1000).limit(100); collection.find(query, fields); collection.find(query).project(fields); Find Friday, 18 October 13

76 Fewer Decisions

77 Ctrl + space friendly

78 Remove

79 collection.remove(query); Remove Friday, 18 October 13

80 collection.remove(query); collection.find(query).remove(); Remove Friday, 18 October 13

81 Update

82 collection.update(query, newvalues) Update Friday, 18 October 13

83 collection.update(query, newvalues) collection.find(query).updateone(newvalues); Update Friday, 18 October 13

84 Overloaded Methods

85 Update

86 collection.update(query, newvalues); collection.find(query).updateone(newvalues); collection.update(query, newvalues, false, false, JOURNALED); Update Friday, 18 October 13

87 collection.update(query, newvalues); collection.find(query).updateone(newvalues); collection.update(query, newvalues, false, false, JOURNALED); collection.find(query).withwriteconcern(journaled).updateone(newvalues); Update Friday, 18 October 13

88 Update

89 collection.update(query, newvalues); collection.find(query).updateone(newvalues); collection.update(query, newvalues, false, false, JOURNALED); collection.find(query).withwriteconcern(journaled).updateone(newvalues); collection.update(query, newvalues, true, false, JOURNALED); Update Friday, 18 October 13

90 collection.update(query, newvalues); collection.find(query).updateone(newvalues); collection.update(query, newvalues, false, false, JOURNALED); collection.find(query).withwriteconcern(journaled).updateone(newvalues); collection.update(query, newvalues, true, false, JOURNALED); collection.find(query).withwriteconcern(journaled).upsert().updateone(newvalues); Update Friday, 18 October 13

91 Update

92 collection.update(query, newvalues); collection.find(query).updateone(newvalues); collection.update(query, newvalues, false, false, JOURNALED); collection.find(query).withwriteconcern(journaled).updateone(newvalues); collection.update(query, newvalues, true, true, JOURNALED); collection.find(query).withwriteconcern(journaled).upsert().update(newvalues); Update Friday, 18 October 13

93 MongoDB is an open-source document database, featuring: Document-Oriented Storage Full Index Support Replication & High Availability Auto-Sharding Querying Fast In-Place Updates Map/Reduce GridFS

94 MongoDB is an open-source document database, featuring: Document-Oriented Storage Full Index Support Replication & High Availability Auto-Sharding Querying Fast In-Place Updates Map/Reduce GridFS

95 Atomic Operations

96 Find and Modify

97 collection.findandmodify(query, newvalues); Find and Modify Friday, 18 October 13

98 collection.findandmodify(query, newvalues); collection.find(query).getoneandupdate(newvalues); Find and Modify Friday, 18 October 13

99 They hate me!

100 Find and Modify

101 collection.findandmodify(query, update); collection.find(query).getoneandupdate(update); collection.findandmodify(query, fields, criteria, false, newvalues, false, false); Find and Modify Friday, 18 October 13

102 collection.findandmodify(query, update); collection.find(query).getoneandupdate(update); collection.findandmodify(query, fields, criteria, false, newvalues, false, false); collection.find(query).project(fields).sort(criteria).getoneandupdate(newvalues); Find and Modify Friday, 18 October 13

103 collection.findandmodify(query, update); collection.find(query).getoneandupdate(update); collection.findandmodify(query, fields, criteria, false, newvalues, true, false); collection.find(query).project(fields).sort(criteria).updateoneandget(newvalues); Find and Modify Friday, 18 October 13

104 Consistency

105 collection.find(query).count(); collection.find(query).remove(); collection.find(query).update(newvalues); collection.find(query).updateoneandget(newvalues); collection.find(query).getoneandupdate(newvalues); collection.find(query).sort(sortcriteria).skip(9).limit(10).get(); collection.find(query).sort(sortcriteria).skip(9).limit(10).getone(); collection.find(query).sort(ascending("name")).getone(); Consistency at last Friday, 18 October 13

106 How do we know we did it?

107 Tests Pass...

108 ...and more tests pass... Friday, 18 October 13

109 ...even more tests pass... Friday, 18 October 13

110 It s being used in anger Friday, 18 October 13

111 Conclusion

112 Conclusion

113 Conclusion Model your domain Friday, 18 October 13

114 Conclusion Model your domain Know your users Friday, 18 October 13

115 Conclusion Model your domain Know your users API design is hard Friday, 18 October 13

116 Questions Friday, 18 October 13

117 MongoFuture<Document> future = collection.find(query).sort(criteria).skip(9).limit(10).asyncone(); MongoFuture<Long> count = collection.find(query).asynccount(); MongoFuture<WriteResult> replaceresult = collection.find(query).asyncreplace(replacement); What about async? Friday, 18 October 13

118 Understandable Exceptions Client Exceptions Server Exceptions No more parsing error Strings Friday, 18 October 13

119 Documentation Self documenting code JavaDoc Unit, Functional and Acceptance Tests Blogs Tutorials Friday, 18 October 13

120 My Questions

121 1. Are you using the Java driver? Friday, 18 October 13

122 2. What do you like about it? Friday, 18 October 13

123 3. What are your pain points? Friday, 18 October 13

Course Content MongoDB

Course Content MongoDB Course Content MongoDB 1. Course introduction and mongodb Essentials (basics) 2. Introduction to NoSQL databases What is NoSQL? Why NoSQL? Difference Between RDBMS and NoSQL Databases Benefits of NoSQL

More information

The course modules of MongoDB developer and administrator online certification training:

The course modules of MongoDB developer and administrator online certification training: The course modules of MongoDB developer and administrator online certification training: 1 An Overview of the Course Introduction to the course Table of Contents Course Objectives Course Overview Value

More information

Brad Dayley. Sams Teach Yourself. NoSQL with MongoDB. SAMS 800 East 96th Street, Indianapolis, Indiana, USA

Brad Dayley. Sams Teach Yourself. NoSQL with MongoDB. SAMS 800 East 96th Street, Indianapolis, Indiana, USA Brad Dayley Sams Teach Yourself NoSQL with MongoDB SAMS 800 East 96th Street, Indianapolis, Indiana, 46240 USA Table of Contents Introduction 1 How This Book Is Organized 1 Code Examples 2 Special Elements

More information

MongoDB for C# Developers

MongoDB for C# Developers MongoDB for C# Developers Simon Elliston Ball @sireb http://www.mongodb.org/ Document Database Document Database id full_name address 1 John 3a Test Street 2 Jane Smith Doe 1b Fake Street 3...... Document

More information

MongoDB. Kristina Chodorow September 8 th, 2009

MongoDB. Kristina Chodorow September 8 th, 2009 MongoDB Kristina Chodorow September 8 th, 2009 Who am I? Software Engineer at 10gen Java, Perl, PHP, drivers Technique #1: literally scale Technique #1: literally scale (Courtesy of Ask Bjorn Hansen)

More information

Data Model Design for MongoDB

Data Model Design for MongoDB Data Model Design for MongoDB Release 3.2.3 MongoDB, Inc. February 17, 2016 2 MongoDB, Inc. 2008-2016 This work is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike 3.0 United States

More information

ITG Software Engineering

ITG Software Engineering Introduction to MongoDB Course ID: Page 1 Last Updated 12/15/2014 MongoDB for Developers Course Overview: In this 3 day class students will start by learning how to install and configure MongoDB on a Mac

More information

MONGODB INTERVIEW QUESTIONS

MONGODB INTERVIEW QUESTIONS MONGODB INTERVIEW QUESTIONS http://www.tutorialspoint.com/mongodb/mongodb_interview_questions.htm Copyright tutorialspoint.com Dear readers, these MongoDB Interview Questions have been designed specially

More information

Couchbase Architecture Couchbase Inc. 1

Couchbase Architecture Couchbase Inc. 1 Couchbase Architecture 2015 Couchbase Inc. 1 $whoami Laurent Doguin Couchbase Developer Advocate @ldoguin laurent.doguin@couchbase.com 2015 Couchbase Inc. 2 2 Big Data = Operational + Analytic (NoSQL +

More information

Your First MongoDB Environment: What You Should Know Before Choosing MongoDB as Your Database

Your First MongoDB Environment: What You Should Know Before Choosing MongoDB as Your Database Your First MongoDB Environment: What You Should Know Before Choosing MongoDB as Your Database Me - @adamotonete Adamo Tonete Senior Technical Engineer Brazil Agenda What is MongoDB? The good side of MongoDB

More information

Open source, high performance database. July 2012

Open source, high performance database. July 2012 Open source, high performance database July 2012 1 Quick introduction to mongodb Data modeling in mongodb, queries, geospatial, updates and map reduce. Using a location-based app as an example Example

More information

MongoDB - a No SQL Database What you need to know as an Oracle DBA

MongoDB - a No SQL Database What you need to know as an Oracle DBA MongoDB - a No SQL Database What you need to know as an Oracle DBA David Burnham Aims of this Presentation To introduce NoSQL database technology specifically using MongoDB as an example To enable the

More information

Big Data Architect.

Big Data Architect. Big Data Architect www.austech.edu.au WHAT IS BIG DATA ARCHITECT? A big data architecture is designed to handle the ingestion, processing, and analysis of data that is too large or complex for traditional

More information

ElasticSearch in Production

ElasticSearch in Production ElasticSearch in Production lessons learned Anne Veling, ApacheCon EU, November 6, 2012 agenda! Introduction! ElasticSearch! Udini! Upcoming Tool! Lessons Learned introduction! Anne Veling, @anneveling!

More information

Event-sourced architectures with Luminis Technologies

Event-sourced architectures with Luminis Technologies Event-sourced architectures with Akka @Sander_Mak Luminis Technologies Today's journey Event-sourcing Actors Akka Persistence Design for ES Event-sourcing Is all about getting the facts straight Typical

More information

Scaling MongoDB. Percona Webinar - Wed October 18th 11:00 AM PDT Adamo Tonete MongoDB Senior Service Technical Service Engineer.

Scaling MongoDB. Percona Webinar - Wed October 18th 11:00 AM PDT Adamo Tonete MongoDB Senior Service Technical Service Engineer. caling MongoDB Percona Webinar - Wed October 18th 11:00 AM PDT Adamo Tonete MongoDB enior ervice Technical ervice Engineer 1 Me and the expected audience @adamotonete Intermediate - At least 6+ months

More information

Big Data Exercises. Fall 2018 Week 11 ETH Zurich

Big Data Exercises. Fall 2018 Week 11 ETH Zurich Big Data Exercises Fall 2018 Week 11 ETH Zurich Introduction This exercise will cover document stores. As a representative of document stores, MongoDB was chosen for the practical exercises. Instructions

More information

Big Data Exercises. Fall 2017 Week 11 ETH Zurich

Big Data Exercises. Fall 2017 Week 11 ETH Zurich Big Data Exercises Fall 2017 Week 11 ETH Zurich Introduction This exercise will cover document stores. As a representative of document stores, MongoDB was chosen for the practical exercises. You can install

More information

Accelerate MySQL for Demanding OLAP and OLTP Use Cases with Apache Ignite. Peter Zaitsev, Denis Magda Santa Clara, California April 25th, 2017

Accelerate MySQL for Demanding OLAP and OLTP Use Cases with Apache Ignite. Peter Zaitsev, Denis Magda Santa Clara, California April 25th, 2017 Accelerate MySQL for Demanding OLAP and OLTP Use Cases with Apache Ignite Peter Zaitsev, Denis Magda Santa Clara, California April 25th, 2017 About the Presentation Problems Existing Solutions Denis Magda

More information

MongoDB. David Murphy MongoDB Practice Manager, Percona

MongoDB. David Murphy MongoDB Practice Manager, Percona MongoDB Click Replication to edit Master and Sharding title style David Murphy MongoDB Practice Manager, Percona Who is this Person and What Does He Know? Former MongoDB Master Former Lead DBA for ObjectRocket,

More information

run your own search engine. today: Cablecar

run your own search engine. today: Cablecar run your own search engine. today: Cablecar Robert Kowalski @robinson_k http://github.com/robertkowalski Search nobody uses that, right? Services on the Market Google Bing Yahoo ask Wolfram Alpha Baidu

More information

MongoDB. An introduction and performance analysis. by Rico Suter

MongoDB. An introduction and performance analysis. by Rico Suter MongoDB An introduction and performance analysis by Rico Suter Contents What is MongoDB Features Queries Performance Conclusion What is MongoDB Databases Collections Documents JSON structured MongoDB Database

More information

Event-sourced architectures with Luminis Technologies

Event-sourced architectures with Luminis Technologies Event-sourced architectures with Akka @Sander_Mak Luminis Technologies Today's journey Event-sourcing Actors Akka Persistence Design for ES Event-sourcing Is all about getting the facts straight Typical

More information

A DarkBasic DataBase By:

A DarkBasic DataBase By: A DarkBasic DataBase By: Phaelax(Phaelax@hotmail.com) So you want to create a database program in DarkBasic. It s easier than you may think. Nothing more to say in this introduction, so let s get started.

More information

IBM Db2 Event Store Simplifying and Accelerating Storage and Analysis of Fast Data. IBM Db2 Event Store

IBM Db2 Event Store Simplifying and Accelerating Storage and Analysis of Fast Data. IBM Db2 Event Store IBM Db2 Event Store Simplifying and Accelerating Storage and Analysis of Fast Data IBM Db2 Event Store Disclaimer The information contained in this presentation is provided for informational purposes only.

More information

How to upgrade MongoDB without downtime

How to upgrade MongoDB without downtime How to upgrade MongoDB without downtime me - @adamotonete Adamo Tonete, Senior Technical Engineer Brazil Agenda Versioning Upgrades Operations that always require downtime Upgrading a replica-set Upgrading

More information

MongoDB. copyright 2011 Trainologic LTD

MongoDB. copyright 2011 Trainologic LTD MongoDB MongoDB MongoDB is a document-based open-source DB. Developed and supported by 10gen. MongoDB is written in C++. The name originated from the word: humongous. Is used in production at: Disney,

More information

10/18/2017. Announcements. NoSQL Motivation. NoSQL. Serverless Architecture. What is the Problem? Database Systems CSE 414

10/18/2017. Announcements. NoSQL Motivation. NoSQL. Serverless Architecture. What is the Problem? Database Systems CSE 414 Announcements Database Systems CSE 414 Lecture 11: NoSQL & JSON (mostly not in textbook only Ch 11.1) HW5 will be posted on Friday and due on Nov. 14, 11pm [No Web Quiz 5] Today s lecture: NoSQL & JSON

More information

Saturday, 5 September Good Morning.

Saturday, 5 September Good Morning. Good Morning. Good Morning! ank you for inviting me. Saturday, 5 September 2009 Who? Jan Lehnardt Hacker Entrepreneur capitalizing words say we mean it I come from The Web Open Source makes me happy again!

More information

There And Back Again

There And Back Again There And Back Again Databases At Uber Evan Klitzke October 4, 2016 Outline Background MySQL To Postgres Connection Scalability Write Amplification/Replication Miscellaneous Other Things Databases at Uber

More information

Elasticsearch: Past, Present, & Future. Adrien Grand Software Engineer - Elasticsearch

Elasticsearch: Past, Present, & Future. Adrien Grand Software Engineer - Elasticsearch Elasticsearch: Past, Present, & Future Adrien Grand Software Engineer - Elasticsearch Elasticsearch 5.0 26 October 2016 Elasticsearch 5.0 Better at Numbers 3 Safe Simple Things Should Be Simple Elasticsearch

More information

ourwiki Documentation

ourwiki Documentation ourwiki Documentation Release 0.0.1 devops and team January 06, 2014 Contents 1 About 3 2 All 5 3 Welcome to Read The Docs 7 4 The MongoDB 0.0.1 Manual 9 4.1 Community................................................

More information

MongoDB w/ Some Node.JS Sprinkles

MongoDB w/ Some Node.JS Sprinkles MongoDB w/ Some Node.JS Sprinkles Niall O'Higgins Author MongoDB and Python O'Reilly @niallohiggins on Twitter niallo@beyondfog.com MongoDB Overview Non-relational (NoSQL) document-oriented database Rich

More information

HBase vs Neo4j. Technical overview. Name: Vladan Jovičić CR09 Advanced Scalable Data (Fall, 2017) Ecolé Normale Superiuere de Lyon

HBase vs Neo4j. Technical overview. Name: Vladan Jovičić CR09 Advanced Scalable Data (Fall, 2017) Ecolé Normale Superiuere de Lyon HBase vs Neo4j Technical overview Name: Vladan Jovičić CR09 Advanced Scalable Data (Fall, 2017) Ecolé Normale Superiuere de Lyon 12th October 2017 1 Contents 1 Introduction 3 2 Overview of HBase and Neo4j

More information

Scaling. Marty Weiner Grayskull, Eternia. Yashh Nelapati Gotham City

Scaling. Marty Weiner Grayskull, Eternia. Yashh Nelapati Gotham City Scaling Marty Weiner Grayskull, Eternia Yashh Nelapati Gotham City Pinterest is... An online pinboard to organize and share what inspires you. Relationships Marty Weiner Grayskull, Eternia Yashh Nelapati

More information

Realtime visitor analysis with Couchbase and Elasticsearch

Realtime visitor analysis with Couchbase and Elasticsearch Realtime visitor analysis with Couchbase and Elasticsearch Jeroen Reijn @jreijn #nosql13 About me Jeroen Reijn Software engineer Hippo @jreijn http://blog.jeroenreijn.com About Hippo Visitor Analysis OneHippo

More information

Scaling. Yashh Nelapati Gotham City. Marty Weiner Krypton. Friday, July 27, 12

Scaling. Yashh Nelapati Gotham City. Marty Weiner Krypton. Friday, July 27, 12 Scaling Marty Weiner Krypton Yashh Nelapati Gotham City Pinterest is... An online pinboard to organize and share what inspires you. Relationships Marty Weiner Grayskull, Eternia Relationships Marty

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

App Engine: Datastore Introduction

App Engine: Datastore Introduction App Engine: Datastore Introduction Part 1 Another very useful course: https://www.udacity.com/course/developing-scalableapps-in-java--ud859 1 Topics cover in this lesson What is Datastore? Datastore and

More information

Intro to MongoDB. Alex Sharp.

Intro to MongoDB. Alex Sharp. Intro to MongoDB Alex Sharp twitter: @ajsharp email: ajsharp@frothlogic.com So what is MongoDB? First and foremost... IT S THE NEW HOTNESS!!! omgomgomg SHINY OBJECTS omgomgomg MongoDB (from "humongous")

More information

Basic Keywords Practice Session

Basic Keywords Practice Session Basic Keywords Practice Session Introduction In this article from my free Java 8 course, we will apply what we learned in my Java 8 Course Introduction to our first real Java program. If you haven t yet,

More information

MongoDB Tutorial for Beginners

MongoDB Tutorial for Beginners MongoDB Tutorial for Beginners Mongodb is a document-oriented NoSQL database used for high volume data storage. In this tutorial you will learn how Mongodb can be accessed and some of its important features

More information

Tips from the experts: How to waste a lot of time on this assignment

Tips from the experts: How to waste a lot of time on this assignment Com S 227 Spring 2018 Assignment 1 80 points Due Date: Friday, February 2, 11:59 pm (midnight) Late deadline (25% penalty): Monday, February 5, 11:59 pm General information This assignment is to be done

More information

1 Big Data Hadoop. 1. Introduction About this Course About Big Data Course Logistics Introductions

1 Big Data Hadoop. 1. Introduction About this Course About Big Data Course Logistics Introductions Big Data Hadoop Architect Online Training (Big Data Hadoop + Apache Spark & Scala+ MongoDB Developer And Administrator + Apache Cassandra + Impala Training + Apache Kafka + Apache Storm) 1 Big Data Hadoop

More information

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

Document Databases: MongoDB

Document Databases: MongoDB NDBI040: Big Data Management and NoSQL Databases hp://www.ksi.mff.cuni.cz/~svoboda/courses/171-ndbi040/ Lecture 9 Document Databases: MongoDB Marn Svoboda svoboda@ksi.mff.cuni.cz 28. 11. 2017 Charles University

More information

Transactions in a Distributed Key-Value Store

Transactions in a Distributed Key-Value Store Transactions in a Distributed Key-Value Store 6.824 Final Project James Thomas, Deepak Narayanan, Arjun Srinivasan May 11, 2014 Introduction Over the last several years, NoSQL databases such as Redis,

More information

Manually Run The Synchronization Replication Sql Server 2005 Delete

Manually Run The Synchronization Replication Sql Server 2005 Delete Manually Run The Synchronization Replication Sql Server 2005 Delete I've set up a SQL transaction replication between two servers. And now I If an article is dropped after one or more subscriptions is

More information

MongoDB Distributed Write and Read

MongoDB Distributed Write and Read VICTORIA UNIVERSITY OF WELLINGTON Te Whare Wananga o te Upoko o te Ika a Maui MongoDB Distributed Write and Read Lecturer : Dr. Pavle Mogin SWEN 432 Advanced Database Design and Implementation Advanced

More information

Spanner: Google s Globally-Distributed Database. Wilson Hsieh representing a host of authors OSDI 2012

Spanner: Google s Globally-Distributed Database. Wilson Hsieh representing a host of authors OSDI 2012 Spanner: Google s Globally-Distributed Database Wilson Hsieh representing a host of authors OSDI 2012 What is Spanner? Distributed multiversion database General-purpose transactions (ACID) SQL query language

More information

DO EVEN MORE WITH TABLEAU. At BlueGranite, our unique approach and extensive expertise helps you get the most from your Tableau products.

DO EVEN MORE WITH TABLEAU. At BlueGranite, our unique approach and extensive expertise helps you get the most from your Tableau products. DO EVEN MORE WITH TABLEAU At BlueGranite, our unique approach and extensive expertise helps you get the most from your Tableau products. WHAT WE DO WE PLAN, DESIGN AND BUILD SOLUTIONS WITH TABLEAU TECHNOLOGY.

More information

Run your own Open source. (MMS) to avoid vendor lock-in. David Murphy MongoDB Practice Manager, Percona

Run your own Open source. (MMS) to avoid vendor lock-in. David Murphy MongoDB Practice Manager, Percona Run your own Open source Click alternative to edit to Master Ops-Manager title style (MMS) to avoid vendor lock-in David Murphy MongoDB Practice Manager, Percona Who is this Person and What Does He Know?

More information

5/2/16. Announcements. NoSQL Motivation. The New Hipster: NoSQL. Serverless. What is the Problem? Database Systems CSE 414

5/2/16. Announcements. NoSQL Motivation. The New Hipster: NoSQL. Serverless. What is the Problem? Database Systems CSE 414 Announcements Database Systems CSE 414 Lecture 16: NoSQL and JSon Current assignments: Homework 4 due tonight Web Quiz 6 due next Wednesday [There is no Web Quiz 5 Today s lecture: JSon The book covers

More information

Topics. History. Architecture. MongoDB, Mongoose - RDBMS - SQL. - NoSQL

Topics. History. Architecture. MongoDB, Mongoose - RDBMS - SQL. - NoSQL Databases Topics History - RDBMS - SQL Architecture - SQL - NoSQL MongoDB, Mongoose Persistent Data Storage What features do we want in a persistent data storage system? We have been using text files to

More information

Database Systems CSE 414

Database Systems CSE 414 Database Systems CSE 414 Lecture 16: NoSQL and JSon CSE 414 - Spring 2016 1 Announcements Current assignments: Homework 4 due tonight Web Quiz 6 due next Wednesday [There is no Web Quiz 5] Today s lecture:

More information

Tips from the experts: How to waste a lot of time on this assignment

Tips from the experts: How to waste a lot of time on this assignment Com S 227 Spring 2018 Assignment 1 100 points Due Date: Friday, September 14, 11:59 pm (midnight) Late deadline (25% penalty): Monday, September 17, 11:59 pm General information This assignment is to be

More information

Accelerate MySQL for Demanding OLAP and OLTP Use Case with Apache Ignite December 7, 2016

Accelerate MySQL for Demanding OLAP and OLTP Use Case with Apache Ignite December 7, 2016 Accelerate MySQL for Demanding OLAP and OLTP Use Case with Apache Ignite December 7, 2016 Nikita Ivanov CTO and Co-Founder GridGain Systems Peter Zaitsev CEO and Co-Founder Percona About the Presentation

More information

The Seman)c Web Landscape

The Seman)c Web Landscape The Seman)c Web Landscape Dean Allemang Working Ontologist, LLC Copyright 2012 Working Ontologist LLC Seman)c Web what it is and isn t Lot s of cool technologies that could be seen as Semantic : Copyright

More information

CIS 612 Advanced Topics in Database Big Data Project Lawrence Ni, Priya Patil, James Tench

CIS 612 Advanced Topics in Database Big Data Project Lawrence Ni, Priya Patil, James Tench CIS 612 Advanced Topics in Database Big Data Project Lawrence Ni, Priya Patil, James Tench Abstract Implementing a Hadoop-based system for processing big data and doing analytics is a topic which has been

More information

Database Solution in Cloud Computing

Database Solution in Cloud Computing Database Solution in Cloud Computing CERC liji@cnic.cn Outline Cloud Computing Database Solution Our Experiences in Database Cloud Computing SaaS Software as a Service PaaS Platform as a Service IaaS Infrastructure

More information

Revising CS-M41. Oliver Kullmann Computer Science Department Swansea University. Robert Recorde room Swansea, December 13, 2013.

Revising CS-M41. Oliver Kullmann Computer Science Department Swansea University. Robert Recorde room Swansea, December 13, 2013. Computer Science Department Swansea University Robert Recorde room Swansea, December 13, 2013 How to use the revision lecture The purpose of this lecture (and the slides) is to emphasise the main topics

More information

How do we build TiDB. a Distributed, Consistent, Scalable, SQL Database

How do we build TiDB. a Distributed, Consistent, Scalable, SQL Database How do we build TiDB a Distributed, Consistent, Scalable, SQL Database About me LiuQi ( 刘奇 ) JD / WandouLabs / PingCAP Co-founder / CEO of PingCAP Open-source hacker / Infrastructure software engineer

More information

SOLUTION TRACK Finding the Needle in a Big Data Innovator & Problem Solver Cloudera

SOLUTION TRACK Finding the Needle in a Big Data Innovator & Problem Solver Cloudera SOLUTION TRACK Finding the Needle in a Big Data Haystack @EvaAndreasson, Innovator & Problem Solver Cloudera Agenda Problem (Solving) Apache Solr + Apache Hadoop et al Real-world examples Q&A Problem Solving

More information

Relational databases

Relational databases COSC 6397 Big Data Analytics NoSQL databases Edgar Gabriel Spring 2017 Relational databases Long lasting industry standard to store data persistently Key points concurrency control, transactions, standard

More information

Chapter 24 NOSQL Databases and Big Data Storage Systems

Chapter 24 NOSQL Databases and Big Data Storage Systems Chapter 24 NOSQL Databases and Big Data Storage Systems - Large amounts of data such as social media, Web links, user profiles, marketing and sales, posts and tweets, road maps, spatial data, email - NOSQL

More information

Kotlin for Android Developers

Kotlin for Android Developers Kotlin for Android Developers Learn Kotlin the easy way while developing an Android App Antonio Leiva This book is for sale at http://leanpub.com/kotlin-for-android-developers This version was published

More information

Transactions and ACID

Transactions and ACID Transactions and ACID Kevin Swingler Contents Recap of ACID transactions in RDBMSs Transactions and ACID in MongoDB 1 Concurrency Databases are almost always accessed by multiple users concurrently A user

More information

Simplified and fast Fraud Detection with just SQL. developer.oracle.com/c ode

Simplified and fast Fraud Detection with just SQL. developer.oracle.com/c ode Simplified and fast Fraud Detection with just SQL developer.oracle.com/c ode About me developer.oracle.com/c ode Klaus Thielen Consulting Member of Technical Staff RAC Development Agenda 1 2 3 4 5 Finding

More information

SQL SERVER INTERVIEW QUESTIONS AND ANSWERS FOR ALL DATABASE DEVELOPERS AND DEVELOPERS ADMINISTRATORS

SQL SERVER INTERVIEW QUESTIONS AND ANSWERS FOR ALL DATABASE DEVELOPERS AND DEVELOPERS ADMINISTRATORS SQL SERVER INTERVIEW QUESTIONS AND ANSWERS FOR ALL DATABASE DEVELOPERS AND DEVELOPERS ADMINISTRATORS page 1 / 5 page 2 / 5 sql server interview questions pdf SQL Server - 204 SQL Server interview questions

More information

5/1/17. Announcements. NoSQL Motivation. NoSQL. Serverless Architecture. What is the Problem? Database Systems CSE 414

5/1/17. Announcements. NoSQL Motivation. NoSQL. Serverless Architecture. What is the Problem? Database Systems CSE 414 Announcements Database Systems CSE 414 Lecture 15: NoSQL & JSON (mostly not in textbook only Ch 11.1) 1 Homework 4 due tomorrow night [No Web Quiz 5] Midterm grading hopefully finished tonight post online

More information

Big Data and Scripting mongodb map reduce

Big Data and Scripting mongodb map reduce Big Data and Scripting mongodb map reduce 1, 2, last lecture replication distribution full distributed storage network today use storage network for distributed computations introduce map/reduce framework

More information

Tutorial 5 Advanced Queries and Enhancing Table Design

Tutorial 5 Advanced Queries and Enhancing Table Design Tutorial 5 Advanced Queries and Enhancing Table Design (Sessions 1 and 3 only) The Clinic Database Clinic.accdb file for Tutorials 5-8 object names include tags no spaces in field names to promote upsizing

More information

Big Data Exercises. Fall 2016 Week 11 ETH Zurich

Big Data Exercises. Fall 2016 Week 11 ETH Zurich Big Data Exercises Fall 2016 Week 11 ETH Zurich Introduction This exercise will cover document stores. As a representative of document stores, MongoDB was chosen for the practical exercises. You can install

More information

MIS2502: Data Analytics Relational Data Modeling. Jing Gong

MIS2502: Data Analytics Relational Data Modeling. Jing Gong MIS2502: Data Analytics Relational Data Modeling Jing Gong gong@temple.edu http://community.mis.temple.edu/gong Where we are Now we re here Data entry Transactional Database Data extraction Analytical

More information

Final Exam Review 2. Kathleen Durant CS 3200 Northeastern University Lecture 23

Final Exam Review 2. Kathleen Durant CS 3200 Northeastern University Lecture 23 Final Exam Review 2 Kathleen Durant CS 3200 Northeastern University Lecture 23 QUERY EVALUATION PLAN Representation of a SQL Command SELECT {DISTINCT} FROM {WHERE

More information

Jargons, Concepts, Scope and Systems. Key Value Stores, Document Stores, Extensible Record Stores. Overview of different scalable relational systems

Jargons, Concepts, Scope and Systems. Key Value Stores, Document Stores, Extensible Record Stores. Overview of different scalable relational systems Jargons, Concepts, Scope and Systems Key Value Stores, Document Stores, Extensible Record Stores Overview of different scalable relational systems Examples of different Data stores Predictions, Comparisons

More information

Index everything One query type Low latency High concurrency. Index nothing Queries as programs High latency Low concurrency

Index everything One query type Low latency High concurrency. Index nothing Queries as programs High latency Low concurrency SCHEMA ON READ Index everything One query type Low latency High concurrency Index nothing Queries as programs High latency Low concurrency Index everything One query type Low latency High concurrency Index

More information

Installing Data8 PredictiveAddress for Microsoft Dynamics 365/CRM

Installing Data8 PredictiveAddress for Microsoft Dynamics 365/CRM Installing Data8 PredictiveAddress for Microsoft Dynamics 365/CRM Contents Obtaining an Ajax API Key... 2 Installing the solution... 3 Configuring the postcode lookup system... 6 Adding postcode lookup

More information

Oral Questions and Answers (DBMS LAB) Questions & Answers- DBMS

Oral Questions and Answers (DBMS LAB) Questions & Answers- DBMS Questions & Answers- DBMS https://career.guru99.com/top-50-database-interview-questions/ 1) Define Database. A prearranged collection of figures known as data is called database. 2) What is DBMS? Database

More information

FACULTY AND STAFF COMPUTER FOOTHILL-DE ANZA. FileMaker Pro. Relational Databases

FACULTY AND STAFF COMPUTER FOOTHILL-DE ANZA. FileMaker Pro. Relational Databases FACULTY AND STAFF COMPUTER TRAINING @ FOOTHILL-DE ANZA FileMaker Pro Relational Databases 1 Relational Databases Explanation Most smaller data documents are called flat files. That means that all the information

More information

Eclipse Scout. Release Notes. Scout Team. Version 7.0

Eclipse Scout. Release Notes. Scout Team. Version 7.0 Eclipse Scout Release Notes Scout Team Version 7.0 Table of Contents About This Release.......................................................................... 1 Service Releases..........................................................................

More information

RavenDB & document stores

RavenDB & document stores université libre de bruxelles INFO-H415 - Advanced Databases RavenDB & document stores Authors: Yasin Arslan Jacky Trinh Professor: Esteban Zimányi Contents 1 Introduction 3 1.1 Présentation...................................

More information

Isomorphic Kotlin. Troy

Isomorphic Kotlin. Troy Isomorphic Kotlin Troy Miles @therockncoder Troy Miles @therockncoder Troy Miles, aka the Rockncoder, began writing computer games in assembly language for early computers like the Apple II, Commodore

More information

Accessing other data fdw, dblink, pglogical, plproxy,...

Accessing other data fdw, dblink, pglogical, plproxy,... Accessing other data fdw, dblink, pglogical, plproxy,... Hannu Krosing, Quito 2017.12.01 1 Arctic Circle 2 Who am I Coming from Estonia PostgreSQL user since about 1990 (when it was just Postgres 4.2)

More information

MongoDB at Visibiz. Why and how we re using MongoDB in our application. Mike Brocious Tech Lead Visibiz, Inc.

MongoDB at Visibiz. Why and how we re using MongoDB in our application. Mike Brocious Tech Lead Visibiz, Inc. MongoDB at Visibiz Why and how we re using MongoDB in our application Mike Brocious Tech Lead Visibiz, Inc. Why We re Here Discuss why we chose MongoDB at Visibiz Show how we re using it Made mistakes

More information

MongoDB schema design

MongoDB schema design Welcome! MongoDB schema design PHP NorthWest - Manchester, UK - Apr 3rd, 2012 Derick Rethans - derick@10gen.com - twitter: @derickr e-mail me About Me Derick Rethans Dutchman living in London PHP mongodb

More information

An Introduction to Apache Spark Big Data Madison: 29 July William Red Hat, Inc.

An Introduction to Apache Spark Big Data Madison: 29 July William Red Hat, Inc. An Introduction to Apache Spark Big Data Madison: 29 July 2014 William Benton @willb Red Hat, Inc. About me At Red Hat for almost 6 years, working on distributed computing Currently contributing to Spark,

More information

Java Mongo Connectivity

Java Mongo Connectivity Java Mongo Connectivity By Prof. B.A.Khivsara Note: The material to prepare this presentation has been taken from internet and are generated only for students reference and not for commercial use. Write

More information

Beyond Relational Databases: MongoDB, Redis & ClickHouse. Marcos Albe - Principal Support Percona

Beyond Relational Databases: MongoDB, Redis & ClickHouse. Marcos Albe - Principal Support Percona Beyond Relational Databases: MongoDB, Redis & ClickHouse Marcos Albe - Principal Support Engineer @ Percona Introduction MySQL everyone? Introduction Redis? OLAP -vs- OLTP Image credits: 451 Research (https://451research.com/state-of-the-database-landscape)

More information

11 HashMap: Overriding equals ; JUnit; Vistors

11 HashMap: Overriding equals ; JUnit; Vistors 11 HashMap: Overriding equals ; JUnit; Vistors Goals In this lab we will first learn how to define the equals method, as well as how to use the HashMap data structure defined in the Java Collections Frameworks.

More information

NN. The last part! 1/9. How to build a bean for Servoy A step by step tutorial brought to you by Servoy Stuff PART 8

NN. The last part! 1/9. How to build a bean for Servoy A step by step tutorial brought to you by Servoy Stuff PART 8 How to build a bean for Servoy A step by step tutorial brought to you by Servoy Stuff PART 8 NN. The last part! In the previous parts of this tutorial we build a Servoy Aware bean based on a Swing JSlider

More information

How To. Create a Free Autoresponder Using

How To. Create a Free Autoresponder Using How To Create a Free Autoresponder Using by michael@myaimbot.com Legal Notice: This ebook is copyright protected. This is only for personal use. You cannot amend, distribute, sell, use, quote or paraphrase

More information

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Winter 2009 Lecture 12 Google Bigtable

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Winter 2009 Lecture 12 Google Bigtable CSE 544 Principles of Database Management Systems Magdalena Balazinska Winter 2009 Lecture 12 Google Bigtable References Bigtable: A Distributed Storage System for Structured Data. Fay Chang et. al. OSDI

More information

Announcements. 1. Forms to return today after class:

Announcements. 1. Forms to return today after class: Announcements Handouts (3) to pick up 1. Forms to return today after class: Pretest (take during class later) Laptop information form (fill out during class later) Academic honesty form (must sign) 2.

More information

How we build TiDB. Max Liu PingCAP Amsterdam, Netherlands October 5, 2016

How we build TiDB. Max Liu PingCAP Amsterdam, Netherlands October 5, 2016 How we build TiDB Max Liu PingCAP Amsterdam, Netherlands October 5, 2016 About me Infrastructure engineer / CEO of PingCAP Working on open source projects: TiDB: https://github.com/pingcap/tidb TiKV: https://github.com/pingcap/tikv

More information

Revising CS-M41. Oliver Kullmann Computer Science Department Swansea University. Linux Lab Swansea, December 13, 2011.

Revising CS-M41. Oliver Kullmann Computer Science Department Swansea University. Linux Lab Swansea, December 13, 2011. Computer Science Department Swansea University Linux Lab Swansea, December 13, 2011 How to use the revision lecture The purpose of this lecture (and the slides) is to emphasise the main topics of this

More information

Employee Portal. Click on Vendor Search.

Employee Portal. Click on Vendor Search. Employee Portal Click on Vendor Search. Vendor Search Page Disclaimer Please note that you may get unexpected results by using the address options. This tool includes a powerful query that searches the

More information

NetBeans Platform. Geertjan Wielenga Sun Microsystems Source Talk Tage, 27 September, 2006

NetBeans Platform. Geertjan Wielenga  Sun Microsystems Source Talk Tage, 27 September, 2006 NetBeans Platform What is it? How do I use it? And why should I want to? Geertjan Wielenga http://blogs.sun.com/geertjan Sun Microsystems Source Talk Tage, 27 September, 2006 Agenda Introduction 1. Why?

More information

MIS2502: Data Analytics Relational Data Modeling - 1. JaeHwuen Jung

MIS2502: Data Analytics Relational Data Modeling - 1. JaeHwuen Jung MIS2502: Data Analytics Relational Data Modeling - 1 JaeHwuen Jung jaejung@temple.edu http://community.mis.temple.edu/jaejung Where we are Now we re here Data entry Transactional Database Data extraction

More information

MIS2502: Data Analytics Relational Data Modeling. Jing Gong

MIS2502: Data Analytics Relational Data Modeling. Jing Gong MIS2502: Data Analytics Relational Data Modeling Jing Gong gong@temple.edu http://community.mis.temple.edu/gong Where we are Now we re here Data entry Transactional Database Data extraction Analytical

More information