Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Introducing liveDB<br />Build faster systems faster<br />Robert Friberg, robert@devrex.se<br />Twitter: @robertfriberg, @l...
Disk<br />.NET Process Memory<br />Command<br />serialization<br />Engine<br />Clients<br />Client<br />Transaction Log<br...
The prevalent hypothesis<br />Your data will fit in available RAM<br />99% of all OLTP database are 1TB or less--Stonebrak...
Eric Schmidt, Google CEO<br />At Google we found it costs less money and it is more efficient to use DRAM as storage as op...
What is liveDB?<br />A native .NET in-memory database engine<br />Full ACID support<br />Embedded engine free to use for a...
The NoSQL revolution<br />RDBMS paradigm is shaking<br />Alternative data representation, document, graph, key/value, etc<...
Relational Database Prison<br />Relational model formulated 1969<br />Designed to address limitations non-existent today –...
O/R mapping vs Command/Query pattern<br />O/R mapping is based on CRUD pattern<br />CRUD is a specialization of Request/re...
Business arguments<br />Reduced time to market<br />Lower TCO for software systems<br />Reduced development time up to 40%...
Developer benefits<br />Model is pure .NET types and collections<br />representational freedom<br />DAL and downwards is e...
Simple API<br />
Start your engines!<br />var db = Engine.Load<MyModel>(path);<br />db.Execute(command);<br />var c = db.Execute(m => m.Cus...
Demo!<br />http://roxsux.devrex.se/<br />Coding a simple model<br />Commands and queries<br />Hosting the engine<br />See ...
Drawbacks<br />Model must fit in RAM<br />Load time (start up and rollback)<br />Versioning issues<br />.NET Only (Json po...
Gotchas<br />No external dependencies from commands<br />Don’t modify the model with query<br />Rollback is expensive<br /...
References<br />Prevalent System Architecture<br />prevayler.org, java project from 2003, alive and kicking<br />Bamboo.Pr...
Thank you!<br />Robert Friberg, Devrex<br />Twitter: @robertfriberg, @livedomain, #livedb<br />http://livedb.devrex.se/<br />
Upcoming SlideShare
Loading in …5
×

Introducing #liveDB

1,938 views

Published on

#liveDB is a native dotnet in-memory database engine

Published in: Technology

Introducing #liveDB

  1. 1. Introducing liveDB<br />Build faster systems faster<br />Robert Friberg, robert@devrex.se<br />Twitter: @robertfriberg, @livedomain, #livedb<br />http://livedb.devrex.se/<br />
  2. 2. Disk<br />.NET Process Memory<br />Command<br />serialization<br />Engine<br />Clients<br />Client<br />Transaction Log<br />Client<br />Pass queries and<br />commands<br />Snapshot.0<br />Synchronized execution<br />Snapshot.1<br />In-memory<br />Object<br />Model<br />Prevalent System Architecture<br />Snapshot.N<br />
  3. 3. The prevalent hypothesis<br />Your data will fit in available RAM<br />99% of all OLTP database are 1TB or less--Stonebraker, VoltDB<br />
  4. 4. Eric Schmidt, Google CEO<br />At Google we found it costs less money and it is more efficient to use DRAM as storage as opposed to hard disks.<br />Three minutes with Google's Eric Schmidt , CNN.COM<br />
  5. 5. What is liveDB?<br />A native .NET in-memory database engine<br />Full ACID support<br />Embedded engine free to use for any purpose<br />Supports any data representation<br />
  6. 6. The NoSQL revolution<br />RDBMS paradigm is shaking<br />Alternative data representation, document, graph, key/value, etc<br />Support large scale databases<br />LiveDB focuses on<br />Memory vs. Disk<br />Freedom of representation<br />Facebook is not the common case<br />
  7. 7. Relational Database Prison<br />Relational model formulated 1969<br />Designed to address limitations non-existent today – disk access<br />A relational model is just one of many possible datarepresentations<br />Primitive stored procedure language<br />O/R Mapping adds to the pain<br />
  8. 8. O/R mapping vs Command/Query pattern<br />O/R mapping is based on CRUD pattern<br />CRUD is a specialization of Request/response<br />Command/Query is more general (superset)<br />You can do CRUD with Command/Query but not the other way around<br />
  9. 9. Business arguments<br />Reduced time to market<br />Lower TCO for software systems<br />Reduced development time up to 40%<br />Operations (no rdbms)<br />Licensing (no rdbms)<br />Faster systems<br />
  10. 10. Developer benefits<br />Model is pure .NET types and collections<br />representational freedom<br />DAL and downwards is eliminated<br />No object/relational mapping<br />No relational modeling<br />No T-SQL programming<br />Debugging<br />Version control<br />Supports DDD, TDD<br />
  11. 11. Simple API<br />
  12. 12. Start your engines!<br />var db = Engine.Load<MyModel>(path);<br />db.Execute(command);<br />var c = db.Execute(m => m.Customers.GetById(42));<br />...<br />var cmd = SetPasswordCommand(c.Id, newPassword);<br />db.Execute(cmd);<br />db.Close();<br />
  13. 13. Demo!<br />http://roxsux.devrex.se/<br />Coding a simple model<br />Commands and queries<br />Hosting the engine<br />See blog for more info: http://livedb.devrex.se/<br />
  14. 14. Drawbacks<br />Model must fit in RAM<br />Load time (start up and rollback)<br />Versioning issues<br />.NET Only (Json possible)<br />No magical indexing (yet)<br />
  15. 15. Gotchas<br />No external dependencies from commands<br />Don’t modify the model with query<br />Rollback is expensive<br />Don’t manipulate model out of context<br />Dont rely on reference equality<br />Results are not direct references<br />
  16. 16. References<br />Prevalent System Architecture<br />prevayler.org, java project from 2003, alive and kicking<br />Bamboo.Prevalence .NET 1.1, dead project?<br />VoltDB<br />
  17. 17. Thank you!<br />Robert Friberg, Devrex<br />Twitter: @robertfriberg, @livedomain, #livedb<br />http://livedb.devrex.se/<br />

×