CouchDB



21. What Platforms are Supported?  

Most POSIX systems,this includes GNU/Linux and OS X.

Windows is not officially supported but it should work,please let us know.



22. How do I do Sequences?  

Where is my AUTO_INCREMENT?! With replication sequences are hard to realize. Sequences are often used to ensure unique identifiers for each row in a database table.CouchDB generates unique ids from its own and you can specify your own as well, so you don't really need a sequence here. If you use a sequence for something else,you might find a way to express in CouchDB in another way.



23. How do I use Replication?  

POST/_replicate

with a post body of

{"source":"$source_database","target":"$target_database"}

where $source_database and $target_database can be the names of local database or full URIs of remote databases.Both databases need to be created before they can be replicated from or to.


24. How do I review conflicts occured during replication?  

Use a view like this:

map:function(doc) {if(doc._conflicts){emit(null,null);}}



25. Can I talk to CouchDB without going through the HTTP API?  

CouchDB’s data model and internal API map the REST/HTTP model so well that any other API would basically reinvent some flavour of HTTP.However,there is a plan to refactor CouchDB’s internals so as to provide a documented Erlang API.



26. Erlang has been slow to adopt Unicode.Is Unicode or UTF-8 a problem with CouchDB?  

CouchDB uses Erlang binaries internally.All data coming to CouchDB must be UTF-8 encoded.



27. I use CouchDB on a remote server and I don't want to listen on a public port for security reasons.Is there a way to connect to it from my local machine or can I still use Futon with it?  

On you local machine,set up an ssh tunnel to your server and tell it to forward requests to the local port 5984 to the remote server's port 5984:

$ ssh -L5984:127.0.0.1:5984 ssh.example.com

Now you can connect to the remote CouchDB through http://localhost:5984/


28. How fast are CouchDB Views?  

It would be quite hard to give out any numbers that make much sense.From the architecture points of a views, a view on a table is much like a (multi-column) index on a table in an RDBMS that just performs a quick look-up.So this theoretically should be pretty quick.

The major advantage of the architecture is, however, that it is designed for high traffic.No locking occurs in the storage module (MVCC and all that)allowing any number of parallel readers as well as serialized writes.With replication, you can even set up multiple machines for a horizontal scale-out and data partitioning(in the future) will let you cope with huge volumes of data.



29. Creating my view index takes ages,WTF?  

A couple of reasons:
  1. Your reduce function is not reducing the input data to a small enough output.See Introduction_to_CouchDB_views#reduce_functions for more details.
  2. If you have a lot of documents or or lots of large documents(oing into the millions and Gigabytes),the first time a view index is created just takes the time it is needed to run through all documents.
  3. If you use the emit()-function in your view with doc as the second parameter you effectively copy your entire data into the view index.This takes a lot of time.Consider rewriting your emit() call to emit(key,null); and query the view with the ? include_docs=true parameter to get all doc's data with the view without having to copy the data into the view index.
  4. You are using Erlang release R11B(or 5.5.x). Update to at least R12B-3 (or 5.6.3).


30. Can Views update documents or databases?  

No,Views are already read-only to databases and their documents.



31. Where are the CouchDB logfiles located?  

  • For a default linux/unix installation the logfiles are located here:
    /usr/local/var/log/couchdb/couch.log
  • This is set in the default.ini file located here:
    /etc/couchdb/default.ini
  • If you've installed from source and are running couchdb in dev mode the logfiles are located here:
    YOUR-COUCHDB-SOURCE-DIRECTORY/tmp/log/couch.log


32. How can I get a list of design documents in a database?  

Query the_all_docs view with startkey="_design/"&endkey="_design0".



33. When will CouchDB add per-document auth?  

Not just yet.This topic is an ongoing discussion.The current situation is described in this post on the developer mailing list.
Also,see this link collection on auth*topics for more information: Link_Collection_Authentication_and_Authorization



.Net Interview Question

PHP Interview Question

Java Interview Question

AngularJS Interview Questions