asterixdb

Clone Tools
  • last updated 18 mins ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
[ASTERIXDB-2540][STO] Optimize Storage Disk I/O

- user model changes: yes. Add a new storage option:

storage.disk.force.bytes (default 16MB),

- storage format changes: no.

- interface changes: yes.

Introduced IPageWriteCallback to LSM indexes

Details:

- Bypass all queuing (from BufferCache and IOManager) for disk writes.

This queuing is unnecessary but destroys fairness among multiple

writers.

- Introduce IPageWriteCallback to control the behavior of disk page

writes. Currently, this interface is used to perform disk forces

regularly for each writer thread.

Change-Id: I1f618dc7c186623e860239b4d97640fe3528e75b

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3285

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Michael Blow <mblow@apache.org>

  1. … 128 more files in changeset.
[ASTERIXDB-2631][COMP][RT] Report count of all warnings

- user model changes: no

- storage format changes: no

- interface changes: yes

Details:

Currently, only runtime warnings are counted. Include

parser & compile-time warnings, as well.

- removed the warn limit as a compiler option and made it

a request parameter.

- the warning collector of the parser collects all warnings

but allow pulling warnings up to a maximum desired.

- the warning collector of the compiler/executor collects up

to the request max-warnings and allow pulling up to a max desired.

- servlets collect from the parser and query compiler &

executor up to the request max-warnings.

Change-Id: Ia7e559313d32a8ba6f450f254a3a7b4b1e662a50

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3564

Reviewed-by: Till Westmann <tillw@apache.org>

Tested-by: Till Westmann <tillw@apache.org>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

  1. … 76 more files in changeset.
[ASTERIXDB-2634][COMP][RT] String functions to return NULL on mismatch

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

Make string functions return NULL on mismatch instead of raising

an exception and issue a warning.

- consolitated ExceptionUtil from org.apache.asterix.runtime.exceptions

into org.apache.asterix.om.exceptions.

- AbstractStringTypeComputer does not check arguments type now

and does not throw mismatch exception.

Change-Id: I51db8ae6ba301757c45c41cfd02bd2b083436970

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3562

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Till Westmann <tillw@apache.org>

  1. … 30 more files in changeset.
[ASTERIXDB-2532][RT] per-operator profiling

Enables profiling in queries at the operator-level when the analyze

variable is set in a query.

Change-Id: Ie16f3901ae5b32920d8552d5fd1ec8bb6e2ec8ae

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3226

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Till Westmann <tillw@apache.org>

  1. … 46 more files in changeset.
Merge commit '82b067c' from stabilization-f69489

Change-Id: I4891035d517387148e86027a733afa4a21a5c75a

[ASTERIXDB-2633][FUN] Fix LIKE to regex translation

- user model changes: no

- storage format changes: no

- interface changes: no

Change-Id: I6138f62fdcd60bcc641f662d1fdb05b46dafbebf

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3558

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Merge commit '8930f0d' from stabilization-f69489

Change-Id: I64cf862bc5ebe19a24acbccf821f68556699222e

  1. … 9 more files in changeset.
[NO ISSUE][ING][EXT] Handle filters on meta() fields for feeds

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

This fix is to handle filters on meta() fields where the feed name

is not supplied as an arguement to the meta() when connecting the feed.

Both of these statement should work:

CONNECT FEED ds_feed TO DATASET ds WHERE meta(ds_feed).id LIKE "%WEB%"

CONNECT FEED ds_feed TO DATASET ds WHERE meta().id LIKE "%WEB%"

Change-Id: I1dbf40525601584efa29eb3adf4ba41062ebe53a

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3557

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

    • -0
    • +14
    /asterixdb/asterix-app/data/csv/people2.csv
  1. … 20 more files in changeset.
[ASTERIXDB-2631][COMP][RT] Limit number of reported warnings

- user model changes: no

- storage format changes: no

- interface changes: yes

Details:

Limit number of reported warnings.

- added a new compiler property "COMPILER.RUNTIME.WARNINGS"

with default value set to 0.

- updated Stat class to have a field for the count of runtime

warnings.

- updated few classes to propagate the warnings limit number

to Hyracks Task class.

- added new Option to parse unsigned long values.

- TaskProfile has a field for the count.

- updated TestExecutor to allow specifying parameters in

the body of the POST method.

Change-Id: Ie8756f1b9dcb7bbce92bd77692490fbada9a2482

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3535

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

  1. … 43 more files in changeset.
[NO ISSUE][COMP] Remove listify() when iterating over aggregate

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Optimizer must remove listify() when iterating

over an aggregate function that returns a list

Change-Id: I7a8919595be7e4a44a5816ac7f281842d03ecc1f

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3556

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

[NO ISSUE][RT] Add Thread-Based Stats Collector

- user model changes: no

- storage format changes: no

- interface changes: yes

Details:

- Add infra to allow collecting thread-based stats during

runtime for any thread that belongs to a task.

- Collect number of pinned pages per thread and report it

in the TaskProfile.

- Aggregate pinned pages counters from all job tasks and

report it as diskIoCount in the metrics field in the json

response. The plan is to move this stats to the profile

field when it is introduced.

- Collecting pinned pages stats is currently enabled by

default for any job with IndexSearchOperatorNodePushable.

The plan is to allow enabling/disabling as part of the

job profiling change.

- Add test case for diskIoCount metric.

- Remove unused IndexSearchOperatorNodePushable constructor.

Change-Id: I44dfcedcadb3d0f48815b521e7d495e473b02e3d

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3555

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Reviewed-by: Till Westmann <tillw@apache.org>

  1. … 13 more files in changeset.
[NO ISSUE][COMP] Increase memory budget for window operator

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Increase default memory budget for a window operator

from 4MB to 32MB

Change-Id: I6902d5e730232892f22e36598389309e8bc909c3

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3551

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

[NO ISSUE][COMP] Reduce memory requirements for monitoring functions

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Queries that only invoke monitoring/metadata datasource functions

should run with minimal memory requirements

- The functions are: active_requests(), completed_requests(),

dataset_resources(), storage_components(), jobs(), and ping()

Change-Id: If7de53a5b476c8ce0d3fe485bf526a5d425e4c37

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3548

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

  1. … 13 more files in changeset.
[NO ISSUE][COMP] Fix index selection for datasets with meta

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

Fix index selection for datasets with meta. Access method rule should

check where the field is coming from (dataset record or meta record)

and then determine if the field matches the keys in the index based

on their names and sources.

This patch also fixes resolving PK field accesses to the primary key

variable (e.g. $ds.getField("id") is turned into $13 where id is a PK).

The fix considers whether the PK is coming from the data record or the

meta record.

The patch also includes fixing rewriting of meta() references and

replacing them with their corresponding meta variables. Now nested plans

are visited also when looking for meta() references to take care of cases

where the data scan producing the meta variable and the meta() references

happen to be inside the nested plans.

MetaFunctionToMetaVariable() is fired also after the rules which eliminate

subplans to allow for rewriting of the meta() if it couldn't be replaced

when the meta() reference was in the subplan but referring to meta variable

outside the nested plan.

ReinferAllTypesRule() is now fired before ByNameToByIndexFieldAccessRule()

to allow the latter rule to get the up-to-date types in the whole plan.

Change-Id: I0503f64cd51153896e2d7d7abc465c679f82e2fd

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3545

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

Contrib: Till Westmann <tillw@apache.org>

    • -0
    • +9
    /asterixdb/asterix-app/data/csv/people.csv
    • -0
    • +9
    /asterixdb/asterix-app/data/csv/people3.csv
  1. … 78 more files in changeset.
[NO ISSUE][STO] Increase Dataset Checkpoint Interval

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- The current dataset checkpoint interval of 10 mins

is too small and can result in many unnecessary small

flushes. This change increases the interval to 60 mins.

Change-Id: Idd4d1d02e4df83833220bca05193c6a99393ac99

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3546

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Hussain Towaileb <hussainht@gmail.com>

[NO ISSUE][API] Introduce 'readonly' request parameter

- user model changes: no

- storage format changes: no

- interface changes: yes

Details:

- Introduce 'readonly' request parameter which allows user

to specify whether DDL / DML statements must be rejected

(if set to 'true') or allowed ('false' - default)

- Add test cases and update documentation

- Fix category of WRITE and INSERT statements

Change-Id: Ia2555483f431f97c10d922d2a8832bace6a97610

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3543

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

  1. … 11 more files in changeset.
[NO ISSUE][CLUS] Attempt To Get Node IP From Existing Nodes

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- When we fail to resolve a node's host to an IP on node

failure/removal, attempt to find its IP from the list

of existing nodes. This is done to prevent failing the

node removal operation when the node's host address

cannot be resolved anymore.

Change-Id: I8f12a3dbb84a4cb731f1379efd65ca50606a8b07

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3544

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Till Westmann <tillw@apache.org>

[NO ISSUE][STO] Fix Time Unit Comparison For Periodic Flushes

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- The dataset checkpoint interval is specified in the

configuration using seconds while the dataset last

flush time is tracked in nanos. This change fixes the

comparison by converting the dataset checkpoint

interval to nanos.

Change-Id: Id5a9b86207ea25ba44840af01324041525ac5bd9

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3542

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Till Westmann <tillw@apache.org>

[ASTERIXDB-2625][OTH] Proper error message for invalid uuid

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Returns a proper message for invalid uuid. (incorrect uuid

length)

- Add a setter to allow setting the SourceLocation to an

already created exception.

Change-Id: I2cd836afcb35955e23e6cba7da5e17917d0705b0

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3537

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

[NO ISSUE] Fix typo in docs

Change-Id: I8e394025b80b2c3d6d03a53cd863cd534d55e049

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3541

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Till Westmann <tillw@apache.org>

[NO ISSUE][OTH] Make Active Recovery Task Extensible

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- Allow active entity listeners to create their own

recovery tasks.

- Make lock acquisition in recovery task extensible.

Change-Id: I801eec74f7c1723e8243fe0f36db6148638bde35

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3538

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

Reviewed-by: Till Westmann <tillw@apache.org>

[NO ISSUE][*DB][REPL] Identifier comparability of unknown hosts

Ensure that replication identifiers comparisons are not influenced by

address resolution

Change-Id: I6d7aa87777d17a3416d16cfad23b2773b1614a02

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3536

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Michael Blow <mblow@apache.org>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

[NO ISSUE][COMP] Temporarily disable some property matching

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

- ORDERED_PARTITIONED can only satisfy UNORDERED_PARTITIONED

if both use the same partitioning function. Currently there is no

mechanism for reasoning about partitioning functions so this case

has to be disabled until it is in place.

Change-Id: I7f280505f4fa02283fc14a0398760162e1150dc9

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3532

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

[NO ISSUE] Always build with jdk target 8

Change-Id: I2f31adc13ce24c1a631620612259b774ab88fa0b

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3531

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

[ASTERIXDB-2626][*DB] Ignore dup fields in record construction, issue warning

- user model changes: yes

- storage format changes: no

- interface changes: no

Details:

Change the current behavior of throwing exceptions on duplicates fields

on a record to just picking one and return a warning when possible.

- added source location for auto generated name expressions.

- removed duplicate test cases from AQL test suite since SQL++ alraedy has it.

- updated test cases that used to throw exception on duplicate fields.

- updated an AST test case to reflect the new behaviour of picking one field.

- clean-ups in testsuite_sqlpp:

moved flwor let33 test case to its proper group.

moved ObjectsQueries, GeoQueries xml references up to where other xml refs.

Change-Id: I2d773b194f0e0f35720bb3fd63f1997239800762

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3519

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

  1. … 39 more files in changeset.
[NO ISSUE][IDX] Add tests to make sure no nulls in index

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

Added test cases to test that nulls do not make it

to secondary indexes.

Change-Id: I6d9a9a072f8378f2af262f49728001ce4e10bdbb

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3530

Reviewed-by: Michael Blow <mblow@apache.org>

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

    • -0
    • +3
    /asterixdb/asterix-app/data/data1.adm
[NO ISSUE] Make asterix-docker work again

Change-Id: I6fef4413e43e683238b46dc735c075ec02ac9e92

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3529

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Michael Blow <mblow@apache.org>

[NO ISSUE][COMP] Meta() after group by

- user model changes: no

- storage format changes: no

- interface changes: yes

Details:

Using meta() after group-by requires meta() be assigned to

a variable in a LET clause to expose meta().

- added source location to IFunctionManager.lookupFunction()

- added test cases

Change-Id: I2b173e23352fa80ef57154f08910586c6ee196b8

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3528

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

[NO ISSUE][FAIL] Drop fractional seconds when reporting response timeout

Change-Id: Ia628b5607cdd69a65b4e08daf1c47ecf95b851bb

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3527

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Murtadha Hubail <mhubail@apache.org>

[NO ISSUE][COMP] Fix InlineUnnestFunction to return false if not fired

- user model changes: no

- storage format changes: no

- interface changes: no

Details:

Fix InlineUnnestFunctionRule to return false if there are no

changes in the plan.

- minor clean-ups.

Change-Id: Ib2b69ae3ad9712d1443078e0ba0b254b46376d43

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3526

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>