我在某些原型应用程序上一直使用CouchDB,它非常出色,易于使用且非常快捷。我想知道是否有人在生产中使用过它,并对它的可靠性,性能是否适合运营管理等有任何看法?我正在考虑使用它来支持服务层并利用其复制功能。
任何评论/经验都将受到欢迎。
解决方案我已经在一些内部小型应用程序中使用了CouchDB-它非常稳定,并且没有严重的抱怨。除了这些,还有一些小问题-
1)可以同步数据库,但不能同步节点。也就是说,如果您有四个服务器和二十个数据库,则必须指定每个服务器以及每个数据库进行同步。
2)由于数据库只是附加的,因此具有大量活动的数据库会很快变得非常大。压缩可以解决此问题,但速度并不很快,尤其是在大型(例如20 GB)数据库上。周末安排紧凑型解决了这个问题,但是对于高可用性应用程序来说,这样做可能不是那么可行。
3)Javascript是事实上的视图语言。不好宣传的是,由于CouchDB是用Erlang编写的,因此它还支持Erlang视图,因为它们是本地视图,因此速度更快。对于在视图中执行大量操作的应用程序,Erlang可能更有意义。
撇开这些小问题,我会全力推荐它。
I have been using CouchDB on some prototype applications and it has been brilliant, very easy to use and extremely quick. I was wondering if anyone has been using it in production and have any views on it's reliability, performance suitability for operational management etc ?? I am considering using it to support a service layer and would make use of its replication functionality.
Any comments/experiences would be most welcome.
解决方案I've used CouchDB for a few small in-house applications - it's been very stable and I've had no serious complaints. Setting that aside, a few small gripes -
1) Databases can be synchronized, but not nodes. That is, if you have four servers and twenty databases, you have to specify each server, and each database to synchronize. A minor gripe, but I prefer less management to more.
2) Since databases are append only, a database with a bunch of activity gets really big really quickly. Compacting fixes this, but isn't exactly fast, especially on big (e.g. 20 gigabytes) database. Scheduling compact for the weekends solved this, but doing that is probably less of an option for high availability applications.
3) Javascript is the de facto view language. What is not well advertised is that since CouchDB is written in Erlang, it also supports Erlang views, which are faster as they are "native". For applications doing a lot of operations in views, Erlang probably makes more sense.
Setting those minor issues aside, I'd wholeheartedly recommend it.
更多推荐
CouchDB在生产中
发布评论