forked from TrueCloudLab/frostfs-api
[#68] Add SAME|DISTINCT selector clause
Helps to define how selection is formed Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
This commit is contained in:
parent
84907f6b04
commit
ea61d4e0e9
2 changed files with 35 additions and 2 deletions
|
@ -35,6 +35,20 @@ enum Operation {
|
||||||
AND = 8;
|
AND = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Selector modifier showing how the node set will be formed
|
||||||
|
// By default selector just groups by attribute into a bucket selecting nodes
|
||||||
|
// only by their hash distance.
|
||||||
|
enum Clause{
|
||||||
|
// No modifier defined. Will select nodes from bucket randomly.
|
||||||
|
CLAUSE_UNSPECIFIED = 0;
|
||||||
|
|
||||||
|
// SAME will select only nodes having the same value of bucket attribute
|
||||||
|
SAME = 1;
|
||||||
|
|
||||||
|
// DISTINCT will select nodes having different values of bucket attribute
|
||||||
|
DISTINCT = 2;
|
||||||
|
}
|
||||||
|
|
||||||
// Filter
|
// Filter
|
||||||
message Filter {
|
message Filter {
|
||||||
// Name of the filter or a reference to the named filter.
|
// Name of the filter or a reference to the named filter.
|
||||||
|
@ -64,11 +78,14 @@ message Selector {
|
||||||
// How many nodes to select from bucket
|
// How many nodes to select from bucket
|
||||||
uint32 count = 2;
|
uint32 count = 2;
|
||||||
|
|
||||||
|
// Selector modifier showing how to form a bucket
|
||||||
|
Clause clause = 3;
|
||||||
|
|
||||||
// Attribute bucket to select from
|
// Attribute bucket to select from
|
||||||
string attribute = 3;
|
string attribute = 4;
|
||||||
|
|
||||||
// Filter reference to select from
|
// Filter reference to select from
|
||||||
string filter = 4;
|
string filter = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Exact bucket for each replica
|
// Exact bucket for each replica
|
||||||
|
|
|
@ -194,12 +194,28 @@ Selector
|
||||||
| ----- | ---- | ----- | ----------- |
|
| ----- | ---- | ----- | ----------- |
|
||||||
| name | [string](#string) | | Selector name to reference in object placement section |
|
| name | [string](#string) | | Selector name to reference in object placement section |
|
||||||
| count | [uint32](#uint32) | | How many nodes to select from bucket |
|
| count | [uint32](#uint32) | | How many nodes to select from bucket |
|
||||||
|
| clause | [Clause](#neo.fs.v2.netmap.Clause) | | Selector modifier showing how to form a bucket |
|
||||||
| attribute | [string](#string) | | Attribute bucket to select from |
|
| attribute | [string](#string) | | Attribute bucket to select from |
|
||||||
| filter | [string](#string) | | Filter reference to select from |
|
| filter | [string](#string) | | Filter reference to select from |
|
||||||
|
|
||||||
<!-- end messages -->
|
<!-- end messages -->
|
||||||
|
|
||||||
|
|
||||||
|
<a name="neo.fs.v2.netmap.Clause"></a>
|
||||||
|
|
||||||
|
### Clause
|
||||||
|
Selector modifier showing how the node set will be formed
|
||||||
|
By default selector just groups by attribute into a bucket selecting nodes
|
||||||
|
only by their hash distance.
|
||||||
|
|
||||||
|
| Name | Number | Description |
|
||||||
|
| ---- | ------ | ----------- |
|
||||||
|
| CLAUSE_UNSPECIFIED | 0 | No modifier defined |
|
||||||
|
| SAME | 1 | SAME will select only nodes having the same value of bucket attribute |
|
||||||
|
| DISTINCT | 2 | DISTINCT will select nodes having different values of bucket attribute |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="neo.fs.v2.netmap.NodeInfo.State"></a>
|
<a name="neo.fs.v2.netmap.NodeInfo.State"></a>
|
||||||
|
|
||||||
### NodeInfo.State
|
### NodeInfo.State
|
||||||
|
|
Loading…
Reference in a new issue