16 ms·
MongoDB 2.6 Released
- lazyloop 13y agoHere are the release notes. http://docs.mongodb.org/master/release-notes/2.6/ http://docs.mongodb.org/master/release-notes/2.6/
- arkham 13y agoSome notes on using the shell, and some unforeseen performance changes from the beta: http://comerford.cc/wordpress/2014/03/28/mongodb-2-6-shell-performance/ http://comerford.cc/wordpress/2014/03/28/mongodb-2-6-shell-p...
- the1 13y agomongodb is the best database in the whole wide world at the moment. I encourage everyone to jump in mongodb for agile web scale development with full big data capability.
- JulianMorrison 13y agoOh? How is it better than rethinkdb (at the same job)?
- bgilroy26 13y agothe1 won't tell you. S/he's teasing.
- zeroDivisible 13y agoWell, I think I must disagree with you in here. I'm sure that it is a viable choice for some use cases, it's just that I didn't found a use case for it yet. Being able to choose from PostgreSQL, Redis, Cassandra, heck, even ElasticSearch made me always choose one of those over MongoDB, at least for the problems which I had been trying to solve.
- mutex007 13y agoBy the way if you are looking for all the above functionality provided by all the DBMS you mentioned in a single DBMS instance, you can check out amisaserver.com. Polygot persistence is just another fad.
- wilsonfiifi 13y agoDoesn't appear to have a community edition for local/private installation...
- orthecreedence 13y agoDon't forget RethinkDB. Very good general-purpose document store that supports joins and has an excellent query language (no DB write lock either!)
- 16bytes 13y agoI truely can not tell if this comment is meant to be flamebait, buzzword-laden sarcasm, or NoSQL fanboy-ist.
- calebm 13y agoObvious sarcasm (https://www.youtube.com/watch?v=b2F-DItXtZs https://www.youtube.com/watch?v=b2F-DItXtZs)
- wilsonfiifi 13y agoSo does this mean document level locking has been implemented or just the foundation for its future implementation has been laid? I can't hold my breath much longer! :-) Edit: docs don't make any mention of it but then again they probably haven't updated them yet (fingers crossed!) http://docs.mongodb.org/manual/faq/concurrency/#what-type-of-locking-does-mongodb-use http://docs.mongodb.org/manual/faq/concurrency/#what-type-of...
- deleted 13y ago[deleted]
- leif 13y agoIt means the foundation has been laid. 2.6 included a lot of refactoring and rewriting of some core subsystems, with the apparent goal of eliminating technical debt so they can make more impactful changes in 2.8. Don't asphyxiate, tokumx has document-level locking right now. http://github.com/Tokutek/mongo http://github.com/Tokutek/mongo
- danielrpa 13y agoA lot of hype... And we still have db level locking. If document level is too difficult, at LEAST do collection level (not that it is too much better, but least it some real improvement).
- z92 13y agoI was reading somewhere that Mongo can't do document level/record level locking because of mmap'ed files. The whole database is memory mapped. And mmap doesn't understand underlined data structure, it views the whole file as a large single blob. Ditching mmap will not be that easy, cause most of the speed and simplicity of Mongo comes from using mmap.
- arkham 13y agoIt doesn't use mmap for locking though - and in any case one database is already multiple files (2GB max). There are internal data structures used by MongoDB and the database itself takes care of locking, mmap just gets the data into memory.
- AlisdairO 13y agommap does complicate things. A traditional database often works using write ahead logs. The log holds changes made to the database over time - so when you want to write a change to your DB, you put 'I'm changing value x.y to 50' in your WAL. Sometime later the actual data pages holding the modified x data structure can be written out to disk. If you have a crash before the data pages get written out, you can 'replay' your WAL file to redo all the lost changes. Unfortunately, a central requirement of a write ahead log is that the data pages must not get written before the WAL. If that were to occur, and there were a crash, the system wouldn't know that it had to undo the changes to the data pages, leaving you with corrupt data. mmap generally doesn't provide the ability to pin your dirty pages in memory - they're subject to getting flushed any time the system is under memory pressure - so it makes logging a lot more complicated to get right.
- arkham 13y ago
- anvarik 13y agoWith this release aggregation framework got super powerful. Now it returns a cursor. Now we can get the aggregation results and iterate over them. No more 16mb result limitation as well...
- ericcholis 13y agoAgreed, it was annoying to have to use the MapReduce for larger sets.
- jeffdavis 13y agoCan you elaborate for people who don't understand the feature? Is the aggregation result large because of grouping?
- anvarik 13y agoWell, aggregation in MongoDB allows you to write sql like queries, and before 2.6 if aggregated result was > 16mb it was throwing an error, but now it gives you a cursor. Now you can fetch the results and send to another collection. For an example aggregation query in mongo have a look here: http://docs.mongodb.org/manual/tutorial/aggregation-zip-code-data-set/ http://docs.mongodb.org/manual/tutorial/aggregation-zip-code...
- ericingram 13y agoI wonder, what does this mean for TokuMX
- wilsonfiifi 13y agoAm glad someone has brought up TokuMX. Tell me, have you used it in production yet? I wonder why 10gen hasn't made any official comment on the work the folks at Tokutek are doing to enhance Mongodb's features.
- mason55 13y ago> I wonder why 10gen hasn't made any official comment on the work the folks at Tokutek are doing to enhance Mongodb's features. Why would they comment? What would they say? Toku is basically trying to steal MongoDB's customers, they even use the same basic pricing model.
- nevi-me 13y agoFor me the really irritating thing is the observation that when I want to enjoy flame wars about Mongo, I seem to see a lot of their 'try TokuMX' everywhere. Last time I checked they are on the 2.2 codebase, unless that recently changed. Mongo 2.4 was a significant upgrade, and assuming I'm correct above, I feel like the Tokutek team disregard that. I get that it's good marketing to suggest an alternative, but going along criticising that which you've built upon doesn't go well with me.
- leif 13y agoLast time you checked was a while ago, it's 2.4 compatible now (except geo and full-text) and has been since TokuMX 1.3. We generally don't criticize indiscriminately. MongoDB has a lot of good sides and we embrace and extend those, and where it has faults we try to work around or replace them. Our core strength is fast, reliable, compressed storage and MVCC semantics, so obviously we talk about that a lot, but we also understand and acknowledge that a large amount of TokuMX's success, to the degree it has some, is due to the excellent parts of MongoDB. As an example, I personally am really excited about what MongoDB has done with aggregations in 2.6 (and what seems to be coming down the pipe soon), and I can't wait to merge it in to TokuMX. We all get stronger together.
- tedchs 13y agoWill MongoDB still segfault under certain circumstances?
- outside1234 13y agoEverything will segfault under certain circumstances.
- saurik 13y agoThe only reasonable assumption is circumstances that do not involve hardware failure, the binary being compiled incorrectly, the source code being modified or replaced by someone downstream, the libraries it is using being corrupt or having been replaced by ABI-incompatible variants... none of these are reasonable circumstances; one would then further assume that the person posting has run into reasonable circumstances where MongoDB often crashes, which is not a stretch given the number of bugs that are filed against it that talk about this kind of issue. https://www.google.com/search?q=site:jira.mongodb.org+mongodb+segfault https://www.google.com/search?q=site:jira.mongodb.org+mongod...
- tedchs 13y agoExactly; well said. It's been about a year but basically I had a replica set where sometimes one replica or the other would segfault and I'd have to manually delete its data files and re-replicate, after which it was fine. Happened about every few months. It was clearly based on application behavior and not an inherent system problem such as those you listed.
- rdtsc 13y agoHave never seen my python server segfault.
- mateo411 13y agoYes.
- ChrisGaudreau 13y agoFinally, MongoDB 2.6 lays the foundation for massive improvements to concurrency in MongoDB 2.8, including document-level locking. This is exciting even if I don't expect it to happen soon.
- rainmaking 13y agoI have never understood how the definition of "Document Database" is different from "File System".
- decentrality 13y agoIt's very close to JSON objects. In fact, it uses JSON/BSON. So it's Hashes of data structures, which MongoDB makes accessible quickly, like a file system must be. You can also use GridFS to store files in the document database, which actually breaks files into chunks and stores them in collections, also just like a FAT table.
- herge 13y agoReally? Have you ever tried to search for specific content in structured documents on a filesystem?
- leccine 13y agoI have, and found what I was looking for. What am I doing wrong?
- herge 13y agoHow much data were you grepping for? How much time did it take? How did you transmit those results over the network? Or does your data fit in one csv file?
- coldtea 13y agoYou have too little data and/or too little metadata, and are not taking into account time, flexibility, tooling, etc etc. Essentially you say something akin to "Death metal is just pulsating air-waves, like jazz, so what's the big difference?".
- rainmaking 13y agoYou are referring to using an index, correct? Because grep is absolutely, madly efficient for a doing a full search. The index portion of a file system are called files and directories. Several file names can refer to the same data. Those are called hard links. So with hard links, I can refer to a Foo by their related Bar. /foo/foo1 /foo/foo2 /foo/by_bar/bar1 /foo/by_bar/bar2 /foo/by_bar/bar3 /bar/bar1 /bar/bar2 /bar/bar3 /bar/by_foo/foo1 /bar/by_foo/foo2 If I am not mistaken, this accurately describes the limits of MongoDB in terms of mapping relations. I'm not a Mongo expert because no one could convince me otherwise to date, somebody correct me?
- hamxiaoz 13y agoPlaying with Meteor and mongo recently and have found mongo seems a little bit strange from a transitional SQL point of view, like do I need to embed or reference? Can anyone recommend a good book or source?
- anvarik 13y agoMongoDB Definitive Guide 2nd ed is pretty good
- francesca 13y agohttp://docs.mongodb.org/manual/tutorial/model-embedded-one-to-many-relationships-between-documents/ http://docs.mongodb.org/manual/tutorial/model-embedded-one-t... http://docs.mongodb.org/manual/core/data-model-design/ http://docs.mongodb.org/manual/core/data-model-design/
- dkhenry 13y agoAwesome news. I am excited for the aggregation cursor. As much as I love some of the alternatives that are almost ready I still turn to mongo for a vast majority of my deployments. Hopefully it will keep getting better and pushing others to do the same.
- endijs 13y agoCursor for aggregate, proper explain for aggregate, index intersection, $redact and other cool operators, Multi* in Geospatial, faster execution and, foundation for document-level locking which should be introduced in MongoDB 2.8. I must say I'm happy with this release.
- AdrianRossouw 13y agoSo i've been trying to find an the ideal case for mongodb, because I have to teach a nosql database to some people I am mentoring. I'm leaning heavily towards couchdb though. http://daemon.co.za/2014/04/when-is-mongodb-the-right-tool http://daemon.co.za/2014/04/when-is-mongodb-the-right-tool
- wilsonfiifi 13y agoHave a look at this: https://github.com/johnwilson/bytengine https://github.com/johnwilson/bytengine. It could have been built with CouchDB however some features such as ad-hoc querying and partial document updates make MongoDB a more compelling choice (albeit prone to some scalability issues until mongodb version 2.8 hopefully lol!).
- AdrianRossouw 13y agothanks! I'll take a look at it. I use elasticsearch for adhoc querying : http://daemon.co.za/2012/05/elasticsearch-5-minutes/ http://daemon.co.za/2012/05/elasticsearch-5-minutes/ And couchdb does have atomic in-place updates, http://wiki.apache.org/couchdb/Document_Update_Handlers http://wiki.apache.org/couchdb/Document_Update_Handlers I used the latter recently to track the last view-time on images, as well as to build a schema migration routine in like 100 lines of code. edit fixed link
- id 13y agoWhile MongoDB has many use cases, it's just perfect if you need to pass over JSON to your JavaScript. Or need JSON output for any other reason.
- AdrianRossouw 13y agoI can't see how that's a defining feature for it, because couchdb and others also do this really really well. Most of the time you don't even need db drivers, because couchdb is just a REST server.
- zaidf 13y ago
- brokentone 13y agoCan someone with more MongoDB experience give me your thoughts on the upgrade difficulty here? Worth doing soon, or waiting for a point release? Does this require a data rebuild/update process (coming from 2.4)?
- Fizzer 13y agoUpgrade notes are here: http://docs.mongodb.org/master/release-notes/2.6-upgrade/ http://docs.mongodb.org/master/release-notes/2.6-upgrade/ "the upgrade from MongoDB 2.4 to 2.6 is a binary-compatible drop-in upgrade: shut down the mongod instances and replace them with mongod instances running 2.6."
- arkham 13y agoAuthentication is the main thing to be aware of (no data rebuild), but full notes here: http://docs.mongodb.org/master/release-notes/2.6-upgrade/ http://docs.mongodb.org/master/release-notes/2.6-upgrade/ And, you have to be on 2.4 first (I know you said you are, but best to make sure for others)
- mason55 13y agoIMO unless you desperately need one of the new features I would hold off a few weeks. With a release this big I'd expect there will be some bugs and wouldn't be surprised to see 2.6.1 shortly.
- colechristensen 13y agoThis is always best practice for anything important unless you find your life is dull and bereft of emergency.
- nasalgoat 13y agoIn the case of Mongo, it's the opposite - the upgrades are needed badly enough that it's worth the risk of a major number release.
- doug1001 13y ago
- owenversteeg 13y agoThe blog post was rather vague about 2.6's "better performance". Are there any concrete numbers?
- fiatmoney 13y agoAnd it still relies entirely on the OS's scheduling algorithms for caching and IO. mmap is nice but it has no idea you're running a database.
- Oculus 13y agoThe main reason I use MongoDB on Node is the maturity of the Mongoose ORM - I've used Node-ORM 2, BookshelfJS, and SequelizeJS and none of them felt as mature as Mongoose.
- tbarbugli 13y agoHow is it possible to have aggregation cursors without crunching the complete data set in advance (aka map/reduce) and still have consistent and correct results?
- nicklovescode 13y agoI've been using Elasticsearch as a primary database for my new project, which has basically been a good NoSQL db that happens to have great search. However, peripheral tools(performance testing, hosting) have been a bit rough. How do the two databases compare now. Is search improving in Mongo or is that something they are not really worrying about at the moment.
- int64 13y agoif you are looking for a nosql dbms as a service which consumes json and supports SQL and search, you could try amisaserver
- ddorian43 13y agohave you seen the pricing? it's insane
- mutex007 13y agoThe price is unbelievably fair. Try deploying mysql in the cloud and while you are at it, you get Redis as well for cache and then you hit the wall you need search in your application, so you deploy elastic search as a service as well. Do the math and compare to ours. Our pricing starts as low as $15 per month The cheapest instance of amazon cloudsearch is around $79 monthly, You then have to deploy a transactional DBMS and then most likely S3 for storage as well.
- ddorian43 13y agoIt's 700/month (otherwise your product isn't needed because no-sharding? postgresql can do most of the stuff) the hosted version is upto 8gb ram, don't you think that's low ? sqlserver + oracle are also insane
- mutex007 13y ago$700 annually. Please read well before you misrepresent us. By the way Partitioning by Hash and Range as we have stated means "Sharding"
- endijs 13y agoThis is good write-up about what's new with actual numbers. http://devops.com/news/mongodb-2-6-significant-release-mongo-yet/ http://devops.com/news/mongodb-2-6-significant-release-mongo... Quote: "MongoDB 2.6 provides more efficient use of network resources; oplog processing is 75% faster; classes of scan, sort, $in and $all performance are significantly improved; and bulk operators for writes improve updates by as much as 5x."
- rogerbinns 13y agoMongo haven't updated their feeds for Ubuntu. I wonder how long they will take to do so?
- rogerbinns 13y agoThey have now. However 2.6 uses different package names, configuration file name, log file etc. It is generally mongod instead of the earlier mongodb (eg before it was /etc/mongodb.conf and is now /etc/mongod.conf). This means no automatic upgrades to 2.6, and sysadmin action to correct config file name etc.
- mdcallag 13y agoI am a big fan of their focus on manageability for sharded databases. I am less of a fan of their db internals that might require you to use many more shards than a more performant engine. More details at http://smalldatum.blogspot.com http://smalldatum.blogspot.com