The new version of Apache CouchDB 3.0 has already been released and these are its changes

couchDB-logo-1

The launch of the new version of Apache CouchDB 3.0, which is a distributed document-oriented database, belonging to the NoSQL systems class. CouchDB is characterized by storing data in an ordered list format and enables partial data replication between multiple databases in master-master mode with simultaneous detection and resolution of conflict situations.

Each server stores its own local data set, synchronized with other servers, They can go offline and periodically replicate the changes. In particular, this feature makes CouchDB an attractive solution for organizing the synchronization of program settings between different computers.

CouchDB-based solutions have been implemented by companies like BBC, Apple, and CERN.

CouchDB queries and data indexing can be done according to the MapReduce paradigm using JavaScript to generate the data sampling logic.

The core of the system is written in the Erlang language, which is optimized for creating distributed systems serving many parallel requests. The view server is written in C language and is based on the Mozilla project's JavaScript engine.

Access to the database is done through the HTTP protocol using the RESTful JSON API, which allows you to access data, even from web applications running in the browser.

A document that has a unique identifier, a version, and that contains an arbitrary set of named fields in key / value format acts as a data storage unit. P

To organize a pseudostructured data set from arbitrary documents (aggregation and sampling), the concept of forming views is used, which are defined using JavaScript. In JavaScript, you can also define functions to validate data when adding new documents within a specific view.

What's new in Apache CouchDB 3.0

In this new version enhanced protection is highlighted in default settings. At startup, the admin user should now be defined, without which the server will end its operation with an error.

To access the calls to «/ _all_dbs» you must now have administrator rights and all databases are created by default only for the administrator user (they can be changed through the "_security" object), in addition to being forbidden by default to edit objects in the _users database.

Added the ability to create segmented databases User-defined (partitioned), allowing you to define your own rules for distributing documents by segments (range of fragments). Have been added special optimizations for segmented databases to views and indexes.

We can also find the implementation of automatic separation during segmentation (fragmentation). In the database, it is now possible to redistribute data by segment, taking into account the increase in the q factor used to determine the level of disaggregation.

The subsystem ken has been added for automatic background indexing and keep secondary indexes up to date without explicitly initiating operations to build them.

The maximum document size is reduced to 8 MB, which can lead to data replication issues from older servers after upgrading to CouchDB 3.0. To increase the limit, you can use the "[couchdb] max_document_size" setting.

Of the other changes that are mentioned:

  • Performance optimization of the couch_server process.
  • Significantly improved installer for the Windows platform.
  • The smoosh process used for automatic database packaging has been completely rewritten.
  • A new I / O queue subsystem is proposed, which is used to change the I / O priority for certain operations.
  • Regression testing system implemented.
  • Official support has been added for the arm64v8 (aarch64) and ppc64le (ppc64el) platforms.
  • Added support for linking to the SpiderMonkey 1.8.5 JavaScript engine (ESR branch of Firefox 60) with improved support for ES5, ES6, and ES2016 +.
  • The framework includes a Lucene-based Dreyfus search engine, which can greatly simplify the implementation of a CouchDB-based search engine.
  • Added backend to login using systemd-journald.

Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.

  1.   Terry99 said

    Interesting molto. Io gestisco tre server CouchDB and ho appena migrato alla 3.0.
    To manage automatism and script vari, I use powershell, if it is from Windows and from Linux with the PSCouchDB module (https://github.com/MatteoGuadrini/PSCouchDB) which facilitates the management.
    I use it sopprattutto for the Import / Export function for the backup of the database, and also for generating a report.
    CouchDB is davvero splendid!