Rethink-ing your data store All about RethinkDB by: Brian Maula - - PowerPoint PPT Presentation

rethink ing your data store
SMART_READER_LITE
LIVE PREVIEW

Rethink-ing your data store All about RethinkDB by: Brian Maula - - PowerPoint PPT Presentation

Rethink-ing your data store All about RethinkDB by: Brian Maula Outline A developers tale Why did I choose RethinkDB? Why is it awesome? Caveats Demos Purpose This is a high-level introduction More of a


slide-1
SLIDE 1

Rethink-ing your data store

All about RethinkDB
 
 by: Brian Maula

slide-2
SLIDE 2

Outline

  • A developer’s tale
  • Why did I choose RethinkDB?
  • Why is it awesome?
  • Caveats
  • Demos
slide-3
SLIDE 3

Purpose

  • This is a high-level introduction
  • More of a story, really
  • Whet your appetite for RethinkDB
slide-4
SLIDE 4

Who is this guy?

  • C# Developer, ASP.NET, MVC, Entity Framework, SQL Server
  • Loves playing around with new technology
  • Pretends he’s Carter Beauford on drums
  • Enjoys cooking
  • ILM Consultant
slide-5
SLIDE 5

Info

  • brian.maula@ilmservice.com
  • @maulowski (not necessarily tech stuff)
  • linkedin.com/in/bmaula (I don’t check this often…like never)
slide-6
SLIDE 6

I AM NOT AN EXPERT

slide-7
SLIDE 7

A Developers Tale

slide-8
SLIDE 8

I want to build an app

  • I wanted to build an app using the Microsoft “Trinity” stack: MVC,

SQL Server, Entity Framework.

  • Open Visual Studio 2013, new solution
  • Application done!
slide-9
SLIDE 9

Application done!

No, not really. You just hit some roadblocks.

slide-10
SLIDE 10

Roadblock: Real-time

slide-11
SLIDE 11

Solutions?

  • Use a message queue system
  • Long polling that calls an API
  • Using SSIS and triggers
slide-12
SLIDE 12

Roadblock: data modeling

slide-13
SLIDE 13

Why data modeling sucks

  • Relational databases have schema enforcement
  • You think of your data in terms of tables
  • Difficult to deviate from the relational model
slide-14
SLIDE 14

Roadblock: Entity Framework/ Migrations

slide-15
SLIDE 15

Why does EF migration suck?

  • Simple tables yields less headaches when writing out your Fluent

queries

  • Not good when your data store deviates from relational model
  • Entity Framework Performance still sucks (last I checked)
  • Changes to data model is costly
  • The tool adds more steps to your workflow
slide-16
SLIDE 16

Conclusions

  • Data modeling sucks for SQL
  • Entity Framework can get in the way
  • Iterating data models with migrations is time consuming
  • Real-time using SQL Server is a pipe dream
  • SQL Server is difficult to scale
slide-17
SLIDE 17
slide-18
SLIDE 18

source: http://www.rethinkdb.com

slide-19
SLIDE 19

Why RethinkDB?

  • Is real-time, it pushes your data
  • SQL Server, Entity Framework, and Migrations
  • I didn’t want a schema enforced data store
  • I wanted to rapidly prototype
  • Easy to manage and scale
  • Have the best of both worlds
slide-20
SLIDE 20

Why RethinkDB?

  • geospatial querying
  • Support for JOINs
  • Chainable query language
  • Real-time API is one method call
  • Scaling the cluster can be done pretty intuitively
slide-21
SLIDE 21

Why RethinkDB?

  • Robust architecture
  • Support for secondary, compound, and arbitrary indexes
  • Automatic failover
  • Integration with RabbitMQ
  • Integration with ElasticSearch
slide-22
SLIDE 22
slide-23
SLIDE 23

Caveats

Because reality sucks

slide-24
SLIDE 24

Caveats

  • Not ACID compliant
  • You need strong schema enforcement
  • Running deep, computationally-intensive analytics
  • Running a high write system (e.g. twitter)
  • Performance considerations
  • You need Windows (currently only supports OS X and Linux)
slide-25
SLIDE 25

Caveats

  • Be aware of how you model your data
  • Atomic operations are limited to single operations only
  • Queries aren’t considered atomic operations
  • Limited C# support
  • Official drivers only support JavaScript, Ruby, and Python
slide-26
SLIDE 26

Demos

With somewhat contrived, trivial examples

slide-27
SLIDE 27

Conclusions

  • If you need real-time
  • If you’re wanting to break up with SQL
  • It has caveats, it’s not perfect