Uploaded image for project: 'CouchDB'
  1. CouchDB
  2. COUCHDB-3409

CouchDB has intermittent 30sec delays

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Not A Bug
    • None
    • None
    • HTTP Interface
    • None

    Description

      CouchDB has intermittent 30 delays processing requests when CouchDB is installed in a docker image. This occurs for PUT, POST and GET operations.

      The following is a shell script used to replicate the error:
      (the database insert_test was created manually)

      Problem usually occurs after 100 to 300 inserts during testing.

      --------------------------
      #!/bin/bash
      for i in

      {1..500}

      do
      echo "Test insert $i"
      curl -H 'Content-Type: application/json' \
      -X POST http://127.0.0.1:15984/insert_test \
      -d '

      {"name": "marble"}

      '
      done
      --------------------------

      The following is an extract of the log showing a 30 second delay on a POST operation.

      [notice] 2017-05-03T20:46:29.549696Z nonode@nohost <0.17192.22> de7d93ef52 127.0.0.1:15984 10.0.2.2 undefined POST /connecttest 201 ok 4
      [notice] 2017-05-03T20:47:00.397842Z nonode@nohost <0.17198.22> 8d31c7ad19 127.0.0.1:15984 10.0.2.2 undefined POST /connecttest 201 ok 30838
      [notice] 2017-05-03T20:47:00.414558Z nonode@nohost <0.17808.22> f75a66f6cb 127.0.0.1:15984 10.0.2.2 undefined POST /connecttest 201 ok 3
      [notice] 2017-05-03T20:47:00.437651Z nonode@nohost <0.17809.22> 0c53e2bbcf 127.0.0.1:15984 10.0.2.2 undefined POST /connecttest 201 ok 13

      The following is the default.ini used:
      -----------------------------------------------
      ; CouchDB Configuration Settings

      ; Custom settings should be made in this file. They will override settings
      ; in default.ini, but unlike changes made to default.ini, this file won't be
      ; overwritten on server upgrade.

      [chttpd]
      bind_address = 0.0.0.0

      [couchdb]
      ; Specify the location of the database in container.
      ; Optionally, these directories can be mounted in the host via docker.
      database_dir = /opt/couchdb/data/
      view_index_dir = /opt/couchdb/data/
      uri_file = /opt/couchdb/data/couch.uri

      ; only allow the admin user to connect
      ; Uncomment the following statement to enable admin user security.
      ; default_security = admin_only

      ; allow delayed commits since peer manages savepoints and flushing to disk
      delayed_commits = true

      [cluster]
      ; peer maintains a single replica
      n = 1

      ; adjust q to set the level of parallelism locally
      ; recommended to have no more than 10 million documents/shard (q)
      ; for 100 million documents, q=10 – at a minimum
      q = 8

      [log]
      writer = file
      file = /opt/couchdb/logs/couchdb.log
      level = info

      ; Uncomment the following two statements to enable admin user security.
      ; [httpd]
      ; www-authenticate = Basic realm="administrator"

      [couch_httpd_auth]
      ; Uncomment the following statement to enable admin user security.
      ; require_valid_user = true
      iterations = 1000 ; iterations for password hashing

      ; Uncomment the following two statements to enable admin user security.
      ; [admins]
      ; admin = admin

      [attachments]
      compressible_types = text/*, application/javascript, application/json, application/xml, application/octet-stream
      -----------------------------------------------

      Attachments

        Activity

          People

            Unassigned Unassigned
            chris.elder Chris Elder
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: