76a0cfdadb
[ #217 ] netmap: Return node netmap state directly
...
Signed-off-by: Aleksey Savchuk <a.savchuk@yadro.com>
2024-09-09 08:51:51 +00:00
46ee543899
[ #265 ] go.mod: Use range
over int
...
Since Go 1.22 a `for` statement with a `range` clause is able
to iterate through integer values from zero to an upper limit.
gopatch script:
@@
var i, e expression
@@
-for i := 0; i <= e - 1; i++ {
+for i := range e {
...
}
@@
var i, e expression
@@
-for i := 0; i <= e; i++ {
+for i := range e + 1 {
...
}
@@
var i, e expression
@@
-for i := 0; i < e; i++ {
+for i := range e {
...
}
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-09-04 12:37:46 +03:00
9115d3f281
[ #1316 ] lint: Fix warnings
...
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-08-21 17:59:10 +03:00
2077b35736
[ #231 ] netmap: Add LIKE
operation for filter
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-08-12 09:49:12 +03:00
e977b8a94c
[ #236 ] netmap: Remove unused field from meanIQRAgg
...
It was there since the inception [1], but we never got to use it.
[1] 5931284e07
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-07-12 14:25:07 +03:00
6729f54c4e
[ #236 ] netmap: Reuse slice for weights in ContainerNodes()
...
```
goos: linux
goarch: amd64
pkg: git.frostfs.info/TrueCloudLab/frostfs-sdk-go/netmap
cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
│ alloc │ weights │
│ sec/op │ sec/op vs base │
Netmap_ContainerNodes/REP_2-8 8.677µ ± 6% 8.384µ ± 10% ~ (p=0.247 n=10)
Netmap_ContainerNodes/REP_2_IN_X_CBF_2_SELECT_2_FROM_*_AS_X-8 7.946µ ± 14% 7.998µ ± 6% ~ (p=0.481 n=10)
geomean 8.303µ 8.189µ -1.38%
│ alloc │ weights │
│ B/op │ B/op vs base │
Netmap_ContainerNodes/REP_2-8 7.734Ki ± 0% 7.617Ki ± 0% -1.52% (p=0.000 n=10)
Netmap_ContainerNodes/REP_2_IN_X_CBF_2_SELECT_2_FROM_*_AS_X-8 7.156Ki ± 0% 7.039Ki ± 0% -1.64% (p=0.000 n=10)
geomean 7.440Ki 7.322Ki -1.58%
│ alloc │ weights │
│ allocs/op │ allocs/op vs base │
Netmap_ContainerNodes/REP_2-8 92.00 ± 0% 77.00 ± 0% -16.30% (p=0.000 n=10)
Netmap_ContainerNodes/REP_2_IN_X_CBF_2_SELECT_2_FROM_*_AS_X-8 92.00 ± 0% 77.00 ± 0% -16.30% (p=0.000 n=10)
geomean 92.00 77.00 -16.30%
```
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-07-12 14:25:07 +03:00
159a50fcf0
[ #236 ] netmap: Reduce allocations in getSelection()
...
```
goos: linux
goarch: amd64
pkg: git.frostfs.info/TrueCloudLab/frostfs-sdk-go/netmap
cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
│ new │ alloc │
│ sec/op │ sec/op vs base │
Netmap_ContainerNodes/REP_2-8 9.227µ ± 13% 8.677µ ± 6% ~ (p=0.165 n=10)
Netmap_ContainerNodes/REP_2_IN_X_CBF_2_SELECT_2_FROM_*_AS_X-8 9.189µ ± 7% 7.946µ ± 14% -13.53% (p=0.001 n=10)
geomean 9.208µ 8.303µ -9.82%
│ new │ alloc │
│ B/op │ B/op vs base │
Netmap_ContainerNodes/REP_2-8 8.320Ki ± 0% 7.734Ki ± 0% -7.04% (p=0.000 n=10)
Netmap_ContainerNodes/REP_2_IN_X_CBF_2_SELECT_2_FROM_*_AS_X-8 7.742Ki ± 0% 7.156Ki ± 0% -7.57% (p=0.000 n=10)
geomean 8.026Ki 7.440Ki -7.31%
│ new │ alloc │
│ allocs/op │ allocs/op vs base │
Netmap_ContainerNodes/REP_2-8 122.00 ± 0% 92.00 ± 0% -24.59% (p=0.000 n=10)
Netmap_ContainerNodes/REP_2_IN_X_CBF_2_SELECT_2_FROM_*_AS_X-8 122.00 ± 0% 92.00 ± 0% -24.59% (p=0.000 n=10)
geomean 122.0 92.00 -24.59%
```
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-07-12 14:25:07 +03:00
a69f00903c
[ #236 ] netmap: Replace sort.Slice() with slices.Sort()
...
```
goos: linux
goarch: amd64
pkg: git.frostfs.info/TrueCloudLab/frostfs-sdk-go/netmap
cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
│ old │ new │
│ sec/op │ sec/op vs base │
Netmap_ContainerNodes/REP_2-8 10.395µ ± 14% 9.227µ ± 13% -11.24% (p=0.015 n=10)
Netmap_ContainerNodes/REP_2_IN_X_CBF_2_SELECT_2_FROM_*_AS_X-8 10.110µ ± 16% 9.189µ ± 7% ~ (p=0.105 n=10)
geomean 10.25µ 9.208µ -10.18%
│ old │ new │
│ B/op │ B/op vs base │
Netmap_ContainerNodes/REP_2-8 8.695Ki ± 0% 8.320Ki ± 0% -4.31% (p=0.000 n=10)
Netmap_ContainerNodes/REP_2_IN_X_CBF_2_SELECT_2_FROM_*_AS_X-8 8.117Ki ± 0% 7.742Ki ± 0% -4.62% (p=0.000 n=10)
geomean 8.401Ki 8.026Ki -4.47%
│ old │ new │
│ allocs/op │ allocs/op vs base │
Netmap_ContainerNodes/REP_2-8 138.0 ± 0% 122.0 ± 0% -11.59% (p=0.000 n=10)
Netmap_ContainerNodes/REP_2_IN_X_CBF_2_SELECT_2_FROM_*_AS_X-8 138.0 ± 0% 122.0 ± 0% -11.59% (p=0.000 n=10)
geomean 138.0 122.0 -11.59%
```
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-07-12 14:25:07 +03:00
51cefd4908
[ #232 ] netmap: Allow empty values for unknown parameters in network config
...
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2024-07-09 12:19:25 +03:00
02c936f397
[ #216 ] netmap: Add policy decode fuzz test
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-05-07 11:10:37 +00:00
99e02858af
[ #220 ] netmap: Fix setters for Replica.DataCount/ParityCount
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-05-07 09:34:14 +03:00
425d48f68b
[ #211 ] netmap: Introduce ReplicaDescriptor method
...
* Make ReplicaNumberByIndex deprecated.
* Introduce ReplicaDescriptor method that access i-th replica directly.
* Introduce new getters for ReplicaDescriptor.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-03-29 13:48:04 +03:00
e9be3e6d94
[ #205 ] netmap: Add well-known EC parameters to network config
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-03-22 10:14:12 +00:00
70e9e40c7f
[ #205 ] netmap: Add EC statement to placement policy
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-03-22 10:14:12 +00:00
6fe4e2541d
[ #207 ] netmap: Fix string escape in PlacementPolicy.String()
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-03-01 15:02:05 +00:00
56debcfa56
[ #190 ] sdk-go: Gofumpt fixes
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2023-11-22 19:21:20 +03:00
03d35dd1f3
[ #166 ] netmap: Add support YML tests
...
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2023-11-17 14:43:03 +03:00
dea8759762
[ #166 ] netmap: Move tests from JSON to YML
...
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2023-11-17 14:42:39 +03:00
a02c0bfac8
[ #186 ] netmap: Marshal policy with brackets
...
Brackets can be semantically important and must not be omitted,
otherwise the output is plain wrong.
We do not take the responsibility to preserve every bracket, though,
because parser does some optimizations related to grouping long chains
of filters combined with the same operation.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-10-27 10:54:45 +03:00
20d325e307
[ #167 ] netmap: Fix reverse min agregator
...
The higher the price, the lower reverse min weight should be.
Previously nodes with 0 price had 0 weight which is a bit misleading.
Introduced in d71a0e0755
.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-10-27 07:53:19 +00:00
d71a0e0755
[ #88 ] netmap: use bool, fix hrw_sort tests
...
Signed-off-by: Andrew Danilin <andnilin@gmail.com>
2023-10-03 07:05:03 +00:00
163b3e1961
[ #88 ] netmap: fix min aggregator bug, add tests
...
Signed-off-by: Andrew Danilin <andnilin@gmail.com>
2023-10-03 07:05:03 +00:00
555ccc63b2
[ #167 ] netmap: Allow to select insufficient number of nodes
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-09-15 14:47:54 +03:00
0550438b53
[ #167 ] netmap/tests: Add replica to invalid tests
...
Make sure we fail exactly because of the reason specified.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-09-15 14:33:44 +03:00
c899163860
[ #167 ] netmap/tests: Add json file name to the test output
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-09-15 14:33:44 +03:00
ac8fc6d440
[ #162 ] netmap: Allow to parse single unnamed selectors
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-09-11 15:22:24 +03:00
4df642e941
[ #162 ] netmap: Fix possible panic
...
Placement policy is unvalidated external input.
Under no circumstances should we panic here.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-09-11 15:19:56 +03:00
49ad985cad
[ #161 ] *: Do not use math/rand.Read()
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-09-08 17:17:02 +03:00
b5fe52d6bd
[ #150 ] policy: Check for redundant selectors and filters
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2023-08-29 14:16:57 +03:00
b91f9d8c79
[#xx] Add support for SELECT-FILTER expressions
...
Signed-off-by: Alejandro Lopez <a.lopez@yadro.com>
2023-07-17 10:29:48 +00:00
998fe1a7ab
[ #102 ] netmap: properly process multiple REP
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-07-11 14:21:35 +00:00
14ed3e177d
[ #104 ] nemtap: Escape special symbols in filters
...
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-07-07 09:33:00 +00:00
fe28c33277
[ #104 ] netmap: Add test with quote escaping
...
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-07-07 09:33:00 +00:00
5d62cef27e
[ #98 ] Fix linter issues
...
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-06-28 12:13:02 +00:00
fcbf96add6
[ #76 ] Add UNIQUE keyword
...
Signed-off-by: Alejandro Lopez <a.lopez@yadro.com>
2023-06-06 13:54:07 +03:00
4f48f6c9e0
[ #78 ] netmap: Add new keywords NOT and UNIQUE
...
* Add the rule for NOT operation to the policy parser grammar
* Regenerate query parse
* Implement NOT in filter
* Add unit-tests
Signed-off-by: Airat Arifullin a.arifullin@yadro.com
2023-06-02 17:47:20 +03:00
030ff2f122
[ #87 ] netmap: Add benchmark for ContainerNodes()
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-06-02 14:54:40 +03:00
0f7455ff7a
[ #75 ] Update antlr4 version to 4.13.0
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2023-06-01 13:15:11 +00:00
f5b23eb225
[ #74 ] netmap/parser: Update antlr4 generator
...
Also, add -no-listener option, as we use visitor only.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-05-19 17:47:24 +03:00
9a072a8f49
[ #68 ] Replace interface{} with any
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2023-05-15 17:21:49 +03:00
7c75db2f2d
[ #59 ] netmap: Remove unused param from getSelection()
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-04-18 14:11:04 +00:00
Pavel Karpy
d0c5d837d2
[ #56 ] *: Drop reputation system
...
Signed-off-by: Pavel Karpy <p.karpy@yadro.com>
2023-04-18 07:52:16 +00:00
c8e620ad24
[ #53 ] sdk-go: Drop subnet
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2023-04-14 16:31:08 +03:00
31271ad8b1
[ #47 ] netmap: Make PlacementPolicy.WriteStringTo() pass nofunlen, cogognit
...
REP statement is obligatory, thus insert newline before each statement
after REP.
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
df2090c2be
[ #37 ] netmap: Update tests for new sys attributes
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-03-16 11:14:36 +03:00
b761fd8070
[ #23 ] pre-commit: Add initial configuration
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2023-03-09 22:52:51 +03: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
e9c1a2ab2b
[ TrueCloudLab/hrw#2 ] sdk-go: Optimize node hash
...
Compute node hash by node initialization
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2023-02-28 18:07:14 +03:00