30+ TOP Couchdb Interview Questions and Answers
1) What is CouchDB?
CouchDB is a document typed database server which can be accessed through RESTful JSON API. It is a schema free and Ad-hoc database with a flat address space.
2) How it is different from other databases?
It is not a relational database.
It is not a object oriented database rather it is meant to function as a seamless persistence layer for an OO programming language.
3) What language is CouchDB written in?
Early work on CouchDB was started in C++ programming language but soon replaced by Erlang OTP platform. Erlang is a functional programming language with an emphasis on fault tolerance.
4) Enlist the main features of CouchDB.
Built for Offline
5) Describe CouchDB Kit.
It is designed for Python application to access and manage CouchDB. It allows to manage CouchDB server, database, doc management and view access.
6) What is ETL ?
ETL stands for Extracting, Transforming and Loading of data from any system to the destination. It consist of 3 steps for data integration process:
Extracting: It is the process in which first we locate the data and then removing source file.
Transforming: It is the process of transporting the file to the required target.
Loading: Loading the file in the target system in the format applicable.
8) How can we distribute load across multiple nodes?
We can distribute load by using a Http proxy like nginx. Firstly, all the GET loads spread across the nodes, then it directs all the PUT, POST & DELETE to a master node.
9) What is fact? What are the types of facts?
Fact is described as a central component of a multi-dimensional model which analyse all the measures. Types of facts are:
10) What is Cubes and OLAP Cubes?
Cubes are data processing unit which provides multi-dimensional analysis. It consist of fact tables and dimensions from the data warehouse. OLAP stand for Online Analytics Processing, OLAP Cubes is used for reporting purpose that stores large amount of data in multi-dimensional form.
11) What platforms does CouchDB supported?
It supports mostly all the POSIX platform such as GNU/Linux also, OS X (Apple inc.).
Windows is not initially supported but now we can install in windows through two methods:
Installation from Binaries
Installation from Sources
12) Give the limitation of Views.
Views cannot update documents or database as they are always Read Only.
13) Write the syntax to obtain list of the design document?
14) Why CouchDB not use Mnesia?
It does not use due to following reasons:
Mnesia has storage limitation of 2 gig per file.
It requires validation and fixup cycle after power failure.
In Mnesia replication is effective for clustering but not for disconnected, distributed edits.
15) Write the code for Replication?
POST /_replicate with a post body of
17) Erlang was slow in adapting 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.
18) What does IBM’s involvement mean for CouchDB and the community?
The main consequences of IBM’s involvement are:
The code is now being apache licensed, instead of GPL.
Damien is going to be contributing much more time.
19) What is the use of CouchDB?
CouchDB allows you to write a client side application that connect directly to the Couch without the need for a server side middle layer. It also reduces development time.
20) What does COUCH means in CouchDB?
It’s an acronym,Cluster of Unreliable Commodity Hardware. It’s acronym defines the goals of massive scalability and high reliability on fault-prone hardware.
21) How is PouchDB different from CouchDB?
PouchDB is a CouchDB client, due to which we can easily switch between a local database or an online CouchDB instance without changing any of the application’s code.
Some of the differences are:
View Collation: CouchDB uses ICU to order keys in a view query whereas in PouchDB keys are in ASCII ordered.
View Offset: CouchDB returns an offset property in the view results. In PouchDB, offset just mirrors the skip parameter rather than returning a true offset.
22) How to use transactions with CouchDB?
CouchDB uses an Optimistic concurrency model. This model allows to send a document version along with the update, and CouchDB rejects the change if the current document version doesn’t match with the sent document.
23) Enlist basics of CouchDB?
All the Items stored in the database is documents.
Each documents has units called, fields , and fields are key and value pair.
Each document has an unique id to identify them “_id” being the key and the value of each document must be unique.
Database operations are done through REST Style http requests.
CouchDb’s responses are in JSON format etc.
24) How can we connect 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 similar to HTTP.
25) How can we connect to remote CouchDB?
On the 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 we can connect to the remote CouchDB through localhost:5984/
26) Enlist different HTTP request format.
27) What is the use of CouchDB?
CouchDB allows you to write a client side application that talks directly to the Couch without the need for a server side middle layer, significantly reducing development time. With CouchDB, you can easily handle demand by adding more replication nodes with ease. CouchDB allows you to replicate the database to your client and with filters you could even replicate that specific user’s data.
Having the database stored locally means your client side application can run with almost no latency. CouchDB will handle the replication to the cloud for you. Your users could access their invoices on their mobile phone and make changes with no noticeable latency, all whilst being offline. When a connection is present and usable, CouchDB will automatically replicate those changes to your cloud CouchDB.
CouchDB is a database designed to run on the internet of today for today’s desktop-like applications and the connected devices through which we access the internet.
28) How is PouchDB different from CouchDB?
PouchDB is also a CouchDB client, and you should be able to switch between a local database or an online CouchDB instance without changing any of your application’s code.
However, there are some minor differences to note:
View Collation – CouchDB uses ICU to order keys in a view query; in PouchDB they are ASCII ordered.
View Offset – CouchDB returns an offset property in the view results. In PouchDB, offset just mirrors the skip parameter rather than returning a true offset.
29) How do you compare MongoDB, CouchDB and CouchBase?
MongoDB and CouchDB are document oriented database.
MongoDB and CouchDB are the most typical representative of the open source NoSQL database.
They have nothing in common other than are stored in the document outside.
MongoDB and CouchDB, the data model interface, object storage and replication methods have many different.
30) Erlang Has Been Slow To Adopt Unicode. Is Unicode Or Utf8 A Problem With Couchdb?
CouchDB uses Erlang binaries internally. All data coming to CouchDB must be UTF8 encoded.