[#12] Add __FROSTFS__ system prefix #12
15 changed files with 56 additions and 56 deletions
|
@ -37,16 +37,16 @@ message Container {
|
|||
//
|
||||
// There are some "well-known" attributes affecting system behaviour:
|
||||
//
|
||||
// * __NEOFS__SUBNET \
|
||||
// * [ __NEOFS__SUBNET | __FROSTFS__SUBNET ] \
|
||||
// String ID of a container's storage subnet. Any container can be attached to
|
||||
// one subnet only.
|
||||
// * __NEOFS__NAME \
|
||||
// * [ __NEOFS__NAME | __FROSTFS__NAME ] \
|
||||
// String of a human-friendly container name registered as a domain in
|
||||
// NNS contract.
|
||||
// * __NEOFS__ZONE \
|
||||
// String of a zone for `__NEOFS__NAME`. Used as a TLD of a domain name in NNS
|
||||
// * [ __NEOFS__ZONE | __FROSTFS__ZONE ] \
|
||||
// String of a zone for `__NEOFS__NAME`/`__FROSTFS__NAME`. Used as a TLD of a domain name in NNS
|
||||
// contract. If no zone is specified, use default zone: `container`.
|
||||
// * __NEOFS__DISABLE_HOMOMORPHIC_HASHING \
|
||||
// * [ __NEOFS__DISABLE_HOMOMORPHIC_HASHING | __FROSTFS__DISABLE_HOMOMORPHIC_HASHING ] \
|
||||
// Disables homomorphic hashing for the container if the value equals "true" string.
|
||||
// Any other values are interpreted as missing attribute. Container could be
|
||||
// accepted in a NeoFS network only if the global network hashing configuration
|
||||
|
|
|
@ -9,7 +9,7 @@ import "refs/types.proto";
|
|||
|
||||
// Lock objects protects a list of objects from being deleted. The lifetime of a
|
||||
// lock object is limited similar to regular objects in
|
||||
// `__NEOFS__EXPIRATION_EPOCH` attribute. Lock object MUST have expiration epoch.
|
||||
// `__NEOFS__EXPIRATION_EPOCH`/`__FROSTFS__EXPIRATION_EPOCH` attribute. Lock object MUST have expiration epoch.
|
||||
// It is impossible to delete a lock object via ObjectService.Delete RPC call.
|
||||
message Lock {
|
||||
// List of objects to lock. Must not be empty or carry empty IDs.
|
||||
|
|
|
@ -164,7 +164,7 @@ message NodeInfo {
|
|||
// attributes it's a string presenting floating point number with comma or
|
||||
// point delimiter for decimal part. In the Network Map it will be saved as
|
||||
// 64-bit unsigned integer representing number of minimal token fractions.
|
||||
// * __NEOFS__SUBNET_%s \
|
||||
// * [ __NEOFS__SUBNET_%s | __FROSTFS__SUBNET_%s ] \
|
||||
// `True` or `False`. Defines if the node is included in the `%s` subnetwork
|
||||
// or not. `%s` must be an existing subnetwork's ID (non-negative integer number).
|
||||
// A node can be included in more than one subnetwork and, therefore, can contain
|
||||
|
|
|
@ -20,11 +20,11 @@ service ObjectService {
|
|||
// keeping the receiving order.
|
||||
//
|
||||
// Extended headers can change `Get` behaviour:
|
||||
// * __NEOFS__NETMAP_EPOCH \
|
||||
// * [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH ] \
|
||||
// Will use the requsted version of Network Map for object placement
|
||||
// calculation.
|
||||
// * __NEOFS__NETMAP_LOOKUP_DEPTH \
|
||||
// Will try older versions (starting from `__NEOFS__NETMAP_EPOCH` if specified or
|
||||
// * [ __NEOFS__NETMAP_LOOKUP_DEPTH | __FROSTFS__NETMAP_LOOKUP_DEPTH ] \
|
||||
// Will try older versions (starting from `__NEOFS__NETMAP_EPOCH`/`__FROSTFS__NETMAP_EPOCH` if specified or
|
||||
// the latest one otherwise) of Network Map to find an object until the depth
|
||||
// limit is reached.
|
||||
//
|
||||
|
@ -54,7 +54,7 @@ service ObjectService {
|
|||
// Chunk messages SHOULD be sent in the direct order of fragmentation.
|
||||
//
|
||||
// Extended headers can change `Put` behaviour:
|
||||
// * __NEOFS__NETMAP_EPOCH \
|
||||
// * [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH \
|
||||
// Will use the requsted version of Network Map for object placement
|
||||
// calculation.
|
||||
//
|
||||
|
@ -85,7 +85,7 @@ service ObjectService {
|
|||
// guarantee. Object will be marked for removal and deleted eventually.
|
||||
//
|
||||
// Extended headers can change `Delete` behaviour:
|
||||
// * __NEOFS__NETMAP_EPOCH \
|
||||
// * [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH ] \
|
||||
// Will use the requsted version of Network Map for object placement
|
||||
// calculation.
|
||||
//
|
||||
|
@ -110,7 +110,7 @@ service ObjectService {
|
|||
// the very minimal information will be returned instead.
|
||||
//
|
||||
// Extended headers can change `Head` behaviour:
|
||||
// * __NEOFS__NETMAP_EPOCH \
|
||||
// * [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH ] \
|
||||
// Will use the requsted version of Network Map for object placement
|
||||
// calculation.
|
||||
//
|
||||
|
@ -137,7 +137,7 @@ service ObjectService {
|
|||
// Specification section for more details.
|
||||
//
|
||||
// Extended headers can change `Search` behaviour:
|
||||
// * __NEOFS__NETMAP_EPOCH \
|
||||
// * [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH ] \
|
||||
// Will use the requsted version of Network Map for object placement
|
||||
// calculation.
|
||||
//
|
||||
|
@ -161,10 +161,10 @@ service ObjectService {
|
|||
// order.
|
||||
//
|
||||
// Extended headers can change `GetRange` behaviour:
|
||||
// * __NEOFS__NETMAP_EPOCH \
|
||||
// * [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH ] \
|
||||
// Will use the requsted version of Network Map for object placement
|
||||
// calculation.
|
||||
// * __NEOFS__NETMAP_LOOKUP_DEPTH \
|
||||
// * [ __NEOFS__NETMAP_LOOKUP_DEPTH | __FROSTFS__NETMAP_LOOKUP_DEPTH ] \
|
||||
// Will try older versions of Network Map to find an object until the depth
|
||||
// limit is reached.
|
||||
//
|
||||
|
@ -194,10 +194,10 @@ service ObjectService {
|
|||
// the request. Note that hash is calculated for XORed data.
|
||||
//
|
||||
// Extended headers can change `GetRangeHash` behaviour:
|
||||
// * __NEOFS__NETMAP_EPOCH \
|
||||
// * [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH ] \
|
||||
// Will use the requsted version of Network Map for object placement
|
||||
// calculation.
|
||||
// * __NEOFS__NETMAP_LOOKUP_DEPTH \
|
||||
// * [ __NEOFS__NETMAP_LOOKUP_DEPTH | __FROSTFS__NETMAP_LOOKUP_DEPTH ] \
|
||||
// Will try older versions of Network Map to find an object until the depth
|
||||
// limit is reached.
|
||||
//
|
||||
|
|
|
@ -114,19 +114,19 @@ message Header {
|
|||
// Objects with duplicated attribute names or attributes with empty values
|
||||
// will be considered invalid.
|
||||
//
|
||||
// There are some "well-known" attributes starting with `__NEOFS__` prefix
|
||||
// There are some "well-known" attributes starting with `__NEOFS__`/`__FROSTFS__` prefix
|
||||
// that affect system behaviour:
|
||||
//
|
||||
// * __NEOFS__UPLOAD_ID \
|
||||
// * [ __NEOFS__UPLOAD_ID | __FROSTFS__UPLOAD_ID ] \
|
||||
// Marks smaller parts of a split bigger object
|
||||
// * __NEOFS__EXPIRATION_EPOCH \
|
||||
// * [ __NEOFS__EXPIRATION_EPOCH | __FROSTFS__EXPIRATION_EPOCH ] \
|
||||
// Tells GC to delete object after that epoch
|
||||
// * __NEOFS__TICK_EPOCH \
|
||||
// * [ __NEOFS__TICK_EPOCH | __FROSTFS__TICK_EPOCH ] \
|
||||
// Decimal number that defines what epoch must produce
|
||||
// object notification with UTF-8 object address in a
|
||||
// body (`0` value produces notification right after
|
||||
// object put)
|
||||
// * __NEOFS__TICK_TOPIC \
|
||||
// * [ __NEOFS__TICK_TOPIC | __FROSTFS__TICK_TOPIC ] \
|
||||
// UTF-8 string topic ID that is used for object notification
|
||||
//
|
||||
// And some well-known attributes used by applications only:
|
||||
|
|
|
@ -587,16 +587,16 @@ values will be considered invalid.
|
|||
|
||||
There are some "well-known" attributes affecting system behaviour:
|
||||
|
||||
* __NEOFS__SUBNET \
|
||||
* [ __NEOFS__SUBNET | __FROSTFS__SUBNET ] \
|
||||
String ID of a container's storage subnet. Any container can be attached to
|
||||
one subnet only.
|
||||
* __NEOFS__NAME \
|
||||
* [ __NEOFS__NAME | __FROSTFS__NAME ] \
|
||||
String of a human-friendly container name registered as a domain in
|
||||
NNS contract.
|
||||
* __NEOFS__ZONE \
|
||||
String of a zone for `__NEOFS__NAME`. Used as a TLD of a domain name in NNS
|
||||
* [ __NEOFS__ZONE | __FROSTFS__ZONE ] \
|
||||
String of a zone for `__NEOFS__NAME`/`__FROSTFS__NAME`. Used as a TLD of a domain name in NNS
|
||||
contract. If no zone is specified, use default zone: `container`.
|
||||
* __NEOFS__DISABLE_HOMOMORPHIC_HASHING \
|
||||
* [ __NEOFS__DISABLE_HOMOMORPHIC_HASHING | __FROSTFS__DISABLE_HOMOMORPHIC_HASHING ] \
|
||||
Disables homomorphic hashing for the container if the value equals "true" string.
|
||||
Any other values are interpreted as missing attribute. Container could be
|
||||
accepted in a NeoFS network only if the global network hashing configuration
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
### Message Lock
|
||||
Lock objects protects a list of objects from being deleted. The lifetime of a
|
||||
lock object is limited similar to regular objects in
|
||||
`__NEOFS__EXPIRATION_EPOCH` attribute. Lock object MUST have expiration epoch.
|
||||
`__NEOFS__EXPIRATION_EPOCH`/`__FROSTFS__EXPIRATION_EPOCH` attribute. Lock object MUST have expiration epoch.
|
||||
It is impossible to delete a lock object via ObjectService.Delete RPC call.
|
||||
|
||||
|
||||
|
|
|
@ -406,7 +406,7 @@ explicitly set:
|
|||
attributes it's a string presenting floating point number with comma or
|
||||
point delimiter for decimal part. In the Network Map it will be saved as
|
||||
64-bit unsigned integer representing number of minimal token fractions.
|
||||
* __NEOFS__SUBNET_%s \
|
||||
* [ __NEOFS__SUBNET_%s | __FROSTFS__SUBNET_%s ] \
|
||||
`True` or `False`. Defines if the node is included in the `%s` subnetwork
|
||||
or not. `%s` must be an existing subnetwork's ID (non-negative integer number).
|
||||
A node can be included in more than one subnetwork and, therefore, can contain
|
||||
|
|
|
@ -93,11 +93,11 @@ be restored by concatenation of object message payload and all chunks
|
|||
keeping the receiving order.
|
||||
|
||||
Extended headers can change `Get` behaviour:
|
||||
* __NEOFS__NETMAP_EPOCH \
|
||||
* [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH ] \
|
||||
Will use the requsted version of Network Map for object placement
|
||||
calculation.
|
||||
* __NEOFS__NETMAP_LOOKUP_DEPTH \
|
||||
Will try older versions (starting from `__NEOFS__NETMAP_EPOCH` if specified or
|
||||
* [ __NEOFS__NETMAP_LOOKUP_DEPTH | __FROSTFS__NETMAP_LOOKUP_DEPTH ] \
|
||||
Will try older versions (starting from `__NEOFS__NETMAP_EPOCH`/`__FROSTFS__NETMAP_EPOCH` if specified or
|
||||
the latest one otherwise) of Network Map to find an object until the depth
|
||||
limit is reached.
|
||||
|
||||
|
@ -131,7 +131,7 @@ object payload. All messages, except first one, SHOULD be payload chunks.
|
|||
Chunk messages SHOULD be sent in the direct order of fragmentation.
|
||||
|
||||
Extended headers can change `Put` behaviour:
|
||||
* __NEOFS__NETMAP_EPOCH \
|
||||
* [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH \
|
||||
Will use the requsted version of Network Map for object placement
|
||||
calculation.
|
||||
|
||||
|
@ -166,7 +166,7 @@ Delete the object from a container. There is no immediate removal
|
|||
guarantee. Object will be marked for removal and deleted eventually.
|
||||
|
||||
Extended headers can change `Delete` behaviour:
|
||||
* __NEOFS__NETMAP_EPOCH \
|
||||
* [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH ] \
|
||||
Will use the requsted version of Network Map for object placement
|
||||
calculation.
|
||||
|
||||
|
@ -195,7 +195,7 @@ returned. If `main_only` request field is set, the short header with only
|
|||
the very minimal information will be returned instead.
|
||||
|
||||
Extended headers can change `Head` behaviour:
|
||||
* __NEOFS__NETMAP_EPOCH \
|
||||
* [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH ] \
|
||||
Will use the requsted version of Network Map for object placement
|
||||
calculation.
|
||||
|
||||
|
@ -226,7 +226,7 @@ Header's filed values. Please see the corresponding NeoFS Technical
|
|||
Specification section for more details.
|
||||
|
||||
Extended headers can change `Search` behaviour:
|
||||
* __NEOFS__NETMAP_EPOCH \
|
||||
* [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH ] \
|
||||
Will use the requsted version of Network Map for object placement
|
||||
calculation.
|
||||
|
||||
|
@ -254,10 +254,10 @@ restored by concatenation of all received payload chunks keeping the receiving
|
|||
order.
|
||||
|
||||
Extended headers can change `GetRange` behaviour:
|
||||
* __NEOFS__NETMAP_EPOCH \
|
||||
* [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH ] \
|
||||
Will use the requsted version of Network Map for object placement
|
||||
calculation.
|
||||
* __NEOFS__NETMAP_LOOKUP_DEPTH \
|
||||
* [ __NEOFS__NETMAP_LOOKUP_DEPTH | __FROSTFS__NETMAP_LOOKUP_DEPTH ] \
|
||||
Will try older versions of Network Map to find an object until the depth
|
||||
limit is reached.
|
||||
|
||||
|
@ -291,10 +291,10 @@ length) tuples. Hashes order in response corresponds to the ranges order in
|
|||
the request. Note that hash is calculated for XORed data.
|
||||
|
||||
Extended headers can change `GetRangeHash` behaviour:
|
||||
* __NEOFS__NETMAP_EPOCH \
|
||||
* [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH ] \
|
||||
Will use the requsted version of Network Map for object placement
|
||||
calculation.
|
||||
* __NEOFS__NETMAP_LOOKUP_DEPTH \
|
||||
* [ __NEOFS__NETMAP_LOOKUP_DEPTH | __FROSTFS__NETMAP_LOOKUP_DEPTH ] \
|
||||
Will try older versions of Network Map to find an object until the depth
|
||||
limit is reached.
|
||||
|
||||
|
@ -848,19 +848,19 @@ Key name must be an object-unique valid UTF-8 string. Value can't be empty.
|
|||
Objects with duplicated attribute names or attributes with empty values
|
||||
will be considered invalid.
|
||||
|
||||
There are some "well-known" attributes starting with `__NEOFS__` prefix
|
||||
There are some "well-known" attributes starting with `__NEOFS__`/`__FROSTFS__` prefix
|
||||
that affect system behaviour:
|
||||
|
||||
* __NEOFS__UPLOAD_ID \
|
||||
* [ __NEOFS__UPLOAD_ID | __FROSTFS__UPLOAD_ID ] \
|
||||
Marks smaller parts of a split bigger object
|
||||
* __NEOFS__EXPIRATION_EPOCH \
|
||||
* [ __NEOFS__EXPIRATION_EPOCH | __FROSTFS__EXPIRATION_EPOCH ] \
|
||||
Tells GC to delete object after that epoch
|
||||
* __NEOFS__TICK_EPOCH \
|
||||
* [ __NEOFS__TICK_EPOCH | __FROSTFS__TICK_EPOCH ] \
|
||||
Decimal number that defines what epoch must produce
|
||||
object notification with UTF-8 object address in a
|
||||
body (`0` value produces notification right after
|
||||
object put)
|
||||
* __NEOFS__TICK_TOPIC \
|
||||
* [ __NEOFS__TICK_TOPIC | __FROSTFS__TICK_TOPIC ] \
|
||||
UTF-8 string topic ID that is used for object notification
|
||||
|
||||
And some well-known attributes used by applications only:
|
||||
|
|
|
@ -285,14 +285,14 @@ Key name must be a unique valid UTF-8 string. Value can't be empty. Requests or
|
|||
Responses with duplicated header names or headers with empty values will be
|
||||
considered invalid.
|
||||
|
||||
There are some "well-known" headers starting with `__NEOFS__` prefix that
|
||||
There are some "well-known" headers starting with `__NEOFS__` or `__FROSTFS__` prefix that
|
||||
affect system behaviour:
|
||||
|
||||
* __NEOFS__NETMAP_EPOCH \
|
||||
* [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH ] \
|
||||
Netmap epoch to use for object placement calculation. The `value` is string
|
||||
encoded `uint64` in decimal presentation. If set to '0' or not set, the
|
||||
current epoch only will be used.
|
||||
* __NEOFS__NETMAP_LOOKUP_DEPTH \
|
||||
* [ __NEOFS__NETMAP_LOOKUP_DEPTH | __FROSTFS__NETMAP_LOOKUP_DEPTH ] \
|
||||
If object can't be found using current epoch's netmap, this header limits
|
||||
how many past epochs the node can look up through. The `value` is string
|
||||
encoded `uint64` in decimal presentation. If set to '0' or not set, only the
|
||||
|
|
|
@ -31,7 +31,7 @@ additional information used for the proof of storage. `StorageGroup` only
|
|||
contains objects from the same container.
|
||||
|
||||
Being an object payload, StorageGroup may have expiration Epoch set with
|
||||
`__NEOFS__EXPIRATION_EPOCH` well-known attribute. When expired, StorageGroup
|
||||
`__NEOFS__EXPIRATION_EPOCH`/`__FROSTFS__EXPIRATION_EPOCH` well-known attribute. When expired, StorageGroup
|
||||
will be ignored by InnerRing nodes during Data Audit cycles and will be
|
||||
deleted by Storage Nodes.
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ purged from the NeoFS network.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| expiration_epoch | [uint64](#uint64) | | Last NeoFS epoch number of the tombstone lifetime. It's set by the tombstone creator depending on the current NeoFS network settings. A tombstone object must have the same expiration epoch value in `__NEOFS__EXPIRATION_EPOCH` attribute. Otherwise, the tombstone will be rejected by a storage node. |
|
||||
| expiration_epoch | [uint64](#uint64) | | Last NeoFS epoch number of the tombstone lifetime. It's set by the tombstone creator depending on the current NeoFS network settings. A tombstone object must have the same expiration epoch value in `__NEOFS__EXPIRATION_EPOCH`/`__FROSTFS__EXPIRATION_EPOCH` attribute. Otherwise, the tombstone will be rejected by a storage node. |
|
||||
| split_id | [bytes](#bytes) | | 16 byte UUID used to identify the split object hierarchy parts. Must be unique inside a container. All objects participating in the split must have the same `split_id` value. |
|
||||
| members | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | repeated | List of objects to be deleted. |
|
||||
|
||||
|
|
|
@ -137,14 +137,14 @@ message SessionToken {
|
|||
// Responses with duplicated header names or headers with empty values will be
|
||||
// considered invalid.
|
||||
//
|
||||
// There are some "well-known" headers starting with `__NEOFS__` prefix that
|
||||
// There are some "well-known" headers starting with `__NEOFS__` or `__FROSTFS__` prefix that
|
||||
// affect system behaviour:
|
||||
//
|
||||
// * __NEOFS__NETMAP_EPOCH \
|
||||
// * [ __NEOFS__NETMAP_EPOCH | __FROSTFS__NETMAP_EPOCH ] \
|
||||
// Netmap epoch to use for object placement calculation. The `value` is string
|
||||
// encoded `uint64` in decimal presentation. If set to '0' or not set, the
|
||||
// current epoch only will be used.
|
||||
// * __NEOFS__NETMAP_LOOKUP_DEPTH \
|
||||
// * [ __NEOFS__NETMAP_LOOKUP_DEPTH | __FROSTFS__NETMAP_LOOKUP_DEPTH ] \
|
||||
// If object can't be found using current epoch's netmap, this header limits
|
||||
// how many past epochs the node can look up through. The `value` is string
|
||||
// encoded `uint64` in decimal presentation. If set to '0' or not set, only the
|
||||
|
|
|
@ -13,7 +13,7 @@ import "refs/types.proto";
|
|||
// contains objects from the same container.
|
||||
//
|
||||
// Being an object payload, StorageGroup may have expiration Epoch set with
|
||||
// `__NEOFS__EXPIRATION_EPOCH` well-known attribute. When expired, StorageGroup
|
||||
// `__NEOFS__EXPIRATION_EPOCH`/`__FROSTFS__EXPIRATION_EPOCH` well-known attribute. When expired, StorageGroup
|
||||
// will be ignored by InnerRing nodes during Data Audit cycles and will be
|
||||
// deleted by Storage Nodes.
|
||||
//
|
||||
|
|
|
@ -12,7 +12,7 @@ import "refs/types.proto";
|
|||
message Tombstone {
|
||||
// Last NeoFS epoch number of the tombstone lifetime. It's set by the tombstone
|
||||
// creator depending on the current NeoFS network settings. A tombstone object
|
||||
// must have the same expiration epoch value in `__NEOFS__EXPIRATION_EPOCH`
|
||||
// must have the same expiration epoch value in `__NEOFS__EXPIRATION_EPOCH`/`__FROSTFS__EXPIRATION_EPOCH`
|
||||
// attribute. Otherwise, the tombstone will be rejected by a storage node.
|
||||
uint64 expiration_epoch = 1 [json_name = "expirationEpoch"];
|
||||
|
||||
|
|
Loading…
Reference in a new issue