The Little Things(1): Do Not Delete
CouchDB takes data storage extremely seriously. This usually means we work hard to make sure that the CouchDB storage modules are as robust as we can make them. Sometimes though, we go all the way to the HTTP API to secure against accidental data loss, saving users from their mistakes, rather than dealing with hard drives and kernel caches that usually stand in the way of safe data storage.
To delete a document in CouchDB, you issue the following HTTP request:
DELETE /database/docid?rev=12345 HTTP/1.1
A common way to program this looks like this:
http.request('DELETE', db + '/' + docId + '?rev=' + docRev);
So far so innocent. Sometimes though, users came to us and complained that their whole database was deleted by that code.
Turns out the above code creates a request that deletes the whole database, if the docId variable isn’t set correctly. The request then looks like:
DELETE /database/?rev=12345 HTTP/1.1
It looks like an honest mistake, once you check the CouchDB log file, but good old CouchDB would just go ahead and delete the database, ignoring the
We thought this is a good opportunity to help users not accidentally losing their data. So since late 2009 (yes, this is an oldie, but it came up in a recent discussion and we thought it is worth writing about :), CouchDB will not delete a database, if it sees that a
?rev= parameter is present and it looks like that this is just a malformed request, as database deletions have no business requiring a
One can make an easy argument that the code sample is fairly shoddy and we’d agree. But we are not here to argue how our users use our database beyond complying with the API and recommended use-cases. And if we can help them keep their data, that’s a win in our book
Continuing down this thought, we thought we could do one better. You know that to delete a document, you must pass the current rev value, like you see above. This is to ensure that we don’t delete the document accidentally without knowing that someone else may have added an update to it that we don’t actually want to delete. It’s CouchDB’s standard multi version currency control (MVCC) mechanism at work.
Databases don’t have revisions like documents, and deleting a database is a simple
HTTP DELETE /database away. Databases, however, do have a sequence id, it’s the ID you get from the changes feed, it’s an number that starts at 0 when the database is created and increments by 1 each time a document is added, updated or deleted. Each state of the database has a single sequence ID associated with it.
Similar to a rev, we could require the latest sequence ID to delete a database, as in:
And deny database deletes that don’t carry the latest
seq_id. We think this is a decent idea, but unfortunately, this would break backwards compatibility with older versions of CouchDB and it would break a good amount of code in the field, so we are hesitant to add this feature. In addition, sequence IDs change a little when BigCouch finally gets merged, so we’d have to look at this again then.
In the meantime, we have the protection against simple coding errors and we are happy that our users keep their hard earned data more often now.
CouchDB Weekly News, April 3
Vote on release of Apache CouchDB 1.5.1-rc.1 (will be released as Apache CouchDB 1.5.1 — see thread)
The vote passed.
Importing CSV data into a CouchDB document using Python-Cloudant module (discussion still open — see thread)
Approaches brought up: (1) Transforming a CSV file into a JSON file with Python; (2) rc_scv, a direct rcouch extension; (3) using Google Refine and Max Ogden's refine uploader (see visual example here); (4) CSV2Couch. Further information can also be found in this blog post on "Using Python with Cloudant" and the newer Cloudant-Python interface
CouchDB 1.6.0 proposals (see thread)
Discussion around the open blocker plus how to deal with it and around re-cutting 1.6.x from master. Releasing 1.5.1 will take precedence.
Joan Touzet: "I know many of you are fed up with not being able to auto format in your favourite editor and match the CouchDB Erlang coding standards, or receiving pull requests that are formatted poorly. I'd like to fix that with an appropriate whitespace standard, and supplementary plugins for vi and Emacs that will just Do The Right Thing and let us all stop worrying about whitespace corrections in pull requests."
There's currently a poll around this topic which is still open.
Multiple Concurrent Instances of CouchDB on Mac OS X 10.7.5 (see thread)
Approaches: (1) for a powerful enough machine Vagrant could be used to spin up a few CouchDB VMs, e.g. with CouchDB-Vagrant. Other options could be: (2) using Docker, (3) Node-Multicouch (used in Hoodie) or (4) this script to configure isolated instances, it should be possible to point
couchdb to the CouchDB commands inside the
- CouchDB was just featured on GitHub’s list of NoSQL databases
- npm inc: "How are [we] going to make money?"
- Displaying a million DNA barcodes on Google Maps using CouchDB
- NoSQL Job Trends: February 2014
- Stackdriver can monitor CouchDB
Releases in the CouchDB Universe
- Wilt 3.0.0 – a browser/server based CouchDB API library based on the SAG CouchDB library for PHP
- contentful-2-couchdb – a proof of concept for easy data export to CouchDB and replication use
- Availability of MariaDB 10 announced
- PouchDB released a new website
- PouchDB 2.1.0 release includes e.g. (all release notes here):
- Support optional leveldown builds
- Replication performance improvements
- Fix for localStorage detection in Chrome Apps
- Improved error reporting from replicator et al.
- On Error handling in Node.js
- "CouchDB has hit the big time." – IBM & Cloudant: Chapter One of NoSQL
- CouchDB Short Review
- A bit older, but still good news about Opencouch from Erlang Factory 2014
"If you are designing your own REST backend you're doing it wrong"
Book: "Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement"
- There's a "Database song" for it, too, and it's also mentioning CouchDB
Use Cases, Questions and Answers
- Turning the server into the new personal device with Node.js, Cozy and CouchDB
- StackOverflow: "CouchDB / MongoDB for syncing distributed MySQL application"
- StackOverflow: "Where can I find an example of a couchDB database?"
- StackOverflow: "Retrieve and decode a couchdb document using php"
- StackOverflow: "how to improve the view with map/reduce in couchdb and nodejs"
- StackOverflow: "Translate relational db into couchDB (noSQL)"
Getting involved into CouchDB
If you want to get into working on CouchDB: here's a list of beginner tickets you can get started with. These are issues around our currently ongoing Fauxton-implementation. If you have any questions or need help, don't hesitate to contact us in the couchdb-dev IRC room (#couchdb-dev) – Garren (garren) and Sue (deathbear) are happy to help. We'd appreciate having you!
New Committers and PMC Members
- Robert Kowalski (IRC nick: robertkowalski, Twitter: robinson_k) has been elected as a CouchDB committer. Welcome to the Couch, Robert!
… and also in the news
CouchDB Weekly News, March 27
Welcome to the Apache CouchDB weekly news! From today on, we’ll bring you the highlights of what happened in the CouchDB Universe each thursday.
BigCouch vs. CouchbaseA comparison between the two, around conflict solving, revision docs, nodes, replicas and hashing. Find the thread here.
Healthcare projects running on CouchDBAlbin Stigö asked for healthcare companies / projects using CouchDB. In the thread, a collection of examples and reasons why this is a good fit was discussed. CouchDB works well in healthcare due to its relative ease of configuration and deployment, easy synchronization, backups, attachment-handling and notifications and mobile-readiness. Some examples of projects / companies using CouchDB: CommCare HQ, Mobius, Neurofoundation. Find his summary and the entire thread here.
Weekly CouchDB meeting – summary
- 1.6.rc-2: discussion around blocker; will be collated and sent to the mailing list
- Marketing: there'll be a weekly CouchDB news (which you are currently reading)
- Fauxton - status: Futon will be removed as soon as Fauxton-implementation is done; following release will be marked as beta
- Merges: discussion around BigCouch and rcouch merges will also be collated and sent to the mailing list
- node-couchdb-model - a simple CouchDB abstraction for NodeJS built on nano
- On recent npm downtime and npm did to make things better: "New Powerful Machines"
- npm's search got better
- CouchDB-tools: a library of handy functions for use when working with CouchDB documents.
- PouchDB's replication just got a whole lot faster
- econfig version 0.4.2, a simple EErlang config handler using INI files, has been released
- cloudant 0.5.8 – an effortless Cloudant / CouchDB interface for Python
- Couchbase Lite 1.0 beta 3, a CouchDB-compatible embedded mobile database
- On CouchDB as event store
- CouchDB progresses as IBM acquires Cloudant
- 10 common misconceptions about Apache CouchDB
- A presentation on the state of PouchDB
… and also in the news
- "Relying on laws to keep your private information safe is like relying on a dog to guard a plate of bacon." – Stop Thinking the Government Can Fix Privacy
- "Why your previous developer was terrible; and why your current one seems so amazing"
On The CouchDB Community
Jan Lehnardt sent a link to the CouchDB firstname.lastname@example.org mailing list where Ari Najarian used CouchDB in a five part course to teach beginners how to program. It’s a great read and I invite you to visit the page.
I would like to slice out one quote from the article where Ari described the CouchDB community:“The personalities and voices in the CouchDB community are, hands down, the most helpful, generous, welcoming, insightful, ethical, principled, future-minded group of developers I’ve ever encountered in one place. As far as online communities go, you can’t find a safer, more encouraging group of advocates. These people are role models that will help beginners to understand what “open-source” can really be about: social justice, diversity, inclusion, and collaboration.”
This is the reason why I became a part of the Apache CouchDB project - because the community is so awesome.
Cloudant and IBM: Our Commitment to Apache CouchDB
IBM have announced that they are acquiring Cloudant.
Adam Kocoloski is co-founder and CTO of Cloudant as well as serving on CouchDB's Project Management Committee. And with his permission, I am re-posting an email he sent to the CouchDB developer list a few hours ago.
In his words:
"Apache CouchDB means a great deal to me, and to Cloudant as a company. Cloudant and CouchDB have grown alongside each other over the past several years in one of the more authentic vendor/community collaborations I can think of in Apache history. Today marks the next step in Cloudant’s growth as we enter into a definitive agreement to become part of IBM.
"What does this mean for CouchDB? I would not have agreed to this transaction if I had any concerns about Cloudant’s ability to continue its contributions and collaboration with Apache CouchDB. IBM has a strong track record in open source software and a productive relationship with Apache; in fact, IBM was instrumental in bringing CouchDB to the ASF many years ago. IBM is fully supportive of our efforts here, and I’m looking forward to bringing increased resources to bear in support of the project.
"CouchDB has the potential to shape the future of distributed data management and computing. 2013 was a year of tremendous progress, as we doubled our committer base and shipped no fewer than eight releases. Already in 2014 we’ve seen amazing progress on long-standing initiatives to enhance the core of the system. The timing is right — in the market and for the community — to take the next big step forward. With your help, that is exactly what we will do.
"Truly, the future of CouchDB is CouchDB."
I'd like to extend my hearty congratulations to everyone at Cloudant.
The future for CouchDB looks very interesting...
Board Report (Februrary 2014)
CouchDB submits a board report every quarter. Here's a copy of our February board report.
No releases in this time period.
Release has been blocked on a number of issues, but is actively being worked on.
- Number of the core devs met in Vienna to discuss the pending merges.
- Finalising the merge of Benoit Chesneau’s rcouch fork.
- Working on the BigCouch merge from Cloudant.
- Created a replication list to discuss specific replication topics.
- New marketing list about to be created for new marketing team.
- Confluence wiki set up, and migration being planned.
- Review Board instance set up, and discussion about review ongoing.
- Translation work going well.
- Community-provided packages added for Ubuntu Precise and upcoming Trusty release.
Including the following additions, CouchDB has 31 committers and 9 PMC members.
- Nick North
No new PMC members. Most recent PMC addition Nov 9th, 2012.
Mailing list stats:
- 151 subscribers (+20)
- 1 message since May (-1)
- 1405 subscribers (-26)
- 1086 messages since May (+280)
- 154 subscribers (+8)
- 14 messages since May (-8)
- 602 subscribers (-4)
- 1977 messages since May (+1097)
- 104 subscribers (-1)
- 2735 messages since May (+1694)
- 31 subscribers (+10)
- 207 messages since May (+104)
- 47 subscribers
- 35 messages since May
Packages for Ubuntu 12.04 Precise
I’m delighted to announce the availability of Apache CouchDB Ubuntu Precise (12.04) packages, with integrated upstart support.
These have been contributed with support from Mobius Medical Systems, LP, who use Apache CouchDB in their product Mobius3D/FX for oncology and radiology, and funded the development of this work through the Couch Firm.
This would not have been possible without the assistance of Jason DeRose (who has lead the 1.5.0 package going into the next Ubuntu Trusty release), and Noah Slater, who was surprised on reviewing the package to find so much of his original work there!
Installation should be straightforward, usual caveats around making backup before upgrading precautions apply, noting that between 1.0.1 and 1.5.0 there are a number of key changes, including the on-disk data format used by the
.couch files was upgraded. Although it should keep your dbs intact and do the right thing for your local.ini files, always have a backup - or two!
sudo apt-get install python-software-properties -y sudo add-apt-repository ppa:couchdb/stable -y sudo apt-get update -y # remove any existing couchdb sudo apt-get remove couchdb couchdb-bin couchdb-common -yf # see my shiny 1.5.0 goodness sudo apt-get install -V couchdb Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: couchdb-bin (1.5.0-0ubuntu2) couchdb-common (1.5.0-0ubuntu2) couchdb (1.5.0-0ubuntu2) … Y … # manage via upstart sudo stop couchdb couchdb stop/waiting sudo start couchdb couchdb start/running, process 3541 …
You can of course modify or duplicate the /etc/init/couchdb.conf script, to support running multiple CouchDB instances or users on the same box.
Note there's also a couchdb/dev PPA which will be used for testing and updating the next release, e.g. the upcoming 1.6.0, before switching it over to the stable branch once it's had enough eyes on it.
Posted at 12:19PM Feb 13, 2014 by dch in News | |
The State of CouchDB
This is a rough transcript of the CouchDB Conf, Vancouver Keynote.
Good morning everyone. I thank you all for coming on this fine day in Vancouver. I’m very happy to be here. My name is Jan Lehnardt and I am the Vice President of Apache CouchDB at the Apache Software Foundation, but that’s just a fancy title that means I have to do a bunch of extra work behind the scenes. I’m also a core contributor to Apache CouchDB and I am the longest active committer to the project at this point.
I started helping out with CouchDB in 2006 and that feels like a lifetime ago. We’ve come a long way, we’ve shaped the database industry in a big way, we went though a phoenix from the ashes time and came out still inspiring future generations of developers to do great things.
So it is with great honour that I get to be here on stage before you to take a look at the state of CouchDB.
I’d like to start with some numbers:
- In 2013 we added 15 committers to the project, up to a total of 30. Thats 2x the number of people regularly contributing to CouchDB!
- The year isn’t yet over, but these committers already created 3x the commits of 2012. And they have committed more than in any other year in CouchDB’s history.
- We have shipped eight releases: 1.0.4 1.1.2, 1.2.1, 1.2.2, 1.3.0, 1.3.1, 1,4.0 and 1.5.0 just this year, that is up from one(!) last year.
- thanks to our new release schedule we are getting more features to more people faster by focusing on small iterative changes forward.
- 20% more JIRA tickets and 50% more GitHub issues
We have made a lot of changes in 2012 to make 2013 a great year for CouchDB and it sure looks like we succeeded and that 2014 is only going to trump that.
I’d like to thank everyone on the team for their hard work.
We’ve just shipped CouchDB 1.5.0 last week and it comes with a few exciting new things as previews, for you to try out and play with and report any issues with back to us. And that is on top of all the regular bug fixing and other improvements.
A completely new developed admin UI, nicknamed Fauxton, that is poised to replace the much-loved, but increasingly dated Futon. I’d like to personally thank the Fauxton team: Sue “Deathbear” Lockwood, Russell “Chewbranca” Branca, Garren Smith and many more volunteers for their work as well as the company Cloudant for sponsoring a good chunk of that work. Great job everyone! Fauxton is going to be replacing Futon in one of the next few releases and will give us the foundation for the next stage of CouchDB’s life.
Plugins. While it was always possible to write plugins for CouchDB, you kind of had to be an expert in CouchDB to get started. We believe that writing plugins is a great gateway drug to getting more people to hack on CouchDB proper, so we made it simpler to build plugins and to install plugins into a running instance of CouchDB. It is still very early days, we don’t even have a plugin registry yet, but we are surely excited about the prospects of installing GeoCouch with a single click of a button in Futon or Fauxton. We also included a template plugin that you can easily extend and make your own, along with a guide to get you started.
The plugins effort also supports a larger trend we are starting to follow with the CouchDB core codebase: decide on a well-defined core set of functionality and delegate more esoteric things to a rich plugin system That means we no longer have to decline the inclusion of useful code like we’ve done in the past, because it wasn’t applicable to the majority of CouchDB users. Now we can support fringe features and plugins that are only useful to a few of our users, but who really need them.
All this however is not to blindly follow the latest trends, but to encourage the community to take on the query server and introduce much needed improvements. The current view server is a tricky mix of JS, Erlang and C and we are not seeing many people daring to jump into that. In a second step we expect these improvements to trickle down to the other query server implementations like Python or PHP and make things better for everyone. For now this is also a developer preview and we are inviting all Node.js developers to join us and build a a better query server.
- Docs landed in 1.4.0, but 1.5.0 is seeing a major update to the now built-in documentation system. With major thanks to Alexander Shorin, Dirkjan Ochtmann and Dave Cottlehuber who were instrumental in that effort, CouchDB now has “really good docs” instead of a “really crappy wiki”, that are shipped with every release and are integrated with Futon and Fauxton.
The immediate next area of focus for the CouchDB project is the merging of two forks: BigCouch and rcouch.
BigCouch is a Dynamo implementation on top of CouchDB that manages a cluster of machines and makes them look as a single one, adding performance improvements and fault tolerance to a CouchDB installation. This is a major step in CouchDB’s evolution as it was designed for such a system from the start, but the core project never included a way to use and manage a cluster. Cloudant have donated their BigCouch codebase to the Apache project already and we are working on an integration.
rcouch is a what I would call a “future port” of CouchDB by longtime committer and contributor Benoit Chesneau. rcouch looks like CouchDB would, if we started fresh today with a modern architecture. Together with BigCouch’s improvements, this will thoroughly modernise CouchDB’s codebase to the latest state of the art of Erlang projects. rcouch also includes a good number of nifty features that make a great addition to CouchDB’s core feature set and some great plugins.
Finally, we’ve just started an effort to set up infrastructure and called for volunteers to translate the CouchDB documentation and admin interface into all major languages. Driven by Andy Wenk from Hamburg, we already have a handful of people signed up to help with translations for a number of different languages.
This is going to keep us busy for a bit and we are looking forward to ship some great releases with these features.
2013 was a phenomenal year for Apache CouchDB. 2014 is poised to be even greater, there are more people than ever pushing CouchDB forward and there is plenty of stuff to do and hopefully, we get to shape some more of the future of computing.
CouchDB Conf Videos
Videos from CouchDB Conf are now available.
- CouchDB everywhere with PouchDB
- Dale Harvey, Mozilla
- CouchDB Writ Large
- Mike Miller, Cloudant
- In this talk, Mike Miller describes how CouchDB fits into Cloudant's software stack as one of many open source projects the company uses to run distributed database clusters around the world.
- Replication, FTW!
- Benjamin Young, Cloudant
- Jan's "call to arms" earlier this year made replication the central focus of Apache CouchDB. Replication is the feature that makes CouchDB so distinctive in any marketplace (open or otherwise) and sets it apart from the NoSQL pack. We'll take a look at the various replicating databases, how we can extend the reach of replication, and how we can help others find their way into this world of JSON juggling.
- 10 Common Misconceptions about CouchDB
- Joan Touzet, Atypical
- I've consulted with hundreds of people who use CouchDB, and the same sorts of questions keep coming up. Come to this talk if you want to know more about the kinds of mistakes many users make when thinking about how to use the database in their application. I'll talk a bit about the "rough edges" of CouchDB, and how to work them to your advantage.
- Experiences using CouchDB inside Microsoft's Windows Azure team
- Will Perry and Brian Benz
- Will Perry, a developer on the Windows Azure team, is part of a small team at Microsoft that has been using CouchDB extensively on an internal project. In this talk, he'll share motivation for using CouchDB, experiences using and running CouchDB in Azure, design and architectural patterns the team used and a quick run-down of some of the things they love and struggle with on a team more used to relational SQL DBs.
- Deep Dive into a Shallow Write Pool
- Jason Johnson, IBM SoftLayer
- When storing data safely, disk I/O is almost always a major bottleneck. In this talk, we'll examine some of CouchDB's write patterns and explore how we can tune underlying storage media to complement those patterns.
- Say Hello to Fauxton, the New Web Dashboard for CouchDB
- Russell Branca, Cloudant
- In this talk, Cloudant Engineer Russell Branca discusses the new Web dashboard that will soon be released for Apache CouchDB.
- Making CouchDB Plugins
- Jason Smith, Nodejitsu
- CouchDB now has plugin support! This talk explains the design of the plugin system and demonstrates extending CouchDB by building example plugins. From "my first Erlang project" to major CouchDB changes, plugins have something for everybody.
- Personal Web Apps
- Nathan Vander Wilt, freelance product developer
- CouchDB is great at keeping track of all sorts of personal data — everything from notes and contacts, to sharing a live stream of photos from a balloon 250 feet above a construction site. I'll demo of some of the more interesting apps I've been building for my "personal cloud" and talk about the CouchDB features which make them easy. We'll also explore what CouchDB *doesn't* do and how to get those things done anyway.
- How CouchDB is powering the next-generation cloud storage
- Sascha Reuter, doctape / tape.io GmbH
- This talk will give you an overview on how we leverage CouchDB to be the heart of our cloud-storage service. It will cover a whole bunch of fascinating real-life experiences, as well as some nifty tricks on how to unleash CouchDB's full potential in production. I'll show off how the mighty changes-stream helps us interconnecting different components of our service, as well as pushing realtime UI updates & notifications to our users. I'll also tell you about things to avoid, to guarantee full performance, data consistency and high availability in production. To the end, I'll show off how we use CouchDB even as our global queue for processing & conversion jobs and why this is actually a pretty good idea.
- Open Data with Couch, Pouch, and Cloudant: Liberating the Laws of Massachusetts
- Calvin Metcalf
- As a member of Code for Boston, the Boston Code for America Brigade I scrapped the complete laws of Massachusetts to JSON, put them into a CouchDB database on Cloudant, and then used Cloudant to implement full-text search and PouchDB to make a demo app for people to browse the laws. Learn how couch can help distribute open data when that data is too big to just dump into github.
- War stories from npmjs.org
- Charlie Robbins & Jason Smith, Nodejitsu
Check out the full playlist on YouTube.
Thank you to Cloudant for recording and making these videos available.
Board Report (November 2013)
CouchDB submits a board report every quarter. Here's a copy of our November board report.
- Finalising the merge of Benoit Chesneau’s rcouch fork.
- Preparation of CouchCamp Vienna, a community run weekend hackathon.
- Successful run of CouchDB Conf Vancouver with ~80 attendees, 13 speakers. Videos will be available.
- Created an I18N list and translation team to drive translation efforts.
- Passed a proposal on using Influitive to boost our community engagement.
Including the following additions, CouchDB has 29 committers and 9 PMC members.
No new PMC members. Most recent PMC addition Nov 9th, 2012.
Mailing list stats:
- 131 subscribers (+37)
- 2 message since August (+1)
- 1431 subscribers (-10)
- 806 messages since August (+310)
- 146 subscribers (+25)
- 22 messages since August (15)
- 606 subscribers (+7)
- 880 messages since August (-130)
- 105 subscribers (-2)
- 1041 messages since August (+344)
- 21 subscribers (+21)
- 103 messages since August (+103)
CouchDB will go multilingual - looking for contributors!
The Apache CouchDB project is pleased to announce the creation of a localization team. The email@example.com mailing list has been set up to cover everything l10n- and i18n-related in Apache CouchDB.
The first steps will be to set up some tools to enable easy translation of the documentation and (at a later point) the administration interface (Futon/Fauxton). We are looking for people who want to help out. Would you like to read the CouchDB documentation in another language, and have some time to spare? Please help out! Bonus points if you have experience with translation or localization-related tools and best practices.
We’re just getting started: we have some ideas on how to get started, but we need more help. If you’re interested, please subscribe to firstname.lastname@example.org and let us know!
Cheers from the Apache CouchDB I10n team
Apache CouchDB 1.5.0 Released
Apache CouchDB 1.5.0 has been released and is available for download.[Read More]
CouchDB Conf is Next Week
It’s almost time for CouchDB Conf, held in Vancouver on November the 13th. That’s the day before Cascadia JS. If you don’t have your ticket to CouchDB Conf yet, there’s still time secure a place. Come meet the community, and learn about the future of CouchDB. The ticket includes a reception at Cascadia JS, which starts the day after CouchDB Conf.
The conference will include sessions that span Apache CouchDB and related technologies — covering everything from getting started to advanced features as well as CouchDB internals, application development, and best practices. Attendees will also get updates on other projects in the community such as PouchDB, a Web browser-based database capable of replicating data with Apache CouchDB and other compatible databases. Featured speakers include Jan Lehnardt, Hoodie; Joan Touzet, Atypical; Brian Benz, Microsoft; and Dale Harvey, Mozilla.
- Apache CouchDB is the database that replicates. CouchDB-style replication is now supported in a wide range of databases that live in browsers (PouchDB), mobile (TouchDB), and the cloud. Many of the talks will cover various aspects of using replication and modeling your data to work with it.
- Fauxton is the new Futon, CouchDB's Web-based administration console. Fauxton brings a fresh, modular approach to UI for Apache CouchDB. It is available at /_fauxton in Apache CouchDB 1.5, and will eventually become the new /_utils UI.
Apache CouchDB Conf is the event to attend to expand knowledge, meet project committers and contributors, and find out where Apache CouchDB is headed.
Visit the conference website for more information.
We hope to see you there!
Registration Is Open for CouchDB Conf, Nov 13th
CouchDB Conf is a one-day conference in Vancouver, Canada on November 13, 2013. I am excited to let you know that registration is now open! Early bird tickets are $150, and are available until October 13th. (So get yours quick!)
CouchDB Conf will convene 200 developers and technology evangelists. They will come together to learn about CouchDB, related technologies, and new projects in the community. The agenda will cover everything from getting started to advanced features and internals, app development, and best practices.
We expect the conference to sell out quickly, so register today to avoid disappointment!
Apache CouchDB 1.4.0 Released
Apache CouchDB 1.4.0 has been released and is available for download.
Grab your copy here:
Pre-built packages for Windows and OS X are available.
CouchDB 1.4.0 is a feature release, and was originally published on 2013-09-03.
These release notes are based on the changelog.
- We now support Erlang/OTP R16B and R16B01; the minimum required version is R14B.
- User document role values must now be strings. Other types of values will be refused when saving the user document.
- COUCHDB-1684: Support for server-wide changes feed reporting on creation, updates and deletion of databases. #917d8988
- COUCHDB-1139: it’s possible to apply list functions to _all_docs view. #54fd258e
- Automatic loading of CouchDB plugins. #3fab6bb5
- Allow storing pre-hashed admin passwords via _config API. #c98ba561
- COUCHDB-1772: Prevent invalid JSON output when using all_or_nothing _bulk_docs API. #dfd39d57
- Add a configurable whitelist of user document properties. #8d7ab8b1
- COUCHDB-1852: Support Last-Event-ID header in EventSource changes feeds. #dfd2199a
- Much improved documentation, including an expanded description of validate_doc_update functions (commit:ef9ac469) and a description of how CouchDB handles JSON number values (#bbd93f77).
- COUCHDB-1632: Ignore epilogues in multipart/related MIME attachments. #2b4ab67a
- Split up replicator_db tests into multiple independent tests.