Hacker News new | past | comments | ask | show | jobs | submit login
CouchDB 1.0 (couch.io)
194 points by bitdiddle on July 14, 2010 | hide | past | favorite | 71 comments



Congrats, guys!

I have to say, though, while you were busy inching towards 1.0 I've fallen in love with other production-ready NoSQL db's (namely Mongo and Cassandra). I'm excited to play with Couch, just to play with it, but as someone who is already very satisfied with other NoSQL technologies (when I need them), what would be your pitch for why I should give Couch a serious look?


I've got truly offline replication (as in you can run me on Android and your laptop and keep them synced via the cloud).

Also, none of the other NoSQLs are really set up for schemaless queries like I am. Incremental map-reduce lets you normalize a bunch of different heterogenous document structures in your view, which is more flexible than the key-path indexes Mongo has, and more real-time than Hadoop/Google style map reduce.


Your novelty account is creepy.


It all started here: http://twitter.com/couchdb

I imagine by the time we get the 23andMe account it'll be really creepy. ;)


Offline on Android support sounds really amazing.

I'm poking around DroidCouch and only see a wrapper for the CouchDB REST API:

http://github.com/sig/DroidCouch

Should I be looking at another project for offline support?


You can get my Android installer here: http://www.couch.io/android

Remember it's only a developer preview, but it should be fully-functional. Requires Android 2.1 or 2.2


I hope someone creates mongodb account and responds to your comment. Nothing better to follow than hot, fierce war between databases. Keep'em coming! May the best prevail!


I think we have different definitions of "production-ready." I find Cassandra to considerably immature having weird bugs that cause it to outright crash and both Cassandra and Mongo have seen issues from many people with data loss. Yes, people are using these systems in production but they're both still young and immature and it is in everyone's best interest to continue to evaluate possible solutions that are coming out.


I've been in production without issue for years in some installations. I probably could have raised the "production-ready" flag in 2008/2009 if I held myself to the same standards as a lot of projects.


In both my last job (latexsearch.com) and my current job (smarkets.com) I've worked with couchdb in fairly large scale installations. I haven't experienced a single bug nor had any couchdb-related performance problems. It's pretty solid.


". . .Mongo have seen issues from many people with data loss"

Have any citations for data loss happening in a release version of mongo, with the recommended configuration (at least 1 slave)?


couch hits a number of sweet spots. Documents can have attachments so you can build a complete application out of html,css, and javascript and have the entire app reside in a couch database. Coupled with P2P replication this make for some interesting possibilities.

couch also inherits a lot from it's choice of implementation language, Erlang, and it's append-only storage design. A high level functional language such as Erlang makes for a small manageable code base. So if you want to extend or enhance it there's not as much to get your arms around as you would have in C++.

On the other if you're a web programmer or could just otherwise care less about db internals, the JSON based RESTful API is all you need and there's a client already out there for just about every language I can think of except maybe Rebol.

I've been poking at it for a couple of years now and one thing I have to say is that it is really truly rock solid. Moreover it has an active and supportive community and at least two companies building businesses around it, Cloudant and couch.io, both of which boast committers to the project.


Are there any examples of applications being wholly hosted inside Couch?


there's also one of my favorites, Swinger, http://c.ixxr.net/swinger/_design/swinger/index.html#/ which is like powerpoint except it's free and it works. It's great for pitching to folks



The admin program (at http://localhost:5984/_utils if couch is installed and running) is such a program.



I didn't realize CouchDB was < 1.0! Seems like you guys have been forever and have been rock-solid!

Congrats on hitting "the one" then!

Loving your updated design, by the way. Here's a great example: http://www.couch.io/case-studies


Being 1.0 feels so ... reliable.


I also threw my congrats out into blog-space this morning after updating the install on my laptop. Even though MongoDB fits most of my specific application needs better than CouchDB, CouchDB is a great project.


Other than being a great tool for its problem domain, I think part of the reason CouchDB is successful is because Chris Anderson (jchris) is hilarious. Watch his video (http://vimeo.com/5288034)...

When asked about writing CouchDB in C++ he replies "C++ is great- but then you have to use it." Priceless. Anyways congratulations.


I think it is pretty cool that http://couch.io/ is a website served directly by CouchDB.

Server: CouchDB/0.12.0ab71f475-git (Erlang OTP/R13B)


$ telnet couch.io 80 Trying 80.244.253.216... Connected to couch.io. Escape character is '^]'. GET /get HTTP 1.0

HTTP/1.1 200 OK Date: Wed, 14 Jul 2010 19:28:23 GMT Server: Apache X-Powered-By: PHP/5.2.6-1+lenny8 Vary: Accept-Encoding Connection: close Content-Type: text/html

<html> <head> <title>Unknown Domain</title> </head>

  <body>
The Domain "" is not available on this server.

  </body>
</html> Connection closed by foreign host.


HTTP/1.1 is essential for conserving our dwindling IPv4 address space, so I think it's reasonable for servers to require it.


Doesn't wget still use HTTP/1.0?


Apparently they added Host headers and keepalive, even though it's not a fully conforming HTTP/1.1 client. Makes me wonder how many servers out there accept Host headers from HTTP/1.0 clients.

http://wget.addictivecode.org/FrequentlyAskedQuestions?actio...


According to the response headers, it's about 50/50 Apache and CouchDB depending on the resource.


It's a pure CouchApp served behind Apache httpd for technical reasons. The site proper is run in/from CouchDB, Apache is merely used for virtual hosting and caching. We are transitioning to a pure-CouchDB setup now that CouchDB can do virtual hosts itself.


Great job but the site does a terrible job in telling a new visitor what exactly CouchDB does. I'm still not clear what it does - why are they offering a download before actually communicating the benefits.


CouchDB fills an important niche between embedded databases, like SQLlite and Distributed NoSQL solutions, like riak. Also it's seems to be targeting once popular "Mobile/Offline Databases" sector (it was before 3G and even GPRS took off and when wireless bandwidth was limited and not always on (i.e. dial up). I think about CouchDB as a modern version of MS-Access and/or Lotus Notes ;-)


It seems very popular, so maybe it's just that I'm not cool enough (not in the target audience/mixing with the right crowd, virally speaking) - but being upfront about what something is and what's great about it, would seem to me to be an important for encouraging adoption. OTOH, I'm noticed many successful projects don't do this, so maybe it isn't important. :/

My history shows 5 pages from the landing page before I found one that said what CouchDB is (the faq), and I'm still not sure what distinguishes it.

btw: awesome logo and poster.


I think http://couchdb.apache.org/ is a better site for finding out what CouchDB is.


Changes since 0.11.1:

    * More efficient header commits.
    * Use O_APPEND to save lseeks.
    * Faster implementation of pread_iolist(). Further improves performance on concurrent reads.
    * Added authentication caching
    * Faster default view collation.
    * Added option to include update_seq in view responses.
from http://couchdb.apache.org/downloads.html


What are the advantages / downsides of CouchDB compare with other schemaless DB like Mongodb, Redis, Tokyo Cabinet etc. ?


Congrats, guys! I'm just starting to take a look into CouchDB at the moment. I look forward to getting to know it better.


Congrats! But that is by far the most arrogant and obnoxiously self-indulgent website I've seen in a long while.


Can someone give me a quick synopsis of what I would use this for?

Is this only for Facebook size scaling or is it of use for those of us just starting out?


I'm not a CouchDB pro by any means but I've been following it from a distance for some time.

The main feature of CouchDB is that it's a fast, scalable database that also allows you to host your apps inside of it, with each "view" being stored in the database itself.

I believe some people use it for large installations but as far as I know that is not the primary focus.


It's a "fast, scalable database" that isn't focused on large installations? What?

While I haven't used couchdb much personally, its most significant characteristics seem to be that it's a document-oriented database (each record can have its own structure) and that it inherits all of Erlang's infrastructure for fault-tolerance.


The offline replication is the one thing no other database touches. (Maybe Lotus Notes but that thing is long in the tooth.)


Well, that's taken long enough. Lotus Notes has everything to do with CouchDB. Damien was a product developer at Iris/Lotus, and in a lot of ways CouchDB is a modern rethink of the best of what Notes/Domino is. When you take away the client and the need to be backwards-compatible to the late Bronze Age (Notes V2 applications from '93 can run unmodified in the current version 8.5 client), you're free to make a lot of improvements, but you also get to keep the good stuff.


We've been using CouchDB in production for at least six months with our web-based content management system and our mobile advertising platform. We also use it to store scores for a couple of mobile games, and to store posts for PicBored, an anonymous image-based forum for Android. I am a bit worried about how well the replication will work with dozens or hundreds of servers, but it's working great with only a handful.


I would use this to replace MySQL or PostgreSQL and I would use it over MongoDB or Cassandra because it is high-quality software, built on top of Erlang (highly concurrent and fault tolerant language, great foundation to start with), and implements really great features.


I personally use MongoDB for small, one-off projects. The good thing about schemaless databases is that you can just start shoving data into them without caring about its structure.

That said, document-based databases suck at complex queries and reporting tasks.


Hey CouchDB, do you have a page of people using you in production?



Thanks Couchdb for the comforting thought :-p Man, I didn't know BBC used you - awesome!


If only it worked. The test suite is giving me a crapload of errors on *.couchone.com. I spent a couple hours getting it installed on my laptop (docs have incorrect dependencies among other things) and the first test just hangs. CouchDB 0.9?


After looking into Erlang for a while now (still in chapter 3 of ERLANG Programming by Francesco Cesarini)

I have to state that writing something this big in Erlang was bold, really, really bold.

Erlang is not really that fun or exciting to use


> Erlang is not really that fun or exciting to use

It depends what you use it for. Its brilliant for infrastructure - software that has to live forever and survive no matter what gets thrown at it. It makes a lot of the hard problems go away so you can focus on the fun and exciting stuff.


interesting, I actually like it. The syntax took some getting used to but I find with functional languages I think more and write a lot less and spend a lot less time debugging.

I found Armstrong's book useful also, as well as the tutorial at erlang.org

When you consider all that's in CouchDB, the smallness of the code base is impressive. I think that's a direct consequence of the choice of Erlang.


this is pretty cool news, though I'm a might concerned about how the links to the couchone hosting seem to be broken :p


We're getting hit by lots of 10x waves right now, so while we're doing what we can, if the hosted stuff is sluggish today we'll be faster tomorrow.

Cheers, Chris


cool. Might I suggest that after the pace gets saner, you add a script that fires a confirmation email before creating the instance + includes a "how to use the hosted instance" mini explanation.

This might a) free up some instances that are created only because certain folks have this silly habit of retrying a form with new values when it doesn't work the first time, and b) will make it easier to couchdb novices to get started.

Otoh, I might just be speaking for myself and my own silliness.


works for me™. What links are you talking about?


couch.io is invite based at the moment, right?

can I have an invite? :D


Last year, when I asked couch.io for an account, they suggested that I go with a competitor cloundant because they were not ready for users. It really impresses me when companies/people show such honesty. I expect that now both couch.io and cloudant will do a good business (as will MongoHQ): as easy as it is to run services on our own servers, it is also great to just let someone else worry about admin (like using Heroku, for example)


{"error":"bad_request","reason":"invalid UTF-8 JSON"} when i try signing up


This could perhaps be an issue with your browser (or something due to load). Can you email hosting@couch.io with details? Thanks!


looks like, no. sign up on the front page for an instance.

http://www.couch.io/get


Nope, just sign up :)


Well done guys. But don't forget to credit Bryant Cutler (http://bryantcutler.com/) for the awesome logo.

update: downvoted? why? I really think the guy should be credited. He did a fricking awesome job which CouchDB has based its whole image on. The faux movie poster linked at the top of this story has a giant size version of his logo as the very backdrop. This shit is important. Credit him, says I!


I agree that logo is the bomb. I remember when Damien held the contest and my friend @atduskgreg entered. When I saw the logo that one I knew Greg's didn't stand a chance. Thanks Bryant!


Word!


brilliant logo


I down-voted you just now because you complained about being down-voted, which isn't good etiquette.


Upvoted again!


I still don't know how to down-vote. Do you need super powers?


>200 karma, you're almost there.


It's 201 karma. ;)


My favourite CouchDb commercial: http://vimeo.com/11852209




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: