Leonard Lyubich
79902c1c6f
Release v2.12.2
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-03 17:02:14 +03:00
Leonard Lyubich
c82dcf7e16
[ #401 ] internal: Place randomization code in random package
...
Also replace seeding into `init` function.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-05-30 22:02:58 +03:00
Leonard Lyubich
02e962f727
[ #401 ] object: Fix GetRangeResponseBody.FromGRPCMessage
...
Pass `SplitInfo` field of `GetRangeResponse_Body_SplitInfo` message into
`SplitInfo` decoder.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-05-30 22:02:58 +03:00
Leonard Lyubich
d35e935a9d
[ #401 ] test: Randomize value for oneof
field
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-05-30 22:02:58 +03:00
fyrchik
0b8e4e4753
[ #400 ] Support latest API in protoc plugin ( #400 )
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-05-30 10:33:01 +03:00
Pavel Karpy
870c1ffc0a
[ #397 ] refs: Fix OIDs marshalling
...
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-04-27 09:45:03 +03:00
Evgenii Stratonikov
3d3283411c
[ #393 ] signature: Do not allocate a signature explicitly
...
Helpers from `util/signature` already allocates it for us.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:11:57 +03:00
Evgenii Stratonikov
77a3ba9197
[ #393 ] util/signature: Remove bytes pool and provide buffer explicitly
...
Chained verification is done in a single thread there is no need to use
pool to do this. Also because newly allocated items are 5 MiB in size
we can run out of memory given that typical header it much less in size.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:11:57 +03:00
Evgenii Stratonikov
e8e09f0d00
[ #393 ] rpc/grpc: Use NewTimer
instead of time.After
...
From the docs of `time.After`:
```
The underlying Timer is not recovered by the garbage collector until the timer fires.
```
We have 1 minute default timeout, which is pretty long given that most
of the time we exchange small messages.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:11:57 +03:00
Evgenii Stratonikov
23702bc51a
util/protogen: add StableMarshal
generator command
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:07:57 +03:00
Evgenii Stratonikov
e348c933b7
util/proto: fix doc comment
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:07:57 +03:00
Evgenii Stratonikov
2aacaa6aba
refs: optimize marshalin of []ObjectID
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:07:57 +03:00
Evgenii Stratonikov
94f068e462
*: remove error from StableMarshal
return values
...
We marshal only in-memory structures, no error is expected.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:07:57 +03:00
Evgenii Stratonikov
84d981e88e
util/proto: do not return error from primitive marshalers
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-21 15:07:57 +03:00
Evgenii Stratonikov
732dd51b1b
[ #388 ] *: Remove nil check from setters
...
I knew one day `sed` would save me an hour of manual work:
```
sed -i -n -e '
s/) Set/) Set/
p
t setter
b end
:setter
n
s/nil/nil/
t hasif
p
b end
:hasif
n
:loop
p
n
s/}/}/
t end
b loop
:end
' $@
goimports -w $@
```
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-31 11:32:04 +03:00
Alex Vanin
50162741ac
Release v2.12.1
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2022-03-15 17:01:15 +03:00
Alex Vanin
18a31bc68e
Retract v2.12.0
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2022-03-15 17:01:15 +03:00
Evgenii Stratonikov
43fd3cfb4f
[ #376 ] status: Remove pointer from Detail
slice
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
0cab407378
[ #376 ] reputation: Remove pointers from slices
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
30c530e83d
[ #376 ] container: Remove pointers from slices
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
aa1e092ca5
[ #376 ] object: Remove pointer from slices
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
e21a7823c5
[ #376 ] session: Make XHeader slice non-pointer
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
6f4908edc2
[ #376 ] netmap: Make attributes a non-pointer slice
...
The speed of copying (which is done regulary for e.g. subnet changes)
is less, however it isn't on the hot path and the absolute time
difference is insignificant.
```
name old time/op new time/op delta
NodeAttributes-8 96.2ns ± 1% 158.3ns ± 1% +64.61% (p=0.000 n=10+10)
name old alloc/op new alloc/op delta
NodeAttributes-8 32.0B ± 0% 32.0B ± 0% ~ (all equal)
name old allocs/op new allocs/op delta
NodeAttributes-8 2.00 ± 0% 2.00 ± 0% ~ (all equal)
```
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
2f0eee96fc
[ #376 ] netmap: Replace slices of pointers with structs
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
ec484f2fd2
[ #376 ] acl: Replace slices of pointers with raw structs
...
```
name old time/op new time/op delta
Table_ToGRPCMessage/to_grpc_message-8 2.82µs ± 5% 2.86µs ± 5% ~ (p=0.395 n=10+8)
Table_ToGRPCMessage/from_grpc_message-8 2.47µs ± 5% 1.08µs ± 6% -56.16% (p=0.000 n=9+9)
name old alloc/op new alloc/op delta
Table_ToGRPCMessage/to_grpc_message-8 3.31kB ± 0% 3.31kB ± 0% ~ (all equal)
Table_ToGRPCMessage/from_grpc_message-8 1.82kB ± 0% 1.38kB ± 0% -24.56% (p=0.000 n=10+10)
name old allocs/op new allocs/op delta
Table_ToGRPCMessage/to_grpc_message-8 46.0 ± 0% 46.0 ± 0% ~ (all equal)
Table_ToGRPCMessage/from_grpc_message-8 45.0 ± 0% 9.0 ± 0% -80.00% (p=0.000 n=10+10)
```
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
4a70c42104
[ #376 ] acl: Add benchmarks for Table
conversions
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
84daaf59ef
[ #376 ] refs: Replace []*ObjectID with []ObjectID
...
```
ObjectIDSlice/0_elements/to_grpc_message-8 5.64ns ± 2% 5.89ns ± 4% +4.56% (p=0.000 n=10+10)
ObjectIDSlice/0_elements/from_grpc_message-8 6.68ns ± 3% 6.81ns ± 8% ~ (p=0.143 n=10+10)
ObjectIDSlice/0_elements/marshal-8 7.41ns ± 3% 7.91ns ± 4% +6.63% (p=0.000 n=10+10)
ObjectIDSlice/1_elements/to_grpc_message-8 69.8ns ± 3% 80.5ns ± 7% +15.39% (p=0.000 n=10+10)
ObjectIDSlice/1_elements/from_grpc_message-8 56.4ns ± 6% 34.7ns ± 5% -38.55% (p=0.000 n=10+9)
ObjectIDSlice/1_elements/marshal-8 68.4ns ± 4% 67.6ns ± 4% ~ (p=0.404 n=10+10)
ObjectIDSlice/50_elements/to_grpc_message-8 2.52µs ± 7% 2.56µs ± 4% ~ (p=0.315 n=10+9)
ObjectIDSlice/50_elements/from_grpc_message-8 1.83µs ± 8% 0.44µs ± 1% -75.73% (p=0.000 n=10+8)
ObjectIDSlice/50_elements/marshal-8 2.32µs ±17% 2.22µs ± 3% ~ (p=0.247 n=10+10)
name old alloc/op new alloc/op delta
ObjectIDSlice/0_elements/to_grpc_message-8 0.00B 0.00B ~ (all equal)
ObjectIDSlice/0_elements/from_grpc_message-8 0.00B 0.00B ~ (all equal)
ObjectIDSlice/0_elements/marshal-8 0.00B 0.00B ~ (all equal)
ObjectIDSlice/1_elements/to_grpc_message-8 72.0B ± 0% 72.0B ± 0% ~ (all equal)
ObjectIDSlice/1_elements/from_grpc_message-8 32.0B ± 0% 24.0B ± 0% -25.00% (p=0.000 n=10+10)
ObjectIDSlice/1_elements/marshal-8 48.0B ± 0% 48.0B ± 0% ~ (all equal)
ObjectIDSlice/50_elements/to_grpc_message-8 3.62kB ± 0% 3.62kB ± 0% ~ (all equal)
ObjectIDSlice/50_elements/from_grpc_message-8 1.62kB ± 0% 1.28kB ± 0% -20.79% (p=0.000 n=10+10)
ObjectIDSlice/50_elements/marshal-8 2.05kB ± 0% 2.05kB ± 0% ~ (all equal)
name old allocs/op new allocs/op delta
ObjectIDSlice/0_elements/to_grpc_message-8 0.00 0.00 ~ (all equal)
ObjectIDSlice/0_elements/from_grpc_message-8 0.00 0.00 ~ (all equal)
ObjectIDSlice/0_elements/marshal-8 0.00 0.00 ~ (all equal)
ObjectIDSlice/1_elements/to_grpc_message-8 2.00 ± 0% 2.00 ± 0% ~ (all equal)
ObjectIDSlice/1_elements/from_grpc_message-8 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10)
ObjectIDSlice/1_elements/marshal-8 1.00 ± 0% 1.00 ± 0% ~ (all equal)
ObjectIDSlice/50_elements/to_grpc_message-8 51.0 ± 0% 51.0 ± 0% ~ (all equal)
ObjectIDSlice/50_elements/from_grpc_message-8 51.0 ± 0% 1.0 ± 0% -98.04% (p=0.000 n=10+10)
ObjectIDSlice/50_elements/marshal-8 1.00 ± 0% 1.00 ± 0% ~ (all equal)
```
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
529d636ede
[ #376 ] refs: Add benchmarks for ObjectID slice conversions
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-15 12:19:49 +03:00
Evgenii Stratonikov
50382114f4
[ #383 ] rpc/client: Export URI-parsing function
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-10 19:16:42 +03:00
Evgenii Stratonikov
fadd47f4fb
[ #376 ] object: remove pointer from Attribute slice
...
```
name old time/op new time/op delta
AttributesMarshal/marshal-8 4.44µs ± 9% 2.72µs ± 0% -38.79% (p=0.000 n=10+9)
AttributesMarshal/unmarshal-8 3.16µs ±13% 0.55µs ± 4% -82.60% (p=0.000 n=10+10)
name old alloc/op new alloc/op delta
AttributesMarshal/marshal-8 4.42kB ± 0% 4.42kB ± 0% ~ (all equal)
AttributesMarshal/unmarshal-8 2.02kB ± 0% 1.79kB ± 0% -11.11% (p=0.000 n=10+10)
name old allocs/op new allocs/op delta
AttributesMarshal/marshal-8 51.0 ± 0% 51.0 ± 0% ~ (all equal)
AttributesMarshal/unmarshal-8 51.0 ± 0% 1.0 ± 0% -98.04% (p=0.000 n=10+10)
```
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-09 15:23:13 +03:00
Evgenii Stratonikov
204126893e
[ #376 ] object: add benchmarks for attributes marshal/unmarshal
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-09 15:23:13 +03:00
Leonard Lyubich
d065453bd0
[ #380 ] Support changes in signature schemes
...
Support new `SignatureRFC6979` message. Make `refs.ECDSA_SHA512` to be
default scheme.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-03-02 16:49:50 +03:00
Leonard Lyubich
f4fd28e39b
Release v2.12.0 - Heuksando (흑산도, 黑山島)
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-02-25 11:12:57 +03:00
Leonard Lyubich
e872572ba3
Update release instruction
...
Remove no longer needed version section.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-02-25 11:12:57 +03:00
Leonard Lyubich
fd3bf4a56b
Fix linter remarks
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-02-25 11:12:57 +03:00
Leonard Lyubich
99370889d1
[ #371 ] Support recent changes in NeoFS API protocol
...
Support:
* new status codes (object, container, session);
* object `Lock` message;
* different signature schemes.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-02-25 10:24:07 +03:00
Evgenii Stratonikov
a4349f6692
[ #55 ] refs: Add Scheme field to Signature
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-02-25 10:15:28 +03:00
Evgenii Stratonikov
66e1fb8c53
[ #55 ] refs: Fix linter warnings
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-02-25 10:15:28 +03:00
Pavel Karpy
1384523f62
[ #372 ] object: Add object notification unit tests
...
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-02-22 18:19:18 +03:00
Pavel Karpy
4007aa86f4
[ #372 ] object: Add object notification attributes
...
Also, add functions for parsing and setting object notifications.
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-02-22 18:19:18 +03:00
Pavel Karpy
aabc2dd927
[ #372 ] object: Fix filter comment
...
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-02-22 18:19:18 +03:00
Evgenii Stratonikov
60473c44b9
[ #368 ] README.md: change desctiption and link to SDK
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-02-08 11:03:28 +03:00
Leonard Lyubich
32dd0bb3f9
[ #369 ] status: Support WRONG_MAGIC_NUMBER code and detail
...
Define constant for `WrongMagicNumber` local code. Define constant
`DetailIDCorrect` for correct magic detail. Add `ResetDetails`
and `AppendDetails` method pair. Replace `SetDetails` method with new
`SetStatusDetails` function which can be implemented using new methods.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-01-27 16:53:16 +03:00
Leonard Lyubich
959d1c8c38
[ #369 ] status: Compile sources with detailed magic number
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-01-27 16:53:16 +03:00
Leonard Lyubich
227a871a04
[ #367 ] session: Support magic_number
field of RequestMetaHeader
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-01-14 13:17:21 +03:00
Leonard Lyubich
e9a8451fb7
[ #367 ] *: Re-compile proto files of NeoFS API protocol
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-01-14 13:17:21 +03:00
Alex Vanin
f04051c96c
Release v2.11.1
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-12-28 13:00:49 +03:00
Alex Vanin
c64a5c08c8
Update credits
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-12-28 13:00:49 +03:00
Alex Vanin
49db0cfa03
[ #366 ] rpc/client: Inherit read-write gRPC timeout from client
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-12-28 12:49:31 +03:00
Alex Vanin
aa53fb7131
[ #366 ] rpc/grpc: Perform read-write message operations with timeout
...
Remote gRPC server may not return or accept data for a while. gRPC
solves this issue with timeout in context. However, the context is
used for entire gRPC method invocation. Unfortunately the duration
of requests with streams can't be estimated easily.
To solve this issue we can specify timeouts for every message read
and write. Single message has size limit so timeout can be related
to that.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-12-28 12:49:31 +03:00