Skip to content

Latest commit

 

History

History
155 lines (121 loc) · 4.84 KB

blocks.asciidoc

File metadata and controls

155 lines (121 loc) · 4.84 KB

Index blocks

Index blocks limit the kind of operations that are available on a certain index. The blocks come in different flavours, allowing to block write, read, or metadata operations. The blocks can be set / removed using dynamic index settings, or can be added using a dedicated API, which also ensures for write blocks that, once successfully returning to the user, all shards of the index are properly accounting for the block, for example that all in-flight writes to an index have been completed after adding the write block.

Index block settings

The following dynamic index settings determine the blocks present on an index:

index.blocks.read_only

Set to true to make the index and index metadata read only, false to allow writes and metadata changes.

index.blocks.read_only_allow_delete

Similar to index.blocks.write, except that you can delete the index when this block is in place. Do not set or remove this block yourself. The disk-based shard allocator sets and removes this block automatically according to the available disk space.

Deleting documents from an index to release resources - rather than deleting the index itself - increases the index size temporarily, and therefore may not be possible when nodes are low on disk space. When index.blocks.read_only_allow_delete is set to true, deleting documents is not permitted. However, deleting the index entirely requires very little extra disk space and frees up the disk space consumed by the index almost immediately so this is still permitted.

Important
{es} adds the read-only-allow-delete index block automatically when the disk utilization exceeds the flood stage watermark, and removes this block automatically when the disk utilization falls under the high watermark. See Disk-based shard allocation for more information about watermarks, and Fix watermark errors for help with resolving watermark issues.
index.blocks.read

Set to true to disable read operations against the index.

index.blocks.write

Set to true to disable data write operations against the index. Unlike read_only, this setting does not affect metadata. For instance, you can adjust the settings of an index with a write block, but you cannot adjust the settings of an index with a read_only block.

index.blocks.metadata

Set to true to disable index metadata reads and writes.

Add index block API

Adds an index block to an index.

PUT /my-index-000001/_block/write

{api-request-title}

PUT /<index>/_block/<block>

{api-path-parms-title}

+ By default, you must explicitly name the indices you are adding blocks to. To allow the adding of blocks to indices with _all, *, or other wildcard expressions, change the action.destructive_requires_name setting to false. You can update this setting in the elasticsearch.yml file or using the cluster update settings API. <block>:: (Required, string) Block type to add to the index.

+ .Valid values for <block>

Details
metadata

Disable metadata changes, such as closing the index.

read

Disable read operations.

read_only

Disable write operations and metadata changes.

write

Disable write operations. However, metadata changes are still allowed.

{api-query-parms-title}

+ Defaults to true.

+ Defaults to open.

{api-examples-title}

The following example shows how to add an index block:

PUT /my-index-000001/_block/write

The API returns following response:

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "indices" : [ {
    "name" : "my-index-000001",
    "blocked" : true
  } ]
}