Set Index Priority Operation
-
In RavenDB, each index has its own dedicated thread for all indexing work.
By default, RavenDB prioritizes processing requests over indexing,
so indexing threads start with a lower priority than request-processing threads. -
Use
SetIndexesPriorityOperation
to raise or lower the index thread priority. -
Indexes scope:
Index priority can be set for both static and auto indexes. -
Nodes scope:
The priority will be updated on all nodes in the database group. -
Setting the priority can also be done from the indexes list view in the Studio.
-
In this page:
Index priority
Setting the priority will affect the indexing thread priority at the operating system level:
Priority value | Indexing thread priority at OS level |
|
---|---|---|
set using low() |
Lowest |
|
set using normal() (default) |
Below normal |
|
set using high() |
Normal |
|
Set priority - single index
// Define the set priority operation
// Pass index name & priority
$setPriorityOp = new SetIndexesPriorityOperation("Orders/Totals", IndexPriority::high());
// Execute the operation by passing it to Maintenance.Send
// An exception will be thrown if index does not exist
$store->maintenance()->send($setPriorityOp);
Set priority - multiple indexes
// Define the index list and the new priority:
$parameters = new IndexPriorityParameters();
$parameters->setIndexNames(["Orders/Totals", "Orders/ByCompany"]);
$parameters->setPriority(IndexPriority::low());
// Define the set priority operation, pass the parameters
$setPriorityOp = new SetIndexesPriorityOperation($parameters);
// Execute the operation by passing it to Maintenance.Send
// An exception will be thrown if any of the specified indexes do not exist
$store->maintenance()->send($setPriorityOp);
Syntax
// Available overloads:
SetIndexesPriorityOperation(?string $indexName, ?IndexPriority $priority);
SetIndexesPriorityOperation(?Parameters $parameters);
Parameters | ||
---|---|---|
$indexName | ?string |
Index name for which to change priority |
$priority | ?IndexPriority |
Priority to set |
$parameters | ?Parameters |
Index priority parameters |
class IndexPriority
{
public static function low(): IndexPriority;
public static function normal(): IndexPriority;
public static function high(): IndexPriority;
public function isLow(): bool;
public function isNormal(): bool;
public function isHigh(): bool;
}