10000 Docs: Remove traces of hash and skiplist indexes in 3.10 by Simran-B · Pull Request #16205 · arangodb/arangodb · GitHub
[go: up one dir, main page]

Skip to content

Docs: Remove traces of hash and skiplist indexes in 3.10 #16205

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
May 16, 2022
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Formatting
  • Loading branch information
Simran-B authored May 2, 2022
commit 03d4756634bdc95403cd715881d8bb79b77fc95d
8000
Original file line numberDiff line number Diff line change
Expand Up @@ -10,94 +10,98 @@
The collection name.

@RESTBODYPARAM{type,string,required,string}
must be equal to *"persistent"*.
Must be equal to `"persistent"`.

@RESTBODYPARAM{fields,array,required,string}
an array of attribute paths.
An array of attribute paths.

@RESTBODYPARAM{storedValues,array,optional,string}
The optional **storedValues** attribute can contain an array of paths to additional
The optional `storedValues` attribute can contain an array of paths to additional
attributes to store in the index. These additional attributes cannot be used for
index lookups or for sorting, but they can be used for projections. This allows an
index to fully cover more queries and avoid extra document lookups.
The maximum number of attributes in **storedValues** is 32.
It is not possible to create multiple indexes with the same **fields** attributes
and uniqueness but different **storedValues** attributes. That means the value of
**storedValues** is not considered by index creation calls when checking if an
The maximum number of attributes in `storedValues` is 32.

It is not possible to create multiple indexes with the same `fields` attributes
and uniqueness but different `storedValues` attributes. That means the value of
`storedValues` is not considered by index creation calls when checking if an
index is already present or needs to be created.
In unique indexes, only the attributes in **fields** are checked for uniqueness,
but the attributes in **storedValues** are not checked for their uniqueness.
Non-existing attributes are stored as **null** values inside **storedValues**.

In unique indexes, only the attributes in `fields` are checked for uniqueness,
but the attributes in `storedValues` are not checked for their uniqueness.
Non-existing attributes are stored as `null` values inside `storedValues`.

@RESTBODYPARAM{unique,boolean,optional,}
if *true*, then create a unique index. Defaults to *false*.
In unique indexes, only the attributes in **fields** are checked for uniqueness,
but the attributes in **storedValues** are not checked for their uniqueness.
If `true`, then create a unique index. Defaults to `false`.
In unique indexes, only the attributes in `fields` are checked for uniqueness,
but the attributes in `storedValues` are not checked for their uniqueness.

@RESTBODYPARAM{sparse,boolean,optional,}
if *true*, then create a sparse index. Defaults to *false*.
If `true`, then create a sparse index. Defaults to `false`.

@RESTBODYPARAM{deduplicate,boolean,optional,}
The **deduplicate** attribute is supported by array indexes of type *persistent*.
It controls whether inserting duplicate index values
The attribute controls whether inserting duplicate index values
from the same document into a unique array index will lead to a unique constraint
error or not. The default value is *true*, so only a single instance of each
error or not. The default value is `true`, so only a single instance of each
non-unique index value will be inserted into the index per document. Trying to
insert a value into the index that already exists in the index will always fail,
regardless of the value of this attribute.

@RESTBODYPARAM{estimates,boolean,optional,}
The attribute **estimates** is supported by indexes of type *persistent*. This
attribute controls whether index selectivity estimates are maintained for the
This attribute controls whether index selectivity estimates are maintained for the
index. Not maintaining index selectivity estimates can have a slightly positive
impact on write performance.

The downside of turning off index selectivity estimates will be that
the query optimizer will not be able to determine the usefulness of different
competing indexes in AQL queries when there are multiple candidate indexes to
choose from.
The *estimates* attribute is optional and defaults to *true* if not set. It will
have no effect on indexes other than *persistent*.

The `estimates` attribute is optional and defaults to `true` if not set. It will
have no effect on indexes other than `persistent`.

@RESTBODYPARAM{cacheEnabled,boolean,optional,}
**cacheEnabled** can be *true* or *false* and is supported by indexes of type
*persistent*. The attribute controls whether an extra in-memory hash cache is
This attribute controls whether an extra in-memory hash cache is
created for the index. The hash cache can be used to speed up index lookups.
The cache can only be used for queries that look up all index attributes via
an equality lookup (`==`). The hash cache cannot be used for range scans,
partial lookups or sorting.

The cache will be populated lazily upon reading data from the index. Writing data
into the collection or updating existing data will invalidate entries in the
cache. The cache may have a negative effect on performance in case index values
are updated more often than they are read.

The maximum size of cache entries that can be stored is currently 4 MB, i.e.
the cumulated size of all index entries for any index lookup value must be
less than 4 MB. This limitation is there to avoid storing the index entries
of "super nodes" in the cache.
**cacheEnabled** defaults to *false* and should only be used for indexes that

`cacheEnabled` defaults to `false` and should only be used for indexes that
are known to benefit from an extra layer of caching.

@RESTBODYPARAM{inBackground,boolean,optional,}
The optional attribute **inBackground** can be set to *true* to create the index
This attribute can be set to `true` to create the index
in the background, which will not write-lock the underlying collection for
as long as if the index is built in the foreground. The default value is *false*.
as long as if the index is built in the foreground. The default value is `false`.

@RESTDESCRIPTION

Creates a persistent index for the collection *collection-name*, if
Creates a persistent index for the collection `collection-name`, if
it does not already exist. The call expects an object containing the index
details.

In a sparse index all documents will be excluded from the index that do not
contain at least one of the specified index attributes (i.e. *fields*) or that
have a value of *null* in any of the specified index attributes. Such documents
contain at least one of the specified index attributes (i.e. `fields`) or that
have a value of `null` in any of the specified index attributes. Such documents
will not be indexed, and not be taken into account for uniqueness checks if
the *unique* flag is set.
the `unique` flag is set.

In a non-sparse index, these documents will be indexed (for non-present
indexed attributes, a value of *null* will be used) and will be taken into
account for uniqueness checks if the *unique* flag is set.
indexed attributes, a value of `null` will be used) and will be taken into
account for uniqueness checks if the `unique` flag is set.

**Note**: unique indexes on non-shard keys are not supported in a cluster.
**Note**: Unique indexes on non-shard keys are not supported in a cluster.

@RESTRETURNCODES

Expand All @@ -115,7 +119,7 @@ persistent index in such a way that there are documents violating the
uniqueness, then a *HTTP 400* is returned.

@RESTRETURNCODE{404}
If the *collection-name* is unknown, then a *HTTP 404* is returned.
If the `collection-name` is unknown, then a *HTTP 404* is returned.

@EXAMPLES

Expand Down
0