<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description></description><title>MongoDB</title><generator>Tumblr (3.0; @mongodb)</generator><link>http://blog.mongodb.org/</link><item><title>State of MongoDB March, 2010</title><description>&lt;p&gt;Every once in a while, I think its important for us (the core MongoDB team) to give a broad picture of where we think MongoDB is and where we’re hoping to take it.  This is useful both as a gut check for us, to give the community some insight into what we’re thinking, and to make sure we’re all on the same page.&lt;/p&gt;
&lt;p&gt;MongoDB has made great strides in the last year.  The first public release was just over a year ago (2/11/2009) and since then we’ve seen tremendous support and interest from the developer community.  We’ve made a lot of great progress on the core database, drivers and tools.  The community has contributed a large and growing number of great drivers and tools, as well as invaluable testing and feedback.  We’ve also seen a really great amount of production MongoDB installations coming online in the last year.&lt;/p&gt;
&lt;p&gt;MongoDB got 2 stable releases (1.0 and 1.2) and there is a third coming (1.4) which has many things we’re very proud of:  better concurrency, geospatial indexing, “usability” enhancements and speed enhancements to name a few.  We’re planning on a stable release every 3 months as a way to balance speed, carefulness, and practicality.&lt;/p&gt;
&lt;p&gt;So, where are we in our grand view of the world: about half done.  MongoDB is in a great place today, but we have a long way to go.  MongoDB was never designed nor intended to be a niche database for a small subset of problems, but a new type of database, that solves lots of real world problems for a large subset of the developer community.  We’re getting there, and we’re suitable for a lot of problems, but there are lots of things we still need to do.  So if you’re looking at MongoDB and saying “its not good enough for this” or “it would be great if only it had X,” its very likely we agree with you.&lt;/p&gt;
&lt;p&gt;Some major things we’re thinking about for the next 6-12 months&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;better replication: real time, replica sets, more options for data durability&lt;/li&gt;
&lt;li&gt;production ready sharding&lt;/li&gt;
&lt;li&gt;more features for working with embedded documents&lt;/li&gt;
&lt;li&gt;flushing out more atomic update operators&lt;/li&gt;
&lt;li&gt;single server durability&lt;/li&gt;
&lt;li&gt;full text search&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Talking about embedded objects as one example, we added support for this very early on because we think its often a better way to model your data in the database.  Being able to store addresses for a user, or tags for a blog post inside of the main document is great for many reasons, particularly speed and manageability.  This is a very different paradigm than relational, and we’ve had to add a lot of features to make it work nicely: indexed embedded fields, in-place incremental updates,  etc…  We still have many features we want to add that people have asked for to make it even nicer to program with embedded documents.&lt;/p&gt;
&lt;p&gt;I’ve recently changed the way I describe MongoDB when I first talk to people that I think sheds some light on how we’re thinking.  MongoDB wasn’t designed in a lab.  We built MongoDB from our own experiences building large scale, high availability, robust systems.  We didn’t start from scratch, we really tried to figure out what was broken, and tackle that.  So the way I think about MongoDB is that if you take MySql, and change the data model from relational to document based, you get a lot of great features: embedded docs for speed, manageability, agile development with schema-less databases, easier horizontal scalability because joins aren’t as important.  There are lots of things that work great in relational databases: indexes, dynamic queries and updates to name a few, and we haven’t changed much there.  For example, the way you design your indexes in MongoDB should be exactly the way you do it in MySql or Oracle, you just have the option of indexing an embedded field.&lt;/p&gt;
&lt;p&gt;So in conclusion, I hope you find MongoDB useful and productive now, we hope to make great strides in the next year, and are grateful for the communities support, advice, debugging and interest.&lt;/p&gt;
&lt;p&gt;-Eliot and the core MongoDB Team&lt;/p&gt;</description><link>http://blog.mongodb.org/post/434865639</link><guid>http://blog.mongodb.org/post/434865639</guid><pubDate>Mon, 08 Mar 2010 11:32:00 -0500</pubDate></item><item><title>You need to learn MongoDB</title><description>&lt;p&gt;You need to learn MongoDB. We’re offering an informative, hands-on training session to help you do just that. From document-based data modeling to high-performance optimizations, we’ll answer your questions and prepare you for the move to Mongo.&lt;br/&gt;Among the topics we’ll cover:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How to use the language drivers, and how they work&lt;/li&gt;
&lt;li&gt;How to make the most of atomic updates&lt;/li&gt;
&lt;li&gt;Data-modeling with documents&lt;/li&gt;
&lt;li&gt;Administration with the JavaScript shell&lt;/li&gt;
&lt;li&gt;Scaling out using master/slave configurations and auto-sharding&lt;/li&gt;
&lt;li&gt;Backups and recovery&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The first sessions will be held in &lt;a href="http://mongodbtrainingsf0310.eventbrite.com/"&gt;San Francisco&lt;/a&gt; and &lt;a href="http://mongodbtrainingny0410.eventbrite.com/"&gt;New York City&lt;/a&gt;. Discounts are available for startups. If you need to learn MongoDB, a session like this will take you a long way. Sign up now! If you have any questions, send us an email at &lt;a&gt;info@10gen.com&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.mongodb.org/post/428483394</link><guid>http://blog.mongodb.org/post/428483394</guid><pubDate>Fri, 05 Mar 2010 11:31:00 -0500</pubDate></item><item><title>2d geospatial indexing</title><description>&lt;p&gt;We have now added geospatial indexing to the product.  Our approach has been to make something simple but fast: 2d only, and effective for common real world use cases such as lat/long location searches.&lt;/p&gt;
&lt;p&gt;Would love to get some feedback on features people would like to see, how its working, etc…&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.mongodb.org/display/DOCS/Geospatial+Indexing"&gt;Geospatial docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://groups.google.com/group/mongodb-user/browse_thread/thread/48f6c7defd08e880"&gt;More notes on 1.3.3 release&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://blog.mongodb.org/post/424944471</link><guid>http://blog.mongodb.org/post/424944471</guid><pubDate>Wed, 03 Mar 2010 18:16:13 -0500</pubDate></item><item><title>MongoDB March Events and NYC Office Hours</title><description>&lt;p&gt;&lt;b&gt;Upcoming MongoDB Events&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;MongoDB will be featured at several events, conferences, and meetups in March, including a &lt;a target="_blank" href="http://mongodbhowitworks.eventbrite.com/"&gt;webinar&lt;/a&gt; on MongoDB internals, &lt;a target="_blank" href="http://mtnwestrubyconf.org/2010/"&gt;Mountain West Ruby Conference&lt;/a&gt; in Salt Lake City, &lt;a target="_blank" href="http://nosqlboston.eventbrite.com/"&gt;NoSQL Live Boston&lt;/a&gt;, &lt;a target="_blank" href="http://qconlondon.com/london-2010/presentation/MongoDB:+huMONGOus+Data+at+SourceForge"&gt;QCon London&lt;/a&gt;, and &lt;a target="_blank" href="http://www.cloudconnectevent.com/cloud-computing-workshops/developer-workshops.php"&gt;Cloud Connect&lt;/a&gt; in Santa Clara. There’s a MongoDB &lt;a target="_blank" href="http://mongodbtrainingsf0310.eventbrite.com/"&gt;training&lt;/a&gt; session in San Francisco and there will even be a &lt;a target="_blank" href="http://geekaustin.org/2010/01/31/mongodb-day-geek-austin-data-series"&gt;MongoDB Day&lt;/a&gt; in Austin! Check the &lt;a target="_self" href="http://www.mongodb.org/display/DOCS/Events"&gt;Events&lt;/a&gt; page for a complete listing.&lt;/p&gt;
&lt;p&gt;In addition, 10gen will be hosting MongoDB Office Hours on Wednesdays in New York City, starting on March 17. Stop by to meet the MongoDB team, ask questions, or have a beer.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;MongoDB Office Hours&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Wednesdays (Starting March 17)&lt;br/&gt;4pm - 6pm&lt;br/&gt;17 West 18th Street - 8th Floor&lt;br/&gt;Between 5th &amp; 6th Avenues&lt;br/&gt;New York, NY&lt;/p&gt;
&lt;p&gt;&lt;b&gt;February Highlights&lt;br/&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The best of the MongoDB presentations in February:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target="_blank" href="http://vimeo.com/9173770"&gt;MongoDB Isn’t Water&lt;/a&gt; - Kyle Banker at Chicago Ruby on February 2&lt;/li&gt;
&lt;li&gt;
&lt;a target="_blank" href="http://www.parleys.com/#sl=1&amp;st=5&amp;id=1864"&gt;Introduction to MongoDB&lt;/a&gt; - Kristina Chodorow at FOSDEM (Brussels, Belgium) on February 7&lt;/li&gt;
&lt;li&gt;
&lt;a target="_blank" href="http://us.pycon.org/2010/conference/schedule/event/110/"&gt;How Python, TurboGears, and MongoDB are Transforming SourceForge.net&lt;/a&gt; - Rick Copeland at PyCon (Atlanta, GA) on February 21&lt;/li&gt;
&lt;li&gt;
&lt;a target="_blank" href="http://www.slideshare.net/drumwurzel/intro-to-mongodb"&gt;Intro to MongoDB&lt;/a&gt; - Alex Sharp at LA WebDev Meetup on February 23&lt;/li&gt;
&lt;/ul&gt;</description><link>http://blog.mongodb.org/post/420121891</link><guid>http://blog.mongodb.org/post/420121891</guid><pubDate>Mon, 01 Mar 2010 12:09:00 -0500</pubDate></item><item><title>Announcing Speakers for NoSQL Live</title><description>&lt;p&gt;It’s not too late to register for NoSQL  Live in Boston on March 11&lt;sup&gt;th&lt;/sup&gt;. We have an exciting lineup  of speakers and panelists who will discuss real use cases for NoSQL  in production systems.&lt;/p&gt;
&lt;p&gt;Session topics at NoSQL Live will include  scaling with NoSQL, NoSQL in the cloud, schema design with document-oriented  databases, the evolution of graph data structure from research to production,  the enterprise adoption of NoSQL, and toward web standards for NoSQL.  In addition to speakers and panels, the conference will also include  lightning talks and a NoSQL Lab for practical exploration of working  with specific NoSQL products.&lt;/p&gt;
&lt;p&gt;Here’s the confirmed list of speakers,  panelists, and moderators:&lt;/p&gt;
&lt;p&gt;— Dwight Merriman, CEO, 10gen&lt;/p&gt;
&lt;p&gt;— Eliot Horowitz, CTO, 10gen&lt;/p&gt;
&lt;p&gt;— Adam Kocoloski, CTO, Cloudant&lt;/p&gt;
&lt;p&gt;— Alan Hoffman, CEO, Cloudant&lt;/p&gt;
&lt;p&gt;— Durran Jordan, Senior Developer, Hashrocket&lt;/p&gt;
&lt;p&gt;— Les Hill, Software Adventurer, Hashrocket&lt;/p&gt;
&lt;p&gt;— Marko Rodriguez, Graph Systems Architect,  AT&amp;T Interactive&lt;/p&gt;
&lt;p&gt;— Ryan King, Technical Lead, Storage  Team, Twitter&lt;/p&gt;
&lt;p&gt;— Alex Feinberg, Senior Software Engineer,  LinkedIn&lt;/p&gt;
&lt;p&gt;— Jonathan Ellis, Systems Architect,  The Rackspace Cloud&lt;/p&gt;
&lt;p&gt;— Sandro Hawke, Software Developer and  Systems Architect, W3C&lt;/p&gt;
&lt;p&gt;— Benjamin Day, Microsoft MVP&lt;/p&gt;
&lt;p&gt;— Ryan Rawson, Systems Architect, StumbleUpon&lt;/p&gt;
&lt;p&gt;— Bryan Fink, Senior Software Developer,  Basho Technologies&lt;/p&gt;
&lt;p&gt;— Rusty Klophaus, Senior Software Engineer,  Basho Technologies&lt;/p&gt;
&lt;p&gt;— Adam Wiggins, Co-founder, Heroku&lt;/p&gt;
&lt;p&gt;— Mark Atwood, Director of Community  Development, Gear6&lt;/p&gt;
&lt;p&gt;— Sourav Mazumder, Principal Technology  Architect, Infosys Technologies Limited&lt;/p&gt;
&lt;p&gt;— Tim Anglade, CTO, GemKitty&lt;/p&gt;
&lt;p&gt;— Bradford Stephens, Founder, Drawn  to Scale&lt;/p&gt;
&lt;p&gt;— Doug Judd, CEO, Hypertable&lt;/p&gt;
&lt;p&gt;— Daniel Rinehart, Chief Software Architect,  Allurent&lt;/p&gt;
&lt;p&gt;— Emil Eifrém, CEO, Neo Technology&lt;/p&gt;
&lt;p&gt;— Paul Davis, Research Assistant, New  England Biolabs&lt;/p&gt;
&lt;p&gt;— Borislav Iordanov, Software Architecture  Consultant, Kobrix&lt;/p&gt;
&lt;p&gt;— Jim Wilson, Lead Software Engineer,  Vistaprint&lt;/p&gt;
&lt;p&gt;— Ryan Angilly, Senior Developer, Punchbowl Software&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Sign ups for the $40 early bird registration  end today. If you’re interested in presenting or sponsoring, contact  Meghan Gill, event coordinator, at &lt;a&gt;&lt;u&gt;meghan@10gen.com&lt;/u&gt;&lt;/a&gt;. Check out &lt;a&gt;&lt;u&gt;&lt;a href="http://nosqlboston.eventbrite.com"&gt;http://nosqlboston.eventbrite.com&lt;/a&gt;&lt;/u&gt;&lt;/a&gt; for more information and to register.&lt;/p&gt;</description><link>http://blog.mongodb.org/post/407211339</link><guid>http://blog.mongodb.org/post/407211339</guid><pubDate>Tue, 23 Feb 2010 11:48:00 -0500</pubDate></item><item><title>MongoDB: How it Works Webinar</title><description>&lt;p&gt;In October, 10gen hosted a &lt;a target="_blank" href="http://vivu.tv/portal/archive.jsp?flow=527-472-7945&amp;id=1256920226675"&gt;webinar&lt;/a&gt; where we heard from &lt;a target="_blank" href="http://www.10gen.com/index"&gt;10gen&lt;/a&gt; CEO Dwight Merriman and &lt;a target="_blank" href="http://www.businessinsider.com/"&gt;The Business Insider&lt;/a&gt; Lead Developer Ian White about the basics of developing applications with MongoDB and about how MongoDB is used in production at TBI.&lt;/p&gt;



&lt;p&gt;We’d like to follow up with a webinar focused on how MongoDB works “under the hood.” Please join us on March 8 at 12:30 PM Eastern Time. 10gen software engineer &lt;a target="_blank" href="http://www.twitter.com/mdirolf"&gt;Mike Dirolf&lt;/a&gt; will lead the session. Registration is free but limited to 125 attendees.&lt;/p&gt;



&lt;p&gt;&lt;a target="_blank" href="http://mongodbhowitworks.eventbrite.com/"&gt;Register now.&lt;/a&gt;&lt;/p&gt;</description><link>http://blog.mongodb.org/post/404909201</link><guid>http://blog.mongodb.org/post/404909201</guid><pubDate>Mon, 22 Feb 2010 08:48:00 -0500</pubDate></item><item><title>MongoDB Survey Results</title><description>&lt;p&gt;A couple weeks ago we asked people on &lt;a target="_blank" href="http://www.twitter.com/mongodb"&gt;Twitter&lt;/a&gt;, IRC, and the &lt;a target="_blank" href="http://groups.google.com/group/mongodb-user/"&gt;mailing list&lt;/a&gt; to fill out a survey on how they were using MongoDB.  About 120 people responded (thanks guys!).&lt;/p&gt;
&lt;p&gt;Here is what we gleaned:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Everyone’s a noob&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;How long people have been using Mongo:&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;a&gt;&lt;img width="300" height="100" src="http://chart.apis.google.com/chart?chs=300x100&amp;chd=t:14,42,44&amp;cht=p3&amp;chl=6-12%20months%7C3-6%20months%7C0-3%20months"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Most people haven’t been using Mongo for very long.  Exactly 0% said they’d been using Mongo for a year or more (which makes sense, given our first official release was ~12 months ago).&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Interesting things being stored in Mongo&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Lots of people are storing log data, analytics, user info… the usual.  Some less usual stuff:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Game title development info&lt;/li&gt;
&lt;li&gt;Patents&lt;/li&gt;
&lt;li&gt;Crime reports and warrants&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And quite a few people said: ”Everything.”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;So, how big is it?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;One person said they were testing up to 40 billion documents, but I wasn’t clear on if they had actually put in 40 billion or were going to.  So, we’ll ignore the outlier, but we can pretty safely say people are storing ~70 million documents.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;On a scale of 1-10, would you recommend Mongo to a friend?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Happily, the average was 9.64!  If you are happy with MongoDB, please consider tweeting, writing a blog post, or giving a talk at a conference or meetup… the biggest obstacle we’re facing right now is letting people know we exist!&lt;/p&gt;
&lt;p&gt;If you were below average (haha), I’d encourage you to hit the list or IRC.  We’d love to help out (or at least find out why you’re unhappy).&lt;/p&gt;
&lt;p&gt;And, finally, most importantly, religious wars:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Kyle has the most users&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Ruby wins handily with over 40% of users.&lt;/p&gt;
&lt;p&gt;&lt;img width="300" height="100" src="http://chart.apis.google.com/chart?chs=300x100&amp;chd=t:11,27,41,9,12&amp;cht=p3&amp;chl=PHP%7CPython%7CRuby%7CJava%7COther"/&gt;&lt;/p&gt;
&lt;p&gt;“Other” contains mainly C#, Perl, and Groovy users.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;OS X: the universal dev environment&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;OS people are using for development:&lt;/p&gt;
&lt;p&gt;&lt;img width="300" height="100" src="http://chart.apis.google.com/chart?chs=300x100&amp;chd=t:8,42,50&amp;cht=p3&amp;chl=Windows%7CLinux%7COS%20X"/&gt;&lt;/p&gt;
&lt;p&gt;OS people are using for production:&lt;/p&gt;
&lt;p&gt;&lt;img width="300" height="100" src="http://chart.apis.google.com/chart?chs=300x100&amp;chd=t:4,95,1&amp;cht=p3&amp;chl=Windows%7CLinux%7COS%20X"/&gt;&lt;/p&gt;
&lt;p&gt;Go Linux go!&lt;/p&gt;
&lt;p&gt;If you feel left out, feel free to &lt;a target="_blank" href="http://www.surveymonkey.com/mongodb"&gt;fill out the survey&lt;/a&gt; now.  Thanks to everyone for you input!&lt;/p&gt;</description><link>http://blog.mongodb.org/post/396693738</link><guid>http://blog.mongodb.org/post/396693738</guid><pubDate>Thu, 18 Feb 2010 10:15:00 -0500</pubDate></item><item><title>What about Durability?</title><description>&lt;p&gt;We get lots of questions about why MongoDB doesn’t have full single server durability, and there are many people that think this is a major problem.  We wanted to shed some light on why we haven’t done single server durability, what our suggestions are, and our future plans.&lt;/p&gt;



&lt;p&gt;To start, there are some very practical reasons why we think single server durability is overvalued.  First, there are many scenarios in which that server loses all its data no matter what.  If there is water damage, fire, some hardware problems, etc… no matter how durable the software is, data can be lost.  Yes - there are ways to mitigate some of these, but those add another layer of complexity, that has to be tested, proofed, and adds more variables which can fail.&lt;/p&gt;



&lt;p&gt;In the real world, traditional durability often isn’t even done correctly.  If you are using a DBMS that uses a transaction log for durability, you either have to turn off hardware buffering or have a battery backed RAID controller.  Without hardware buffering, transaction logs are very slow.  Battery backed raid controllers will work well, but you have to really have one.  With the move towards the cloud and outsourced hosting, custom hardware is not always an option.&lt;/p&gt;



&lt;p&gt;Requirements for web applications are also changing.  99.99% uptime is no longer the goal, people want 100% uptime as much as possible.  If you have durability through a transaction log, then you have to replay it to come back up.  If you have a master and slave in the same data center and you lose power, both will have to recover which could take 5-30 minutes.[1]&lt;/p&gt;



&lt;p&gt;Another feature of new non-relational databases is horizontal scalability.  While MongoDB’s auto-sharding is still in Alpha, we still feel this is a core component. With horizontal scalability comes many servers.  If you have a 100 node cluster, worrying about every machine is a liability.  If a machine goes down in the middle of the night, you want the system to recover as fast as possible, without human intervention.  Given that, and that a high percentage of failures are hardware, the best thing is to just mark that server as inactive, and ignore it until someone can look at it easily (could be hours or days).&lt;/p&gt;



&lt;p&gt;Given all this, we’re not saying durability isn’t important, we just think that single server durability isn’t the best way to get true durability.  We think the right path to durability is replication (local and remote) and snapshotting.  That’s why we’ve spent so much time making replication fast and easy and work over wide area networks in MongoDB.&lt;/p&gt;



&lt;p&gt;We are currently planning many more enhancements to replication to make it better.&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;psuedo real-time with optional blocking for writes until on multiple servers&lt;/li&gt;&#13;
&lt;li&gt;replica sets instead of replica pairs&lt;/li&gt;&#13;
&lt;li&gt;easier to create new slaves with large data sets&lt;/li&gt;&#13;
&lt;/ul&gt;
&lt;p&gt;Now - there are definitely some cases where single server durability is the best option.  It is on our road map, its just not on the short list right now.  We know what we want to do and how we want to do it, it’s just a matter of code :)&lt;/p&gt;



&lt;p&gt;[1] Some databases such as CouchDB use an append only model that allows for instantaneous restarts. However, this type of design usually requires compaction routines to be run periodically, so can be costly in high update scenarios.&lt;/p&gt;</description><link>http://blog.mongodb.org/post/381927266</link><guid>http://blog.mongodb.org/post/381927266</guid><pubDate>Wed, 10 Feb 2010 10:32:00 -0500</pubDate></item><item><title>Practical MongoDB Training with Kyle Banker</title><description>&lt;p&gt;10gen is offering day-long MongoDB training sessions in San Francisco and New York City! Kyle Banker, a software engineer at 10gen, will be leading both sessions. Kyle has presented MongoDB in numerous forums, most recently at &lt;a title="Chicago Ruby" href="http://vimeo.com/9173770"&gt;Chicago Ruby&lt;/a&gt;, and is excited to share his expertise. Kyle is preparing several interesting and challenging projects so that attendees can really get their hands dirty. Whether you are brand new to MongoDB or you’ve played with it already, you will leave this course with a comprehensive understanding of how to build applications with MongoDB.&lt;/p&gt;
&lt;p&gt;More details available on the &lt;a href="http://www.10gen.com/training"&gt;10gen website&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.mongodb.org/post/378210035</link><guid>http://blog.mongodb.org/post/378210035</guid><pubDate>Mon, 08 Feb 2010 10:33:20 -0500</pubDate></item><item><title>Hosting Center Update</title><description>&lt;p&gt;Update on supported hosting options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dreamhost is now offering instant configuration and deployment of MongoDB to DreamHost PS customers&lt;/li&gt;
&lt;li&gt;Webfaction and Linode have recently published instructions for installing MongoDB on their respective systems&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Check out the &lt;a title="Hosting Center" target="_blank" href="http://www.mongodb.org/display/DOCS/Hosting+Center"&gt;Hosting Center&lt;/a&gt; for more details. If you’re interested in support from other hosting providers, please let us know which ones you’d like to see in the comments.&lt;/p&gt;</description><link>http://blog.mongodb.org/post/371020418</link><guid>http://blog.mongodb.org/post/371020418</guid><pubDate>Thu, 04 Feb 2010 15:45:00 -0500</pubDate></item><item><title>Announcing NoSQL Live from Boston: March 11, 2010</title><description>&lt;p&gt;Clear your calendars for NoSQL Live, hosted by 10gen in Boston on March 11&lt;sup&gt;th&lt;/sup&gt;. It’s not your ordinary NoSQL meetup. Rather than introducing attendees to basic functions on the tools out there, NoSQL Live will bring together people using MongoDB and a number of different non-relational databases to discuss real use cases in production systems. The full-day conference will feature panel discussions, lightening talks, networking sessions, and a NoSQL Lab where attendees can get a practical view of programming with NoSQL databases. Cloudant, which provides a hosted database and data analytics platform based on Apache CouchDB, has been confirmed as a co-sponsor.&lt;/p&gt;
&lt;p&gt;More information on speakers, panels, and schedules to come. For those interested in presenting or sponsoring, contact Meghan Gill, event coordinator, at meghan@10gen.com. Visit &lt;a href="http://nosqlboston.eventbrite.com/"&gt;&lt;a href="http://nosqlboston.eventbrite.com/"&gt;http://nosqlboston.eventbrite.com/&lt;/a&gt;&lt;/a&gt; to register.&lt;/p&gt;
&lt;!--EndFragment--&gt;</description><link>http://blog.mongodb.org/post/354381883</link><guid>http://blog.mongodb.org/post/354381883</guid><pubDate>Tue, 26 Jan 2010 09:00:00 -0500</pubDate><category>NoSQL</category><category>NoSQL Live</category><category>event</category></item><item><title>"Partial Object Updates" will be an Important NoSQL Feature</title><description>&lt;p&gt;It’s nice that in SQL we can do things like&lt;/p&gt;
&lt;p&gt;UPDATE PERSONS SET X = X + 1&lt;/p&gt;
&lt;p&gt;We term this a “partial object update”: we updated the value of X without sending a full row update to the server.&lt;/p&gt;
&lt;p&gt;Seems like a very simple thing to be discussing, yet some nosql solutions do not support this (others do).&lt;/p&gt;
&lt;p&gt;In these new datastores, the average stored object size (whether it be a document, a key/value blob, or a row) tends to be larger than the traditional database row.  The data is not fully normalized, so we are packing more data into a single storage object than before.&lt;/p&gt;
&lt;p&gt;This means the cost of full updates is higher.  If we have a 100KB document and want to set a single value within it, passing the full 100KB in both directions over the network for the operation is expensive.&lt;/p&gt;
&lt;p&gt;MongoDB supports partial updates in its update operation via a set of &lt;a href="http://www.mongodb.org/display/DOCS/Updating#Updating-ModifierOperations"&gt;special $ operators&lt;/a&gt;: $inc, $set, $push, etc.  More of these operators will be added in the future.&lt;/p&gt;
&lt;p&gt;There are further benefits to the technique too.  First, we get easy (single document) &lt;a href="http://www.mongodb.org/display/DOCS/Atomic+Operations"&gt;atomicity&lt;/a&gt; for these operations (consider $inc).  Second, replication is made cheaper: when a partial update occurs, MongoDB replicates the partial update rather than the full object changed.  This makes replication much less expensive and network intensive.&lt;/p&gt;</description><link>http://blog.mongodb.org/post/307919034</link><guid>http://blog.mongodb.org/post/307919034</guid><pubDate>Wed, 30 Dec 2009 07:41:40 -0500</pubDate><category>updates</category><category>$inc</category><category>inc</category><category>nosql</category></item><item><title>NoSQL and the future of cloud databases
news.cnet.com — One of the cloud-related trends that...</title><description>&lt;p&gt;&lt;a title="NOSQL &amp; the Future of Cloud Databases" href="http://news.cnet.com/8301-13846_3-10412528-62.html"&gt;NoSQL and the future of cloud databases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;a&gt;news.cnet.com&lt;/a&gt; —&lt;/i&gt; One of the cloud-related trends that developers have been paying attention to is “NoSQL,” a set of operational-data technologies based on nonrelational technology. According to Dwight Merriman, CEO of 10gen (the commercial team behind the open-source MongoDB project), we’ll see NoSQL complement existing applications for the foreseeable future.&lt;/p&gt;</description><link>http://blog.mongodb.org/post/277800846</link><guid>http://blog.mongodb.org/post/277800846</guid><pubDate>Thu, 10 Dec 2009 13:50:35 -0500</pubDate></item><item><title>Fast Updates with MongoDB (update-in-place)</title><description>&lt;p&gt;One nice feature with MongoDB is that updates can happen “in place” — the database does not have to allocate and write a full new copy of the object.&lt;/p&gt;
&lt;p&gt;This can be highly performant for frequent update use cases.  For example, incrementing a counter is a highly efficient operation.  We need not fetch the document from the server, we can simply send an increment operation over:&lt;/p&gt;
&lt;pre&gt;db.my_collection.update( { _id : ... }, { $inc : { y : 2 } } ); // increment y by 2&lt;/pre&gt;
&lt;p&gt;MongoDB disk writes are lazy.  If we receive 1,000 increments in one second for the object, it will only be written once.  Physical writes occur a couple of seconds after the operation.&lt;/p&gt;
&lt;p&gt;One question is what happens when an object grows.  If the object fits in its previous allocation space, it will update in place.  If it does not, it will be moved to a new location in the datafile, and its index keys must be updated, which is slower.  Because of this, Mongo uses an adaptive algorithm to try to minimize moves on an update.  The database computes a padding factor for each collection based on how often items grow and move.  The more often the objects grow, the larger the padding factor will be; when less frequent, smaller.&lt;/p&gt;
&lt;p&gt;See also:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.mongodb.org/display/DOCS/Updating"&gt;http://www.mongodb.org/display/DOCS/Updating&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.mongodb.org/post/171353301/using-mongodb-for-real-time-analytics"&gt;http://blog.mongodb.org/post/171353301/using-mongodb-for-real-time-analytics&lt;/a&gt;&lt;/p&gt;</description><link>http://blog.mongodb.org/post/248614779</link><guid>http://blog.mongodb.org/post/248614779</guid><pubDate>Wed, 18 Nov 2009 12:21:00 -0500</pubDate><category>best of</category><category>update</category><category>inc</category><category>increment</category><category>fast</category></item><item><title>Webinar recording posted</title><description>&lt;p&gt;The recording of the webinar on MongoDB by Dwight Merriman (10gen) &amp; Ian White (Business Insider) is available here: &lt;a&gt;&lt;a href="http://vivu.tv/portal/archive.jsp?flow=527-472-7945&amp;id=1256920226675"&gt;http://vivu.tv/portal/archive.jsp?flow=527-472-7945&amp;id=1256920226675&lt;/a&gt;&lt;/a&gt; &lt;/p&gt;</description><link>http://blog.mongodb.org/post/241424419</link><guid>http://blog.mongodb.org/post/241424419</guid><pubDate>Thu, 12 Nov 2009 07:29:02 -0500</pubDate></item><item><title>10gen is looking for a full time Java developer</title><description>&lt;p&gt;10gen, which provides commercial support for MongoDB, is hiring a Java developer to work full time on the JVM languages in NYC.&lt;/p&gt;

&lt;p&gt;This job entails maintenance and improvement of the Java driver, and also working with the JVM languages like scala and clojure.  &lt;/p&gt;

&lt;p&gt;If you’re interested, you can send an email to info at 10gen dot com.  If you’re really interested, you should submit a patch to the driver (&lt;a href="http://github.com/mongodb/mongo-java-driver/"&gt;http://github.com/mongodb/mongo-java-driver/&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;-Eliot&lt;/p&gt;</description><link>http://blog.mongodb.org/post/239187888</link><guid>http://blog.mongodb.org/post/239187888</guid><pubDate>Tue, 10 Nov 2009 09:58:05 -0500</pubDate></item><item><title>Joyent</title><description>&lt;p&gt;A prebuilt binary for Joyent (labeled “Solaris64”) is now available on the mongodb.org &lt;a href="http://www.mongodb.org/display/DOCS/Downloads"&gt;downloads&lt;/a&gt; page.&lt;/p&gt;
&lt;p&gt;See &lt;a href="http://www.mongodb.org/display/DOCS/Joyent"&gt;http://www.mongodb.org/display/DOCS/Joyent&lt;/a&gt; for more information including an example of installation.&lt;/p&gt;</description><link>http://blog.mongodb.org/post/230943745</link><guid>http://blog.mongodb.org/post/230943745</guid><pubDate>Mon, 02 Nov 2009 12:33:57 -0500</pubDate><category>joyent</category><category>solaris</category><category>sunos</category><category>cloud</category></item><item><title>More than 10 Indexes now Supported</title><description>&lt;p&gt;The 10 index limit per collection has been raised to 40.  This is available in the latest daily build.&lt;/p&gt;
&lt;p&gt;Please consider “alpha” for now (like any daily build) but let us know how it works.&lt;/p&gt;</description><link>http://blog.mongodb.org/post/220025670</link><guid>http://blog.mongodb.org/post/220025670</guid><pubDate>Thu, 22 Oct 2009 10:49:05 -0400</pubDate></item><item><title>Webinar on MongoDB on Oct 30th </title><description>&lt;p&gt;We’re doing a &lt;b&gt;webinar &lt;/b&gt;on MongoDB on Oct 30, 2009 noon EST. It’ll be an overview of MongoDB &amp; will also have Ian White from Business Insider talking about how they are using MongoDB in production:&lt;br/&gt;&lt;br/&gt;Details &amp; register at: &lt;a href="http://mongodb1.eventbrite.com/"&gt;&lt;a href="http://mongodb1.eventbrite.com/"&gt;http://mongodb1.eventbrite.com/&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(The webinar is FREE)&lt;/p&gt;
&lt;p&gt;We’ve been speaking about MongoDB at physical events like conferences and meetups. But since there’s interest in MongoDB from many different geographical locations, we thought we’d also do a webinar.  This will be an interactive live web event. Look forward to seeing you there!&lt;/p&gt;
&lt;p&gt;If you have questions on the webinar or have ideas for other such webinars shoot us an email at &lt;b&gt;&lt;a href="mailto:info@10gen.com"&gt;info@10gen.com&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Instructions: &lt;img src="http://media.tumblr.com/tumblr_ksbsteEFgK1qzyevi.jpg"/&gt;&lt;/p&gt;</description><link>http://blog.mongodb.org/post/219381823</link><guid>http://blog.mongodb.org/post/219381823</guid><pubDate>Wed, 21 Oct 2009 17:45:00 -0400</pubDate></item><item><title>Databases Should be Dynamically Typed</title><description>&lt;p&gt;Software developers often debate the pros and cons of static versus dynamic typing in programming languages.  Yet what about databases?&lt;/p&gt;
&lt;p&gt;Of course, static typing is traditional for databases.  In a relational database we usual declare our columns and the datatype of each column’s values.&lt;/p&gt;
&lt;p&gt;However, we now see in the nosql space what are known as “schemaless” databases. Technically these products are often have some schema: for example in MongoDB we define collections and indexes.  However, we do not predefine the structure of objects within those collections — they may all be different, or all the same.  The typing is dynamic.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Dynamically typed databases are a good fit with dynamically typed programming languages.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;It certainly feels like it would be a win to have a dynamically typed db when using a dynamically typed programming language (Ruby, PHP, Python, Erlang, …)  How suboptimal it would be to have all the flexibility of dynamic typing in our code, and then hit a “brick wall” when we go to persist the data and have to statically spec everything out!  There is synergy to be had between the dynamically typed programming language and the dynamically typed database.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Dynamically typed databases can be a good thing when using statically typed programming languages.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The best thing about static typing with compilers is that errors are reported at compile/development time.  This is a big win for statically typed languages such as Java and C++.  However, even with a statically typed database, type matching errors storing data are only reported at runtime!  (That is, our java compiler doesn’t check our MySQL schema.)&lt;/p&gt;
&lt;p&gt;Thus some of the power of static typing in programming is lost at the storage layer.  We still retain some benefits: assurance of some consistency to the data stored.  But any failure to honor such a contract is only reported at runtime.  Thus, it is more than worth considering using a “schemaless” database with say, Java, and getting out of the business of writing data migration scripts with each release.  (Yes, some of that work stays but we can eliminate the majority.)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Relational databases could be dynamically typed.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;While existing RDBMSes are statically typed, this is not an inherent limitation of the relational model.  One could imagine a relational database with tables where one can dynamically insert a row with an extra column value at any time, and where values of cells in the same column of a table may have different types.&lt;/p&gt;</description><link>http://blog.mongodb.org/post/215738382</link><guid>http://blog.mongodb.org/post/215738382</guid><pubDate>Sat, 17 Oct 2009 16:54:00 -0400</pubDate><category>couchdb</category><category>mongodb</category><category>nosql</category><category>compilers</category><category>databases</category><category>object oriented</category></item></channel></rss>
