Commit Graph

3105 Commits (8fcd0f8f8d40a0e882cf341384d5987c455e2e47)

Author SHA1 Message Date
Airat Arifullin 45f4e6939d [#1117] morph: Make frostfsid client provide GetSubjectExtended method
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-07 10:01:21 +00:00
Ekaterina Lebedeva e07869a8cf [#1100] Remove unused fields
DCO action / DCO (pull_request) Successful in 2m47s Details
Build / Build Components (1.21) (pull_request) Successful in 3m21s Details
Vulncheck / Vulncheck (pull_request) Successful in 3m33s Details
Build / Build Components (1.22) (pull_request) Successful in 5m25s Details
Tests and linters / gopls check (pull_request) Successful in 5m13s Details
Tests and linters / Staticcheck (pull_request) Successful in 6m13s Details
Tests and linters / Lint (pull_request) Successful in 7m2s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 10m2s Details
Tests and linters / Tests with -race (pull_request) Successful in 9m55s Details
Tests and linters / Tests (1.22) (pull_request) Successful in 10m11s Details
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-05-06 10:14:36 +03:00
Alexander Chuprov ec2873caa7 [#1116] node: Fix writecache metrics
DCO action / DCO (pull_request) Successful in 1m35s Details
Vulncheck / Vulncheck (pull_request) Successful in 3m30s Details
Build / Build Components (1.22) (pull_request) Successful in 4m40s Details
Build / Build Components (1.21) (pull_request) Successful in 4m46s Details
Tests and linters / gopls check (pull_request) Successful in 5m22s Details
Tests and linters / Staticcheck (pull_request) Successful in 6m19s Details
Tests and linters / Lint (pull_request) Successful in 7m7s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 9m36s Details
Tests and linters / Tests with -race (pull_request) Successful in 9m30s Details
Tests and linters / Tests (1.22) (pull_request) Successful in 9m46s Details
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2024-05-02 20:03:33 +03:00
Evgenii Stratonikov 71789676d5 [#1114] aclsvc: Add tests for request ownership
DCO action / DCO (pull_request) Successful in 5m13s Details
Build / Build Components (1.21) (pull_request) Successful in 9m51s Details
Build / Build Components (1.22) (pull_request) Successful in 10m21s Details
Vulncheck / Vulncheck (pull_request) Successful in 12m9s Details
Tests and linters / Lint (pull_request) Successful in 16m50s Details
Tests and linters / gopls check (pull_request) Successful in 18m8s Details
Tests and linters / Staticcheck (pull_request) Successful in 19m1s Details
Tests and linters / Tests (1.22) (pull_request) Successful in 19m59s Details
Tests and linters / Tests with -race (pull_request) Successful in 20m5s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 2m52s Details
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-05-02 11:57:39 +03:00
Alexander Chuprov c9efaa5819 [#966] node: Add path of the write_cache to metric labels
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2024-05-02 06:46:46 +00:00
Alexander Chuprov 4730ecfdb8 [#966] node: Refactor WriteCacheMetrics interface
Grouping common fields of methods will enhance the readability of the interface.

Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2024-05-02 06:46:46 +00:00
Anton Nikiforov 411a8d0245 [#1004] blobovnicza: Use TTL for blobovnicza tree cache
DCO action / DCO (pull_request) Successful in 12m46s Details
Vulncheck / Vulncheck (pull_request) Successful in 14m10s Details
Build / Build Components (1.22) (pull_request) Successful in 15m23s Details
Build / Build Components (1.21) (pull_request) Successful in 15m38s Details
Tests and linters / Staticcheck (pull_request) Successful in 3m36s Details
Tests and linters / gopls check (pull_request) Successful in 4m0s Details
Tests and linters / Lint (pull_request) Successful in 5m8s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 7m41s Details
Tests and linters / Tests with -race (pull_request) Successful in 7m46s Details
Tests and linters / Tests (1.22) (pull_request) Successful in 7m58s Details
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-26 19:54:29 +03:00
Anton Nikiforov 112a7c690f [#1103] node: Implement `Get\Head` requests for EC object
DCO action / DCO (pull_request) Successful in 1m44s Details
Vulncheck / Vulncheck (pull_request) Successful in 3m3s Details
Build / Build Components (1.21) (pull_request) Successful in 4m0s Details
Build / Build Components (1.22) (pull_request) Successful in 3m57s Details
Tests and linters / Staticcheck (pull_request) Successful in 4m46s Details
Tests and linters / gopls check (pull_request) Successful in 4m48s Details
Tests and linters / Lint (pull_request) Successful in 5m45s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 8m57s Details
Tests and linters / Tests with -race (pull_request) Successful in 9m10s Details
Tests and linters / Tests (1.22) (pull_request) Successful in 9m20s Details
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-24 18:15:53 +03:00
Anton Nikiforov 167c52a1a9 [#1103] node: Reduce amount of lines for method `StorageEngine.head`
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-24 16:31:04 +03:00
Anton Nikiforov 700e891b85 [#1103] Fix end of file and trim trailing whitespace
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-24 16:31:04 +03:00
Airat Arifullin 10ee865e98 [#1096] tree: Make `verifyClient` fill ape request with user claim tags
Vulncheck / Vulncheck (pull_request) Successful in 2m52s Details
DCO action / DCO (pull_request) Successful in 2m51s Details
Build / Build Components (1.21) (pull_request) Successful in 3m44s Details
Build / Build Components (1.22) (pull_request) Successful in 3m48s Details
Tests and linters / Staticcheck (pull_request) Successful in 4m34s Details
Tests and linters / gopls check (pull_request) Successful in 4m48s Details
Tests and linters / Lint (pull_request) Successful in 5m42s Details
Tests and linters / Tests with -race (pull_request) Successful in 8m56s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 9m7s Details
Tests and linters / Tests (1.22) (pull_request) Successful in 9m15s Details
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-16 15:12:46 +03:00
Airat Arifullin c21d72ac23 [#1096] object: Make ape middleware fill request with user claim tags
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-16 15:12:44 +03:00
Airat Arifullin 6772976657 [#1096] container: Make ape middleware fill request with user claim tags
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-16 15:10:20 +03:00
Evgenii Stratonikov 3ea1d7b729 [#1089] control: Add USER and GROUP targets for local override storage
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-16 11:03:50 +00:00
Evgenii Stratonikov 0094186299 [#1089] control: Format proto files with clang-format
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-16 11:03:50 +00:00
Evgenii Stratonikov 91e79c98ba [#1089] ape: Provide request actor as an additional target
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-16 11:03:50 +00:00
Evgenii Stratonikov e5e0542482 [#1085] log: Move storage log message to constants package
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-15 07:57:00 +00:00
Evgenii Stratonikov 5be36924e3 [#41] log: Log storage operations in only in Debug
They are mostly useless unless we need to _debug_ a specific issue.
The amount of logs we produce is too big.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-15 07:57:00 +00:00
Airat Arifullin 6a46c6d229 [#1090] tree: Make workaround for APE checks
* Make `verifyClient` method perform APE check if a container
  was created with zero-filled basic ACL.
* Object verbs are used in APE, until tree verbs are introduced.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-15 07:45:45 +00:00
Airat Arifullin f4dcb418f2 [#1090] ape: Move ape request and resource implementations to common package
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-15 07:45:45 +00:00
Dmitrii Stepanov 40781b3a20 [#1086] engine: Change mode in case of errors async
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-10 12:29:43 +00:00
Evgenii Stratonikov 5ef5734c4e Reapply "[#972] Drop x/exp/slices dependency"
This reverts commit 946f2ec2bf.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-10 12:09:34 +00:00
Evgenii Stratonikov 669103a33e Reapply "[#972] Use slices.Sort* when useful"
This reverts commit 3359349acb.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-10 12:09:34 +00:00
Evgenii Stratonikov 2c4b50a71e Reapply "[#972] Use require.ElementsMatch() where possible"
This reverts commit 7627d08914.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-10 12:09:34 +00:00
Evgenii Stratonikov 3dc81cb4fc Reapply "[#972] Use min/max builtins"
This reverts commit dad56d2e98.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-10 12:09:34 +00:00
Evgenii Stratonikov d864945961 Reapply "[#972] pilorama: Remove removeDuplicatesInPlace()"
This reverts commit 9f68305c2e.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-10 12:09:34 +00:00
Dmitrii Stepanov 1b17258c04 [#1029] metabase: Add refill metrics
DCO action / DCO (pull_request) Successful in 1m22s Details
Vulncheck / Vulncheck (pull_request) Successful in 3m11s Details
Build / Build Components (1.21) (pull_request) Successful in 3m56s Details
Build / Build Components (1.20) (pull_request) Successful in 3m59s Details
Tests and linters / Staticcheck (pull_request) Successful in 5m31s Details
Tests and linters / gopls check (pull_request) Successful in 5m26s Details
Tests and linters / Lint (pull_request) Successful in 6m13s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 8m54s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 9m13s Details
Tests and linters / Tests with -race (pull_request) Successful in 9m30s Details
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-10 13:05:44 +03:00
Dmitrii Stepanov e3d9dd6ee8 [#1024] blobovnicza: Copy data on iterate
DB value is only valid while the tx is alive.
But handler may to run something in other goroutine.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-10 10:21:11 +03:00
Dmitrii Stepanov 57466594fb [#1024] shard: Resync metabase concurrently
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-10 10:21:10 +03:00
Dmitrii Stepanov 1005bf4f56 [#1024] shard: Add refill metabase benchmark
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-10 10:21:10 +03:00
Dmitrii Stepanov 76398c06b0 [#1080] metabase: Add StorageID metric
DCO action / DCO (pull_request) Successful in 1m19s Details
Build / Build Components (1.21) (pull_request) Successful in 4m6s Details
Vulncheck / Vulncheck (pull_request) Successful in 4m35s Details
Build / Build Components (1.20) (pull_request) Successful in 7m32s Details
Tests and linters / gopls check (pull_request) Successful in 7m43s Details
Tests and linters / Lint (pull_request) Successful in 9m51s Details
Tests and linters / Staticcheck (pull_request) Successful in 9m53s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 12m48s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 13m11s Details
Tests and linters / Tests with -race (pull_request) Successful in 14m4s Details
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-10 10:00:08 +03:00
Dmitrii Stepanov 7b1adfed3e [#1080] metabase: Open bucket for container counter once
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-10 10:00:08 +03:00
Dmitrii Stepanov e74bdaa5d5 [#1080] ape: Use value for APE request
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-09 18:42:03 +03:00
Dmitrii Stepanov 338d8cbebd [#1080] ape: Do not read object headers before Head/Get
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-09 15:27:40 +03:00
Dmitrii Stepanov 5b8200de88 [#984] blobovnicza: Do not fail rebuild on big objects
If blobovnicza contains objects larger than object size parameter
value, then rebuild fails with an error, because there is no such
bucket in database. This commit forces to create bucket on rebuild.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-09 11:51:18 +00:00
Anton Nikiforov 2b88361849 [#1062] object: Fix buffer allocation for `PayloadRange`
DCO action / DCO (pull_request) Successful in 5m34s Details
Vulncheck / Vulncheck (pull_request) Successful in 5m14s Details
Build / Build Components (1.20) (pull_request) Successful in 8m56s Details
Build / Build Components (1.21) (pull_request) Successful in 8m56s Details
Tests and linters / gopls check (pull_request) Successful in 9m3s Details
Tests and linters / Staticcheck (pull_request) Successful in 9m39s Details
Tests and linters / Lint (pull_request) Successful in 10m9s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 13m43s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 14m4s Details
Tests and linters / Tests with -race (pull_request) Successful in 14m40s Details
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-09 11:59:07 +03:00
Dmitrii Stepanov f5b67c6735 [#1064] policer: Disable EC processing
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-09 07:08:53 +00:00
Dmitrii Stepanov 1c5e0f90aa [#1064] putsvc: Add EC put
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-09 07:08:53 +00:00
Dmitrii Stepanov 39da643354 [#1064] putsvc: Refactor distributed target
Extract object builder.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-09 07:08:53 +00:00
Alexander Chuprov 17f7adb640 [#1065] adm: Add support EC parameters
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2024-04-08 12:27:30 +03:00
Anton Nikiforov 9aa533e59a [#1072] node, ir: Add new config option `kludge_compatibility_mode`
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-04 11:05:25 +03:00
Anton Nikiforov d614f04a0a [#1072] Fix gofumpt issues
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-03 22:21:14 +03:00
Airat Arifullin 4738508ce2 [#1063] go.mod: Update SDK version
* Update frostfs-sdk and frostfs-api-go versions.
* Refactor depreacted method ReplicaNumberByIndex.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-03 10:33:51 +00:00
Evgenii Stratonikov ff4c23f59a [#1070] services/tree: Fix fast listing depth processing
For unsorted `GetSubTree()` we return a single node for depth=1.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-02 14:41:31 +00:00
Evgenii Stratonikov 17af91619a [#1070] pilorama: Fix cycling behaviour for sorted listing
In case there are no items left, return empty slice.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-02 14:41:31 +00:00
Ekaterina Lebedeva d5194ab2a6 [#949] metabase: fix shard.UpdateID()
Vulncheck / Vulncheck (pull_request) Successful in 1m20s Details
DCO action / DCO (pull_request) Successful in 1m59s Details
Build / Build Components (1.21) (pull_request) Successful in 3m25s Details
Build / Build Components (1.20) (pull_request) Successful in 4m46s Details
Tests and linters / Staticcheck (pull_request) Successful in 6m5s Details
Tests and linters / gopls check (pull_request) Successful in 6m17s Details
Tests and linters / Lint (pull_request) Successful in 7m7s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 8m38s Details
Tests and linters / Tests with -race (pull_request) Successful in 8m51s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 8m56s Details
metabase.Open() now reports metabase mode metric. shard.UpdateID()
needs to read shard ID from metabase => needs to open metabase.
It caused reporting 'shard undefined' metrics. To avoid reporting
wrong metrics metabase.GetShardID() was added which also opens
metabase and does not report metrics.

Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-04-01 17:27:34 +03:00
Ekaterina Lebedeva 81a0346a96 [#949] metabase: fix metabase mode metric
It used to always show CLOSED regardless of actual mode.
Now metric represents actual metabase mode of operations.

Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-04-01 17:27:34 +03:00
Evgenii Stratonikov e12fcc041d [#1059] services/tree: Fast sorted listing
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-01 12:37:34 +00:00
Evgenii Stratonikov f23e38c285 Revert "[#446] engine: Move to read-only on blobstor errors"
DCO action / DCO (pull_request) Successful in 2m14s Details
Build / Build Components (1.20) (pull_request) Successful in 4m7s Details
Vulncheck / Vulncheck (pull_request) Successful in 3m30s Details
Build / Build Components (1.21) (pull_request) Successful in 4m15s Details
Tests and linters / Staticcheck (pull_request) Successful in 5m41s Details
Tests and linters / Lint (pull_request) Successful in 6m6s Details
Tests and linters / gopls check (pull_request) Successful in 6m42s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 7m47s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 8m21s Details
Tests and linters / Tests with -race (pull_request) Successful in 8m20s Details
This reverts commit 69df0d21c2.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-01 12:48:30 +03:00
Dmitrii Stepanov 942d83611b [#874] engine: Revert Check object existance concurrently
This reverts commit f526f49995.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-01 08:42:34 +00:00
Evgenii Stratonikov fd8cdb9671 [#1057] netmap: Do not iterate over external addresses in Node
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-03-29 20:46:24 +00:00
Ekaterina Lebedeva 0990a9b0bd [#1055] blobstor: fix mode metric
It used to always show CLOSED after setting shard mode
to read-only regardless of actual mode.
Now metric represents actual blobstor mode of operations.

Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-03-29 20:44:47 +00:00
Evgenii Stratonikov c7a12ca3d8 [#1054] network: Optimize IsTLSEnabled()
DCO action / DCO (pull_request) Successful in 5m33s Details
Vulncheck / Vulncheck (pull_request) Successful in 5m54s Details
Build / Build Components (1.21) (pull_request) Successful in 10m3s Details
Tests and linters / gopls check (pull_request) Successful in 11m49s Details
Build / Build Components (1.20) (pull_request) Successful in 12m47s Details
Tests and linters / Staticcheck (pull_request) Successful in 13m21s Details
Tests and linters / Lint (pull_request) Successful in 14m21s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 16m39s Details
Tests and linters / Tests with -race (pull_request) Successful in 16m46s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 16m59s Details
No big deal, but it is called multiple times in sorting routine, this
easily results in 20 allocations per group traversal.

```
goos: linux
goarch: amd64
pkg: git.frostfs.info/TrueCloudLab/frostfs-node/pkg/network
cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
                    │     old     │                 new                 │
                    │   sec/op    │   sec/op     vs base                │
AddressTLSEnabled-8   184.6n ± 1%   103.3n ± 6%  -44.04% (p=0.000 n=10)

                    │    old     │                new                │
                    │    B/op    │   B/op    vs base                 │
AddressTLSEnabled-8   704.0 ± 0%   0.0 ± 0%  -100.00% (p=0.000 n=10)

                    │    old     │                 new                 │
                    │ allocs/op  │ allocs/op   vs base                 │
AddressTLSEnabled-8   1.000 ± 0%   0.000 ± 0%  -100.00% (p=0.000 n=10)
```

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-03-21 18:48:35 +03:00
Dmitrii Stepanov c09c701613 [#1048] metabase: Fix drop buckets during resync
Vulncheck / Vulncheck (pull_request) Successful in 1m35s Details
DCO action / DCO (pull_request) Successful in 2m12s Details
Build / Build Components (1.21) (pull_request) Successful in 3m57s Details
Build / Build Components (1.20) (pull_request) Successful in 4m45s Details
Tests and linters / Staticcheck (pull_request) Successful in 5m32s Details
Tests and linters / gopls check (pull_request) Successful in 5m33s Details
Tests and linters / Lint (pull_request) Successful in 6m18s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 8m8s Details
Tests and linters / Tests with -race (pull_request) Successful in 8m14s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 8m36s Details
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-19 14:28:31 +03:00
Airat Arifullin 6959e617c4 [#1047] object: Set container owner ID property to ape request
* Introduce ContainerOwner field in RequestContext.
* Set ContainerOwner in aclv2 middleware.
* Set PropertyKeyContainerOwnerID for object ape request.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-03-18 15:39:50 +00:00
Airat Arifullin d7be70e93f [#1040] object: Wrap CheckAPE errors to status errors
* All methods should wrap CheckAPE error, if it occurs, to
  status error.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-03-14 07:34:03 +00:00
Anton Nikiforov 5ee5f1df42 [#976] control: Introduce new method `RemoveChainLocalOverridesByTarget`
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-03-13 15:33:19 +03:00
Anton Nikiforov 2d595ec15f [#976] ape: Update dependency
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-03-13 14:54:19 +03:00
Anton Nikiforov 7ed07d2dfd [#976] morph: Implement missing methods for `SwitchRPCGuardedActor`
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-03-13 14:54:19 +03:00
Dmitrii Stepanov 17f5463389 [#1043] cli: Add reset evacuation status command
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-13 10:29:45 +00:00
Dmitrii Stepanov 31e2396a5f [#1043] control: Add ResetEvacuationStatus implementation
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-13 10:29:45 +00:00
Dmitrii Stepanov 926cdeb072 [#1043] services: Regenerate proto
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-13 10:29:45 +00:00
Airat Arifullin 5c252c9193 [#1039] object: Skip APE check for certain request roles
DCO action / DCO (pull_request) Successful in 1m31s Details
Vulncheck / Vulncheck (pull_request) Successful in 2m52s Details
Build / Build Components (1.21) (pull_request) Successful in 3m52s Details
Build / Build Components (1.20) (pull_request) Successful in 4m16s Details
Tests and linters / gopls check (pull_request) Successful in 11m54s Details
Tests and linters / Staticcheck (pull_request) Successful in 12m31s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 12m49s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 13m8s Details
Tests and linters / Tests with -race (pull_request) Successful in 13m14s Details
Tests and linters / Lint (pull_request) Successful in 13m31s Details
* Skip APE check if a role is Container.
* Skip APE check if a role is IR and methods are get-like.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-03-12 16:15:20 +03:00
Anton Nikiforov 3195142d67 [#959] writecache: Avoid manipulation with cache in `DEGRADED` mode
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-03-11 18:35:41 +00:00
Dmitrii Stepanov d433b49265 [#973] node: Resolve perfsprint linter
DCO action / DCO (pull_request) Successful in 2m40s Details
Vulncheck / Vulncheck (pull_request) Successful in 3m41s Details
Build / Build Components (1.20) (pull_request) Successful in 4m27s Details
Build / Build Components (1.21) (pull_request) Successful in 5m6s Details
Tests and linters / Staticcheck (pull_request) Successful in 6m16s Details
Tests and linters / gopls check (pull_request) Successful in 6m23s Details
Tests and linters / Lint (pull_request) Successful in 6m48s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 9m4s Details
Tests and linters / Tests with -race (pull_request) Successful in 9m9s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 9m23s Details
`fmt.Errorf can be replaced with errors.New` and `fmt.Sprintf can be replaced with string addition`

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-11 17:55:50 +03:00
Dmitrii Stepanov 66a26b7775 [#973] node: Resolve revive: unused-parameter linter
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-11 17:11:49 +03:00
Dmitrii Stepanov 0882840bf5 [#634] shard: Add writecache inhume tests
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-06 13:12:34 +03:00
Anton Nikiforov ae5bb87e70 Revert "[#866] Use TTL for blobovnicza tree cache"
DCO action / DCO (pull_request) Successful in 2m7s Details
Vulncheck / Vulncheck (pull_request) Successful in 3m7s Details
Tests and linters / Staticcheck (pull_request) Successful in 5m12s Details
Tests and linters / Lint (pull_request) Successful in 6m23s Details
Tests and linters / Tests with -race (pull_request) Successful in 7m11s Details
Tests and linters / gopls check (pull_request) Successful in 7m27s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 8m5s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 8m22s Details
Build / Build Components (1.21) (pull_request) Successful in 1m41s Details
Build / Build Components (1.20) (pull_request) Successful in 1m56s Details
This reverts commit d9cbb16bd3.

Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-03-01 19:29:33 +03:00
Dmitrii Stepanov d6534fd755 [#1016] frostfs-node: Fix gopls issues
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-01 12:13:43 +03:00
Airat Arifullin 93bf9acbc2 [#898] control: Remove removed flag from RemoveChainLocalOverrideResponse
* Remove removed flag in service.proto for RemoveChainLocalOverrideResponse.
* Regenerate control API.
* Return error only if RemoveOverride returns non-NotFound code.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-02-28 19:07:07 +00:00
Airat Arifullin 75a1a95c2c [#986] tree: Skip ACL checks if basicACL mask is unset
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-02-28 19:05:57 +00:00
Airat Arifullin b1d171c261 [#986] container: Interpret APE NoRuleFound as request deny
* If APE check returns NoRuleFound, then it is taken for request deny.
* Add more unit-test for ape container middleware.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-02-28 19:05:57 +00:00
Airat Arifullin 7cc368e188 [#986] object: Introduce soft ape checks
* Soft APE check means that APE should allow request even
  it gets status NoRuleFound for a request. Otherwise,
  it is interpreted as Deny.
* Soft APE check is performed if basic ACL mask is not set.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-02-28 19:05:57 +00:00
Dmitrii Stepanov 918613546f [#1008] metabase: Do not update storageID on put
DCO action / DCO (pull_request) Successful in 4m56s Details
Build / Build Components (1.21) (pull_request) Successful in 7m52s Details
Build / Build Components (1.20) (pull_request) Successful in 8m11s Details
Vulncheck / Vulncheck (pull_request) Successful in 8m9s Details
Tests and linters / Staticcheck (pull_request) Successful in 9m58s Details
Tests and linters / Lint (pull_request) Successful in 10m42s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 12m14s Details
Tests and linters / Tests with -race (pull_request) Successful in 12m17s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 12m34s Details
There may be a race condition between put an object and
flushing the writecache:
1. Put object to the writecache
2. Writecache flushes object to the blobstore and sets blobstore's
storageID
3. Put object to the metabase, set writecache's storageID

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-02-28 11:01:50 +03:00
Dmitrii Stepanov 2ad433dbcb [#1005] engine: Drop shards weights
DCO action / DCO (pull_request) Successful in 4m7s Details
Vulncheck / Vulncheck (pull_request) Successful in 4m53s Details
Build / Build Components (1.21) (pull_request) Successful in 5m46s Details
Build / Build Components (1.20) (pull_request) Successful in 6m21s Details
Tests and linters / Staticcheck (pull_request) Successful in 7m45s Details
Tests and linters / Lint (pull_request) Successful in 8m44s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 13m1s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 15m42s Details
Tests and linters / Tests with -race (pull_request) Successful in 16m10s Details
Unused.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-02-26 17:25:05 +03:00
Evgenii Stratonikov 4b13b85173 [#1000] morph: Fix batch size in TraverseIterator()
Initial prefetch size can be arbitrary an restricted only by VM/RPC
limits. For TraverseIterator() there is an explicit check on the
server-side, though.
Introduced in df055fead5.
Refs #931.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-23 06:24:40 +00:00
Evgenii Stratonikov e18f0f5178 [#999] morph: Use Global scope for proxy contract
DCO action / DCO (pull_request) Successful in 2m28s Details
Vulncheck / Vulncheck (pull_request) Successful in 2m52s Details
Build / Build Components (1.21) (pull_request) Successful in 4m5s Details
Build / Build Components (1.20) (pull_request) Successful in 4m12s Details
Tests and linters / Lint (pull_request) Successful in 6m10s Details
Tests and linters / Staticcheck (pull_request) Successful in 5m59s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 8m24s Details
Tests and linters / Tests with -race (pull_request) Successful in 8m38s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 8m58s Details
Proxy contract can now be used as an owner of NNS domains, thus we need
it not only to pay for the transaction but also to check domain
ownership. CalledByEntry is not enough, because we may register NNS
domains owned by proxy indirectly from the container contract.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-21 14:28:42 +03:00
Dmitrii Stepanov 7470c383dd [#997] metabase: Drop toMoveIt bucket
DCO action / DCO (pull_request) Successful in 2m9s Details
Vulncheck / Vulncheck (pull_request) Successful in 3m3s Details
Build / Build Components (1.20) (pull_request) Successful in 3m56s Details
Build / Build Components (1.21) (pull_request) Successful in 3m54s Details
Tests and linters / Staticcheck (pull_request) Successful in 5m26s Details
Tests and linters / Lint (pull_request) Successful in 6m19s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 8m6s Details
Tests and linters / Tests with -race (pull_request) Successful in 8m20s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 8m39s Details
It is not used.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-02-21 10:06:05 +03:00
Evgenii Stratonikov adf7ebab5b [#996] metabase: Speed up bucket creation
Most of the time it exits, e.g. when it is per-container and use on each
object PUT. Bbolt implementation first tries to create bucket and then
returns it if it exists. Create operation uses cursor and thus is not
very lightweight, we can avoid it.

```
goos: linux
goarch: amd64
pkg: git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/metabase
cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
                 │     old     │                new                 │
                 │   sec/op    │   sec/op     vs base               │
Put/parallel-8     174.4µ ± 3%   163.3µ ± 3%  -6.39% (p=0.000 n=10)
Put/sequential-8   263.3µ ± 2%   259.0µ ± 1%  -1.64% (p=0.000 n=10)
geomean            214.3µ        205.6µ       -4.05%

                 │     old      │                 new                 │
                 │     B/op     │     B/op      vs base               │
Put/parallel-8     275.3Ki ± 3%   281.1Ki ± 4%       ~ (p=0.063 n=10)
Put/sequential-8   413.0Ki ± 2%   426.6Ki ± 2%  +3.29% (p=0.003 n=10)
geomean            337.2Ki        346.3Ki       +2.70%

                 │     old     │                 new                 │
                 │  allocs/op  │  allocs/op   vs base                │
Put/parallel-8      678.0 ± 1%    524.5 ± 2%  -22.64% (p=0.000 n=10)
Put/sequential-8   1.329k ± 0%   1.183k ± 0%  -10.91% (p=0.000 n=10)
geomean             949.1         787.9       -16.98%
```

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-20 15:42:58 +00:00
Evgenii Stratonikov 9f68305c2e Revert "[#972] pilorama: Remove removeDuplicatesInPlace()"
This reverts commit 45fd4e4ff1.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 15:36:01 +00:00
Evgenii Stratonikov dad56d2e98 Revert "[#972] Use min/max builtins"
This reverts commit 89784b2e0a.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 15:36:01 +00:00
Evgenii Stratonikov 7627d08914 Revert "[#972] Use require.ElementsMatch() where possible"
This reverts commit 6d9707ff1f.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 15:36:01 +00:00
Evgenii Stratonikov 3359349acb Revert "[#972] Use slices.Sort* when useful"
This reverts commit b871d7a5e8.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 15:36:01 +00:00
Evgenii Stratonikov 946f2ec2bf Revert "[#972] Drop x/exp/slices dependency"
This reverts commit f3e50772fd.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 15:36:01 +00:00
Dmitrii Stepanov 13d5cd3e21 [#991] logger: Fix journald logger
DCO action / DCO (pull_request) Successful in 1m7s Details
Vulncheck / Vulncheck (pull_request) Successful in 3m32s Details
Build / Build Components (1.22) (pull_request) Successful in 3m52s Details
Build / Build Components (1.21) (pull_request) Successful in 3m58s Details
Tests and linters / Lint (pull_request) Successful in 5m13s Details
Tests and linters / Tests (1.22) (pull_request) Successful in 7m22s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 7m34s Details
Tests and linters / Tests with -race (pull_request) Successful in 7m32s Details
Tests and linters / Staticcheck (pull_request) Successful in 2m22s Details
Allow to change logger level.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-02-19 16:18:13 +03:00
Evgenii Stratonikov f3e50772fd [#972] Drop x/exp/slices dependency
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 13:13:09 +00:00
Evgenii Stratonikov b871d7a5e8 [#972] Use slices.Sort* when useful
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 13:13:09 +00:00
Evgenii Stratonikov 6d9707ff1f [#972] Use require.ElementsMatch() where possible
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 13:13:09 +00:00
Evgenii Stratonikov 89784b2e0a [#972] Use min/max builtins
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 13:13:09 +00:00
Evgenii Stratonikov 45fd4e4ff1 [#972] pilorama: Remove removeDuplicatesInPlace()
Also, check that slices.CompareFunc() indeed passes all the tests before
removal.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 13:13:09 +00:00
Evgenii Stratonikov 15fc5bac26 [#972] keyer: Use UncompressedBytes() for marshaling
elliptic.Marshal() becomes deprecated in go1.21

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 13:13:09 +00:00
Dmitrii Stepanov 2680192ba0 [#988] objectSvc: Fix `SetMarshalData` for PutSingle
DCO action / DCO (pull_request) Successful in 5m10s Details
Vulncheck / Vulncheck (pull_request) Successful in 5m24s Details
Build / Build Components (1.21) (pull_request) Successful in 7m40s Details
Build / Build Components (1.20) (pull_request) Successful in 7m50s Details
Tests and linters / Staticcheck (pull_request) Successful in 7m52s Details
Tests and linters / Lint (pull_request) Successful in 9m8s Details
Tests and linters / Tests with -race (pull_request) Successful in 10m54s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 11m12s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 11m7s Details
After api-go update it is required to pass marshal data
to `SetMarshalData`.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-02-15 17:21:08 +03:00
Anton Nikiforov 05b5f5ca85 [#959] writecache: Fix panic on `Get` when it is not initialized
Vulncheck / Vulncheck (pull_request) Successful in 2m41s Details
DCO action / DCO (pull_request) Successful in 2m43s Details
Tests and linters / Staticcheck (pull_request) Successful in 3m55s Details
Build / Build Components (1.21) (pull_request) Successful in 3m45s Details
Build / Build Components (1.20) (pull_request) Successful in 4m19s Details
Tests and linters / Lint (pull_request) Successful in 5m30s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 7m57s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 8m22s Details
Tests and linters / Tests with -race (pull_request) Successful in 8m39s Details
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-02-14 16:10:33 +03:00
Anton Nikiforov 2429508ac5 [#959] shard: Skip rebuild in `DEGRADED` mode
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-02-14 15:39:28 +03:00
Anton Nikiforov 0bd030507e [#948] metrics: Set actual value for `shard_id` after restart
DCO action / DCO (pull_request) Successful in 2m26s Details
Vulncheck / Vulncheck (pull_request) Successful in 3m56s Details
Tests and linters / Staticcheck (pull_request) Successful in 4m18s Details
Build / Build Components (1.21) (pull_request) Successful in 4m11s Details
Build / Build Components (1.20) (pull_request) Successful in 4m19s Details
Tests and linters / Lint (pull_request) Successful in 6m3s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 8m7s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 8m26s Details
Tests and linters / Tests with -race (pull_request) Successful in 9m20s Details
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-02-13 09:43:21 +03:00
Anton Nikiforov 6a5769d1da [#948] Fix `gofumpt` issue
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-02-13 09:40:46 +03:00
Dmitrii Stepanov 962e5a9c19 [#736] logger: Add journald support
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-02-12 06:17:22 +00:00
Evgenii Stratonikov b36a453238 [#970] fstree: Add build tag to enable generic version on linux
Unless tested, generic version can start gaining bugs. With a separate
build tag we can have the best of both worlds:
1. Use optimized implementation for linux by default.
2. Run tests or benchmarks for both. Note that they are not actually
   run automatically now, but this is at leas possible.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-09 16:12:11 +00:00
Evgenii Stratonikov abd502215f [#970] fstree: Move file locking to the generic writer
It is not a part of FSTree itself, but rather a way to solve concurrent
counter update on non-linux implementations. New linux implementations
is pretty simple: link fails when the file exists, unlink fails when the
file doesn't exist.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-09 16:12:11 +00:00
Evgenii Stratonikov fb74524ac7 [#970] fstree: Move delete implementation to a separate file
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-09 16:12:11 +00:00