eb5288f4a5
[ #172 ] pool: Do more retries on unexpected tree service responses
...
1. Try its best by looking for nodes during 'GetNodeByPath'
2. Retry on 'tree not found' and other not found errors
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-10-06 11:12:48 +03:00
60463871db
[ #171 ] pool: Add test for healthy status monitor
...
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-10-03 19:47:22 +03:00
8a04638749
[ #171 ] pool: Close only dialed connections
...
To avoid panics during close operation, close
only dialed connections.
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-10-03 19:47:22 +03:00
ddbfb758c9
[ #171 ] pool: Use dial status to close connections during restarts
...
Every client restart, pool creates new client instance. If client
failed due to dial error, there was no prior connection and go
routine on a server side. If client failed due to communication
or business logic errors, then server side maintains connection and
client should close it to avoid routine and connection leak.
Dialing is a part of healthcheck, so health status is now a enum
of three values:
- unhealthy due to dial fail,
- unhealthy due to transmission fail,
- healthy.
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-10-03 17:00:36 +03:00
99c273f499
[ #169 ] pool: Close inner pools during close routine
...
Some apps do not reuse pool instance and expect that
`pool.Close()` free resources. But it didn't actually
close inner SDK clients, so it leads to goroutine leak
in storage.
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-09-20 12:16:13 +03:00
303508328a
[ #121 ] pool: Refactor PrmSessionCreate usage
...
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2023-09-05 17:32:03 +03:00
5a471e5002
[ #121 ] client: Make PrmObjectDelete fields public
...
* Introduce buildRequest for PrmObjectDelete
* Refactor the usage of these params in pool
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2023-09-04 14:14:22 +00:00
84e7e69f98
[ #121 ] client: Make PrmObjectGet/Head/GetRange fields public
...
* Remove common PrmObjectRead structure
* Introduce buildRequest for PrmObjectGet/Head/GetRange
* Refactor the usage of these params in pool
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2023-08-28 11:26:57 +03:00
46a214d065
[ #149 ] pool: Configure homomorphic hash and buffer size
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-08-25 09:45:15 +03:00
202412230a
[ #115 ] pool: Drop part buffer pool
...
Tests showed that using part buffer pool doesn't save memory a lot.
Especially on big parts.
Probably we can use pool only for small parts
after adding buffer in payloadSizeLimiter
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-08-21 12:03:03 +03:00
3cb3841073
[ #115 ] pool: Try putSingle if possible
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-08-21 12:03:03 +03:00
faeeeab87a
[ #114 ] pool: Don't use part buffers when client cut is off
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-08-21 12:02:40 +03:00
cae215534f
[ #114 ] pool: Fix linter errors
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-08-21 12:02:40 +03:00
518fb79bc0
[ #114 ] pool: Support client cut with memory limiter
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-08-21 12:02:40 +03:00
342524159a
[ #121 ] pool: Make PrmContainerSetEACL fields public
...
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2023-08-21 10:33:19 +03:00
6fdbe75517
[ #121 ] pool: Make PrmContainerEACL fields public
...
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2023-08-16 09:53:47 +00:00
a3b5d4d4f5
[ #51 ] Add node addresses as debug information
...
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-08-15 09:51:40 +03:00
0314b326d3
[ #51 ] Add current nodes as external statistics
...
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-08-15 09:51:13 +03:00
936e6d230b
[ #121 ] pool: Add wait params validation for containerPut method
...
* Add WaitParams.CheckValidity() check because SetWaitParams is deprecated,
but parameters were checked within this setter with checkForPositive()
Signed-off-by: Airat Arifullin a.arifullin@yadro.com
2023-08-05 15:58:14 +00:00
be28b89312
[ #121 ] pool: Make PrmContainerDelete fields public
...
* Refactor client PrmContainerDelete usage
* Introduce WaitParams CheckValidity method
Signed-off-by: Airat Arifullin a.arifullin@yadro.com
2023-08-05 15:58:14 +00:00
3dc8129ed7
[ #135 ] Make all error status receivers pointers
...
Signed-off-by: Alejandro Lopez <a.lopez@yadro.com>
2023-08-04 08:35:01 +00:00
55c52c8d5d
[ #121 ] pool: Make PrmContainerGet fields public
...
* Also refactor client PrmContainerGet usage
Signed-off-by: Airat Arifullin a.arifullin@yadro.com
2023-08-03 10:54:13 +03:00
363f153eaf
[ #136 ] pool: Set order field to get subtree
...
With new revision of tree service protocol, getSubTree
requires to use explicit order field.
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-08-02 10:32:37 +00:00
13d0b170d2
[ #121 ] client: Make pool PrmContainerPut struct fields public
...
Signed-off-by: Airat Arifullin a.arifullin@yadro.com
2023-08-01 09:59:57 +00:00
388d1ca1de
[ #107 ] pool/tree: Support grpc schemas
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-07-07 14:57:13 +03:00
2f88460172
[ #83 ] Allow to split objects in the client
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2023-06-28 12:12:37 +00:00
91e80ba743
[ #73 ] pool/tree: Fix index in retry loop
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-28 13:06:23 +03:00
9d40228cec
[ #73 ] pool/tree: Fix client healthy status
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-08 17:01:55 +03:00
af40dc68f0
[ #84 ] pool/tree: Allow to pass gRPC dial options
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-08 15:55:07 +03:00
981d24a493
[ #84 ] pool: Allow to pass gRPC dial options
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-08 15:54:48 +03:00
19adb4dffa
[ #73 ] pool/tree: Add tests
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-08 14:37:57 +03:00
51e022ab8c
[ #73 ] pool/tree: Add tree pool
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-08 14:37:57 +03:00
0d3dacb515
[ #73 ] pool: Add getters for NodeParam
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-08 14:37:57 +03:00
b2e302624d
[ #73 ] pool/tree: Add proto tree service client
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-06-08 14:37:57 +03:00
9803c2816a
[ #74 ] pool: move to sync/atomic
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-05-19 14:58:30 +03:00
d0762d037d
[ #44 ] pool: Add copies number vector when putting object
...
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-04-20 13:41:05 +03:00
Pavel Karpy
f41860f9bd
[ #46 ] client: Allow set copy_number
for every placement vector
...
Signed-off-by: Pavel Karpy <p.karpy@yadro.com>
2023-04-11 10:06:55 +00:00
fa9573e857
[ #47 ] client: Pass context to Dial() explicitly
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-04-07 08:59:19 +03:00
bc62e2f712
[ #47 ] pool: Resolve contextcheck and containedctx linters
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-04-07 08:59:19 +03:00
708d933fe3
[ #47 ] .golangci.yml: Unify with other FrostFS repos
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-04-07 08:59:19 +03:00
552219b8e1
[ #16 ] pool: Fix counting context canceled error
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-03-29 15:58:04 +03:00
0ad877288e
[TrueCloudLab#16] pool: Don't count grpc canceled error
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-03-10 06:58:34 +00:00
94476f9055
Rename package name
...
Due to source code relocation from GitHub.
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-03-07 15:47:21 +03:00
d4f5bba459
[ #2 ] Update lint config, fix lint errors
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2023-03-01 10:29:23 +03:00
0d3a238d9c
[ #5 ] pool: Update hashicorp/lru
to v2
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-02-24 17:32:40 +03:00
cf64ddfb14
[TrueCloudLab#13] pool: Renew token before it expired
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-01-30 15:06:02 +03:00
cf9a54dcda
[TrueCloudLab#11] pool: Fix handling SplitInfoError
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-01-23 11:07:29 +03:00
Denis Kirillov
b2a37543d3
[ #362 ] pool: Don't use default session token for read
...
Signed-off-by: Denis Kirillov <denis@nspcc.ru>
2023-01-13 13:21:29 +03:00
f0ac49b8f0
[TrueCloudLab#6] pool: Decrease rebalanceInterval
...
Set default rebalance interval to 15s
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-01-13 13:16:22 +03:00
54696acf48
[TrueCloudLab#6] pool: Log node healthy changing
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-01-13 13:16:22 +03:00