A high-level walk through of data storage options for modern web applications and an introduction to using MongoDB. This talk was given at DevCon5 2013 in Los Angeles, CA.
the same thing? Velocity: the speed at which you’re dealing with data. Volume: the quantity of data, in sheer size. Variety: diversity of the data you’re dealing with. Fun facts about data growth: ! Photos: • 4 billion in the last year alone, 4x last decade • Half found their way onto the Internet ! Information: • 1.8 zettabytes annually (Source: IDC 2011) • Increase 50x by 2020
to move beyond simple markup. • Most everything was happening in languages like Perl and C. • Relational databases were everywhere. • The future was bright!
with no end in sight. • Data complexity and application complexity is increasing. • Push for real-time and dynamic data limits using your cache layer as a crutch for scalability. ! * Side effects are not limited to, but may include: • Slower development cycles and loss of agility. • Complex architectures. • Over abstraction everywhere.
Query on any field! • Each contains a single value! • Very structured data! • Normalization leads to many tables and poor locality.! ! Examples:! Oracle, PostgreSQL, MySQL, MSSQL
is 0, 1 or many or embedded values! • Query on any field at any level! • Flexible schema! • In-line updates! • Embedded data has great locality, better performance! ! Examples:! MongoDB, CouchDB, RethinkDB
extensive memory-mapped files (ex. read-through and write-through memory caching). • Runs nearly everywhere. • Data is serialized as BSON (for fast parsing) • Full support for primary and secondary indexes. • Document model means less work, more agile.
=> 'brandonblack',! :first => 'brandon',! :last => 'black'! }! ! # inserting into my blog database! client['blog']['users'].insert(author) No database or collection creation required!