Query Performance

Environment


  1. Single node
  2. 4 x Intel Xeon E5-4610 (48 cores)
  3. 256GB RAM
  4. 2 x SSD
  5. Ubuntu 13.04
  6. Couchbase Server 2.5.1

Environment


  1. Four nodes
  2. 2 x Intel Xeon E5-2630 (24 cores)
  3. 64GB RAM
  4. 1 x SSD
  5. CentOS 6.5
  6. Couchbase Server 2.5.1

non-dgm workload


  1. 20M documents
  2. 2KB average size
  3. up to 2MB outliers
  4. 3-4 views
  5. 100 updates/sec
  6. 100 queries/sec

dgm workload


  1. 110M documents
  2. 2KB average size
  3. up to 2MB outliers
  4. 3-4 views
  5. 100 updates/sec
  6. 100 queries/sec

documents


{
  "name": {"f": {"f": {"f": "f42ddd a8fec8"}}},
  "email": {"f": {"f": "531f45@cee8ae.com"}}
  "city": {"f": {"f": "858033"}},
  "county": {"f": {"f": "e10d8c"}},
  "street": {"f": {"f": "1c2c6b46"}},
  "realm": {"f": "ca023c"},
  "country": {"f": "e78404"},
  "coins": {"f": 256.07},
  "state": {"f": "OH"},
  "full_state": {"f": "Connecticut"},
  "achievements": [7, 87, 219, 231, 83],
  "body": "f42ddda8fec8531f45cee8ae858033ca023c6...",
  "gmtime": [1973, 4, 3, 0, 0, 0, 1, 93, 0],
  "year": 1995,
  "category": 1,
}
https://github.com/couchbaselabs/spring#documents-specification

basic queries


SELECT category
FROM %s
WHERE city.f.f = "%s"
LIMIT 20

RANGE queries


SELECT street
FROM %s
WHERE year = %d AND coins.f > %f
LIMIT 20

group/aggregation


SELECT SUM(coins.f), AVG(coins.f)
FROM %s
WHERE state.f = "%s" and year = %d
GROUP BY state.f, year
LIMIT 20

multiple emitted fields


SELECT street.f.f AS _street, name.f.f.f AS _name, email.f.f AS _email, achievements[0] AS achievement, 2*coins.f AS _coins
FROM %s
WHERE county.f.f = "%s"
LIMIT 20

large emitted fields


SELECT body
FROM %s
WHERE realm.f = "%s"
LIMIT 20

Couchbase Layout

mongodb layout

results




http://bit.ly/q-perf

Competitive benchmarking...



Query Performace

By Pavel Paulau

Query Performace

  • 240