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
2cbc585edd
[ TrueCloudLab/hrw#2 ] sdk-go: Use typed HRW methods
...
Update HRW pkg and use typed HRW methods to sort nodes
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2023-02-28 18:07:14 +03:00
4ff9c00de3
[ #4 ] Rename NeoFS mentions in comments and method names
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2022-12-30 13:40:50 +03:00
b204a62da1
[ #4 ] go.mod: Update ANTLR
...
Current `go:generate` command was, probably, executed only on my laptop.
Replace it with explicit version, because package in the generated code
depends on in.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2022-12-30 13:40:50 +03:00
Pavel Karpy
4c779423f5
Move to frostfs-sdk-go
...
Signed-off-by: Pavel Karpy <p.karpy@yadro.com>
2022-12-14 09:59:29 +03:00
Evgenii Stratonikov
da4ddcf337
[ #353 ] netmap: Get rid of ioutil
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-10-19 12:05:49 +04:00
21eef1ae7f
[ #351 ] Add StringifyPublicKey method for NodeInfo
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2022-10-13 10:27:18 +03:00
Evgenii Stratonikov
c6576c8112
[ #344 ] netmap: Support ExternalAddr
well-known attribute
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-09-26 13:28:39 +03:00
Leonard Lyubich
664392afc2
[ #312 ] netmap: Support NetmapService.NetmapSnapshot
RPC
...
Extend functionality of `NetMap` type. Add `NetMapSnapshot` operation to
`client` package.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-09-22 10:51:07 +04:00
Evgenii Stratonikov
3d6b5d807b
[ #315 ] netmap: Add maintenance node state
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-09-19 16:49:27 +04:00
Evgenii Stratonikov
3dad44232e
[ #315 ] netmap: Add maintenance mode network setting
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-09-19 16:49:27 +04:00
Evgenii Stratonikov
1929b634a1
[ #332 ] netmap/parser: Disallow trailing garbage
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-09-12 10:45:37 +03:00
Evgenii Stratonikov
84888854ab
[ #322 ] *: Go fmt -s
...
go1.19 rewrites comments to proper render them in docs.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-08-24 18:58:59 +03:00
Pavel Karpy
0cd790cfe0
[ #240 ] netmap: Support HomomorphicHashingDisabled
network config
...
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-07-05 15:37:49 +03:00
Leonard Lyubich
ab4d1e34a8
[ #280 ] policy: Use policyVisitor
as ErrorListener
for QueryLexer
...
Share `policyVisitor` instance as an `ErrorListener` provider for both
`QueryLexer` and `Query`.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-28 14:47:22 +03:00
Leonard Lyubich
dea3d9c419
[ #280 ] policy: Remove error listeners from query lexer
...
In previous implementation `PlacementPolicy.DecodeString` produced
undesired console logs.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-28 14:47:22 +03:00
Evgenii Stratonikov
af7e20073b
[ #277 ] netmap: Allow more uint64 config values
...
NEO VM uses little-endian format for integers,
however the resulting byte slice can contain less than 8 bytes.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-06-22 15:51:36 +03:00
Leonard Lyubich
e986f47807
[ #227 ] netmap: Add more encoding methods for PlacementPolicy
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-16 11:23:21 +03:00
Leonard Lyubich
e999fb00c3
[ #227 ] netmap: Remove unnecessary unit tests
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-16 11:23:21 +03:00
Leonard Lyubich
d51a324147
[ #227 ] netmap: Clarify some fields of PlacementPolicy
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-15 20:50:32 +03:00
Leonard Lyubich
d648b86776
[ #227 ] netmap: Fix minor blots in documentation/code
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-15 20:50:32 +03:00
Leonard Lyubich
ca523f1ff1
[ #227 ] netmap: Refactor and document package functionality
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-15 20:50:32 +03:00
Leonard Lyubich
5bfdb64251
[ #227 ] netmap: Do not export bucket weight calculator
...
`GetBucketWeight` is not usable outside placement context.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-15 20:50:32 +03:00
Leonard Lyubich
86bdc670d5
[ #227 ] netmap: Do not export default weightFunc initializer
...
`GetDefaultWeightFunc` is not usable outside placement context.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-15 20:50:32 +03:00
Leonard Lyubich
6796b4a29a
[ #227 ] netmap: Remove unused aggregators and normalizers
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-15 20:50:32 +03:00
Leonard Lyubich
723ba5ee45
[ #227 ] netmap: Do not use intermediate types for placement
...
Support preprocessing within the `NodeInfo` type. Provide methods for
placement directly from the `NodeInfo` type. Returns slice of slices of
`NodeInfo` from placement methods of `Netmap`. Remove no longer needed
`Node` and `Nodes` types.
```
name old time/op new time/op delta
ManySelects-12 19.7µs ±14% 15.8µs ±15% -19.70% (p=0.000 n=20+20)
name old alloc/op new alloc/op delta
ManySelects-12 8.65kB ± 0% 6.22kB ± 0% -28.03% (p=0.000 n=20+20)
name old allocs/op new allocs/op delta
ManySelects-12 82.0 ± 0% 81.0 ± 0% -1.22% (p=0.000 n=20+20)
```
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-15 20:50:32 +03:00
Leonard Lyubich
2b21146185
[ #227 ] netmap/test: Assert source placement builder is pure for nodes
...
`GetContainerNodes` / `GetPlacementVectors` must not mutate source slice
of nodes.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-15 20:50:32 +03:00
Leonard Lyubich
9c47fca7c2
[ #227 ] netmap: Pre-calculate resulting slice capacity in flattenNodes
...
```
name old time/op new time/op delta
ManySelects-12 17.5µs ±27% 15.5µs ±24% -11.57% (p=0.024 n=20+20)
name old alloc/op new alloc/op delta
ManySelects-12 9.03kB ± 0% 8.65kB ± 0% -4.25% (p=0.000 n=20+20)
name old allocs/op new allocs/op delta
ManySelects-12 86.0 ± 0% 82.0 ± 0% -4.65% (p=0.000 n=20+20)
```
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-06-15 20:50:32 +03:00