-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
perf(compactor): optimize allocations: use buffer for priorities #2006
perf(compactor): optimize allocations: use buffer for priorities #2006
Conversation
✅ Deploy Preview for badger-docs canceled.
|
Thanks a lot for the diff. From what I understand you are trying to reuse the memory of the levels object, not their values correct? Do you a SyncPool might be able to do the trick better? |
Hello! I'm trying to reuse the whole slice of values. Fortunately, as far as I know, all the values from this slice are used after I prefer using simple buffer reusing technique over sync.Pool, because it more straightforward and controllable, also we don't have any concurrency here |
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | Type | Update | |---|---|---|---|---|---|---|---| | [github.com/Masterminds/sprig/v3](https://redirect.github.com/Masterminds/sprig) | `v3.2.3` -> `v3.3.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fMasterminds%2fsprig%2fv3/v3.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fMasterminds%2fsprig%2fv3/v3.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fMasterminds%2fsprig%2fv3/v3.2.3/v3.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fMasterminds%2fsprig%2fv3/v3.2.3/v3.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/aws/aws-sdk-go-v2/config](https://redirect.github.com/aws/aws-sdk-go-v2) | `v1.27.30` -> `v1.27.31` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.31?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.31?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.30/v1.27.31?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.30/v1.27.31?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [github.com/bufbuild/buf](https://redirect.github.com/bufbuild/buf) | `v1.38.0` -> `v1.39.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fbufbuild%2fbuf/v1.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fbufbuild%2fbuf/v1.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fbufbuild%2fbuf/v1.38.0/v1.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fbufbuild%2fbuf/v1.38.0/v1.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/bufbuild/protovalidate-go](https://redirect.github.com/bufbuild/protovalidate-go) | `v0.6.4` -> `v0.6.5` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fbufbuild%2fprotovalidate-go/v0.6.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fbufbuild%2fprotovalidate-go/v0.6.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fbufbuild%2fprotovalidate-go/v0.6.4/v0.6.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fbufbuild%2fprotovalidate-go/v0.6.4/v0.6.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [github.com/cerbos/cloud-api](https://redirect.github.com/cerbos/cloud-api) | `v0.1.23` -> `v0.1.24` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fcerbos%2fcloud-api/v0.1.24?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fcerbos%2fcloud-api/v0.1.24?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fcerbos%2fcloud-api/v0.1.23/v0.1.24?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fcerbos%2fcloud-api/v0.1.23/v0.1.24?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [github.com/dadav/helm-schema](https://redirect.github.com/dadav/helm-schema) | `4e067df` -> `f205574` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdadav%2fhelm-schema/v0.0.0-20240831174639-f2055746722e?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fdadav%2fhelm-schema/v0.0.0-20240831174639-f2055746722e?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fdadav%2fhelm-schema/v0.0.0-20240817173722-4e067df209ea/v0.0.0-20240831174639-f2055746722e?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdadav%2fhelm-schema/v0.0.0-20240817173722-4e067df209ea/v0.0.0-20240831174639-f2055746722e?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | digest | | [github.com/dgraph-io/badger/v4](https://redirect.github.com/dgraph-io/badger) | `v4.2.0` -> `v4.3.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdgraph-io%2fbadger%2fv4/v4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fdgraph-io%2fbadger%2fv4/v4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fdgraph-io%2fbadger%2fv4/v4.2.0/v4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdgraph-io%2fbadger%2fv4/v4.2.0/v4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/fergusstrange/embedded-postgres](https://redirect.github.com/fergusstrange/embedded-postgres) | `v1.28.0` -> `v1.29.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2ffergusstrange%2fembedded-postgres/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2ffergusstrange%2fembedded-postgres/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2ffergusstrange%2fembedded-postgres/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2ffergusstrange%2fembedded-postgres/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/rs/cors](https://redirect.github.com/rs/cors) | `v1.11.0` -> `v1.11.1` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2frs%2fcors/v1.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2frs%2fcors/v1.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2frs%2fcors/v1.11.0/v1.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2frs%2fcors/v1.11.0/v1.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [google.golang.org/genproto/googleapis/api](https://redirect.github.com/googleapis/go-genproto) | `4ba0660` -> `7e3bb23` | [![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/v0.0.0-20240827150818-7e3bb234dfed?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/v0.0.0-20240827150818-7e3bb234dfed?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/v0.0.0-20240823204242-4ba0660f739c/v0.0.0-20240827150818-7e3bb234dfed?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/v0.0.0-20240823204242-4ba0660f739c/v0.0.0-20240827150818-7e3bb234dfed?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | digest | | [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) | `v1.65.0` -> `v1.66.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.66.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.66.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.65.0/v1.66.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.65.0/v1.66.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | --- ### Release Notes <details> <summary>Masterminds/sprig (github.com/Masterminds/sprig/v3)</summary> ### [`v3.3.0`](https://redirect.github.com/Masterminds/sprig/releases/tag/v3.3.0) [Compare Source](https://redirect.github.com/Masterminds/sprig/compare/v3.2.3...v3.3.0) #### What's Changed - Updating the Go versions used in testing by [@​mattfarina](https://redirect.github.com/mattfarina) in [https://github.com/Masterminds/sprig/pull/405](https://redirect.github.com/Masterminds/sprig/pull/405) - Change intial to initial. by [@​chrishalbert](https://redirect.github.com/chrishalbert) in [https://github.com/Masterminds/sprig/pull/391](https://redirect.github.com/Masterminds/sprig/pull/391) - Updating dependencies by [@​mattfarina](https://redirect.github.com/mattfarina) in [https://github.com/Masterminds/sprig/pull/404](https://redirect.github.com/Masterminds/sprig/pull/404) - correct value by [@​jheyduk](https://redirect.github.com/jheyduk) in [https://github.com/Masterminds/sprig/pull/376](https://redirect.github.com/Masterminds/sprig/pull/376) - Updating location of mergo by [@​mattfarina](https://redirect.github.com/mattfarina) in [https://github.com/Masterminds/sprig/pull/406](https://redirect.github.com/Masterminds/sprig/pull/406) - feature: added sha512sum function by [@​itzik-elayev](https://redirect.github.com/itzik-elayev) in [https://github.com/Masterminds/sprig/pull/400](https://redirect.github.com/Masterminds/sprig/pull/400) - docs: Add missing link to url functions by [@​carlpett](https://redirect.github.com/carlpett) in [https://github.com/Masterminds/sprig/pull/375](https://redirect.github.com/Masterminds/sprig/pull/375) - Update doc.go by [@​chey](https://redirect.github.com/chey) in [https://github.com/Masterminds/sprig/pull/369](https://redirect.github.com/Masterminds/sprig/pull/369) - Update mathf.md by [@​zzhu41](https://redirect.github.com/zzhu41) in [https://github.com/Masterminds/sprig/pull/290](https://redirect.github.com/Masterminds/sprig/pull/290) - Removing duplicate documentation by [@​mattfarina](https://redirect.github.com/mattfarina) in [https://github.com/Masterminds/sprig/pull/407](https://redirect.github.com/Masterminds/sprig/pull/407) - Updating the changelog for the 3.3.0 release by [@​mattfarina](https://redirect.github.com/mattfarina) in [https://github.com/Masterminds/sprig/pull/408](https://redirect.github.com/Masterminds/sprig/pull/408) #### New Contributors - [@​chrishalbert](https://redirect.github.com/chrishalbert) made their first contribution in [https://github.com/Masterminds/sprig/pull/391](https://redirect.github.com/Masterminds/sprig/pull/391) - [@​jheyduk](https://redirect.github.com/jheyduk) made their first contribution in [https://github.com/Masterminds/sprig/pull/376](https://redirect.github.com/Masterminds/sprig/pull/376) - [@​itzik-elayev](https://redirect.github.com/itzik-elayev) made their first contribution in [https://github.com/Masterminds/sprig/pull/400](https://redirect.github.com/Masterminds/sprig/pull/400) - [@​carlpett](https://redirect.github.com/carlpett) made their first contribution in [https://github.com/Masterminds/sprig/pull/375](https://redirect.github.com/Masterminds/sprig/pull/375) - [@​chey](https://redirect.github.com/chey) made their first contribution in [https://github.com/Masterminds/sprig/pull/369](https://redirect.github.com/Masterminds/sprig/pull/369) - [@​zzhu41](https://redirect.github.com/zzhu41) made their first contribution in [https://github.com/Masterminds/sprig/pull/290](https://redirect.github.com/Masterminds/sprig/pull/290) **Full Changelog**: Masterminds/sprig@v3.2.3...v3.3.0 </details> <details> <summary>bufbuild/buf (github.com/bufbuild/buf)</summary> ### [`v1.39.0`](https://redirect.github.com/bufbuild/buf/blob/HEAD/CHANGELOG.md#v1390---2024-08-27) [Compare Source](https://redirect.github.com/bufbuild/buf/compare/v1.38.0...v1.39.0) - Fix git input handling of relative HEAD refs without branch names. - Add `includes` key to module configurations in v2 `buf.yaml`, accepting a list of directories. - If `includes` is specified, a proto file is considered in the module only if it is in one of the directories specified. - If both `includes` and `excludes` keys are specified for a module, a proto file is considered part of this module if it is contained in any of the include paths and not in any of the exclude paths. - Allow multiple module configurations in the same v2 `buf.yaml` to have the same directory path. </details> <details> <summary>bufbuild/protovalidate-go (github.com/bufbuild/protovalidate-go)</summary> ### [`v0.6.5`](https://redirect.github.com/bufbuild/protovalidate-go/releases/tag/v0.6.5) [Compare Source](https://redirect.github.com/bufbuild/protovalidate-go/compare/v0.6.4...v0.6.5) #### What's Changed - Add `buf.gen.yaml` v2 schema example by [@​milas](https://redirect.github.com/milas) in [https://github.com/bufbuild/protovalidate-go/pull/138](https://redirect.github.com/bufbuild/protovalidate-go/pull/138) - Upgrade to support Go 1.23 by [@​rodaine](https://redirect.github.com/rodaine) in [https://github.com/bufbuild/protovalidate-go/pull/139](https://redirect.github.com/bufbuild/protovalidate-go/pull/139) - Remove Go 1.20 support by [@​rodaine](https://redirect.github.com/rodaine) in [https://github.com/bufbuild/protovalidate-go/pull/140](https://redirect.github.com/bufbuild/protovalidate-go/pull/140) - Bugfix: avoid spurious tautology pruning when dealing with certain recursive messages by [@​rodaine](https://redirect.github.com/rodaine) in [https://github.com/bufbuild/protovalidate-go/pull/142](https://redirect.github.com/bufbuild/protovalidate-go/pull/142) #### New Contributors - [@​milas](https://redirect.github.com/milas) made their first contribution in [https://github.com/bufbuild/protovalidate-go/pull/138](https://redirect.github.com/bufbuild/protovalidate-go/pull/138) **Full Changelog**: bufbuild/protovalidate-go@v0.6.4...v0.6.5 </details> <details> <summary>cerbos/cloud-api (github.com/cerbos/cloud-api)</summary> ### [`v0.1.24`](https://redirect.github.com/cerbos/cloud-api/releases/tag/v0.1.24) [Compare Source](https://redirect.github.com/cerbos/cloud-api/compare/v0.1.23...v0.1.24) [v0.1.24](https://redirect.github.com/cerbos/cloud-api/releases/tag/v0.1.24) </details> <details> <summary>dgraph-io/badger (github.com/dgraph-io/badger/v4)</summary> ### [`v4.3.0`](https://redirect.github.com/dgraph-io/badger/releases/tag/v4.3.0): Badger v4.3.0 [Compare Source](https://redirect.github.com/dgraph-io/badger/compare/v4.2.0...v4.3.0) #### What's Changed Fixes: - chore(changelog): add a missed entry in CHANGELOG for v4.2.0 by [@​mangalaman93](https://redirect.github.com/mangalaman93) in [https://github.com/dgraph-io/badger/pull/1988](https://redirect.github.com/dgraph-io/badger/pull/1988) - update README with project KVS using badger by [@​tauraamui](https://redirect.github.com/tauraamui) in [https://github.com/dgraph-io/badger/pull/1989](https://redirect.github.com/dgraph-io/badger/pull/1989) - fix edge case for watermark when index is zero by [@​mangalaman93](https://redirect.github.com/mangalaman93) in [https://github.com/dgraph-io/badger/pull/1999](https://redirect.github.com/dgraph-io/badger/pull/1999) - upgrade spf13/cobra to version v1.7.0 by [@​mangalaman93](https://redirect.github.com/mangalaman93) in [https://github.com/dgraph-io/badger/pull/2001](https://redirect.github.com/dgraph-io/badger/pull/2001) - chore: update readme by [@​joshua-goldstein](https://redirect.github.com/joshua-goldstein) in [https://github.com/dgraph-io/badger/pull/2011](https://redirect.github.com/dgraph-io/badger/pull/2011) - perf: upgrade compress package test and benchmark. by [@​siddhant2001](https://redirect.github.com/siddhant2001) in [https://github.com/dgraph-io/badger/pull/2009](https://redirect.github.com/dgraph-io/badger/pull/2009) - fix(Transactions): Fix resource consumption on empty write transaction by [@​Zach-Johnson](https://redirect.github.com/Zach-Johnson) in [https://github.com/dgraph-io/badger/pull/2018](https://redirect.github.com/dgraph-io/badger/pull/2018) - chore(deps): bump golang.org/x/net from 0.7.0 to 0.17.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/dgraph-io/badger/pull/2017](https://redirect.github.com/dgraph-io/badger/pull/2017) - perf(compactor): optimize allocations: use buffer for priorities by [@​deff7](https://redirect.github.com/deff7) in [https://github.com/dgraph-io/badger/pull/2006](https://redirect.github.com/dgraph-io/badger/pull/2006) - fix(Transaction): discard empty transactions on CommitWith by [@​Wondertan](https://redirect.github.com/Wondertan) in [https://github.com/dgraph-io/badger/pull/2031](https://redirect.github.com/dgraph-io/badger/pull/2031) - fix(levelHandler): use lock for levelHandler sort tables instead of rlock by [@​xgzlucario](https://redirect.github.com/xgzlucario) in [https://github.com/dgraph-io/badger/pull/2034](https://redirect.github.com/dgraph-io/badger/pull/2034) - Docs: update README with project LLS using badger by [@​Boc-chi-no](https://redirect.github.com/Boc-chi-no) in [https://github.com/dgraph-io/badger/pull/2032](https://redirect.github.com/dgraph-io/badger/pull/2032) - chore: MaxTableSize has been renamed to BaseTableSize by [@​mitar](https://redirect.github.com/mitar) in [https://github.com/dgraph-io/badger/pull/2038](https://redirect.github.com/dgraph-io/badger/pull/2038) - Update CODEOWNERS by [@​ryanfoxtyler](https://redirect.github.com/ryanfoxtyler) in [https://github.com/dgraph-io/badger/pull/2043](https://redirect.github.com/dgraph-io/badger/pull/2043) - Chore(): add Stale Action by [@​ryanfoxtyler](https://redirect.github.com/ryanfoxtyler) in [https://github.com/dgraph-io/badger/pull/2070](https://redirect.github.com/dgraph-io/badger/pull/2070) - Update ristretto and refactor for use of generics by [@​paralin](https://redirect.github.com/paralin) in [https://github.com/dgraph-io/badger/pull/2047](https://redirect.github.com/dgraph-io/badger/pull/2047) - chore: Remove obsolete comment by [@​mitar](https://redirect.github.com/mitar) in [https://github.com/dgraph-io/badger/pull/2039](https://redirect.github.com/dgraph-io/badger/pull/2039) - chore(Docs): Update jQuery 3.2.1 to 3.7.1 by [@​kokizzu](https://redirect.github.com/kokizzu) in [https://github.com/dgraph-io/badger/pull/2023](https://redirect.github.com/dgraph-io/badger/pull/2023) - chore(deps): bump the go_modules group with 3 updates by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/dgraph-io/badger/pull/2074](https://redirect.github.com/dgraph-io/badger/pull/2074) - docs(): update docs path by [@​ryanfoxtyler](https://redirect.github.com/ryanfoxtyler) in [https://github.com/dgraph-io/badger/pull/2076](https://redirect.github.com/dgraph-io/badger/pull/2076) - perf: fix operation in seek by [@​harshil-goel](https://redirect.github.com/harshil-goel) in [https://github.com/dgraph-io/badger/pull/2077](https://redirect.github.com/dgraph-io/badger/pull/2077) - Add lakeFS to README.md by [@​N-o-Z](https://redirect.github.com/N-o-Z) in [https://github.com/dgraph-io/badger/pull/2078](https://redirect.github.com/dgraph-io/badger/pull/2078) - chore(): add Dependabot by [@​ryanfoxtyler](https://redirect.github.com/ryanfoxtyler) in [https://github.com/dgraph-io/badger/pull/2080](https://redirect.github.com/dgraph-io/badger/pull/2080) - chore(deps): bump golangci/golangci-lint-action from 4 to 6 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/dgraph-io/badger/pull/2083](https://redirect.github.com/dgraph-io/badger/pull/2083) - chore(deps): bump actions/upload-artifact from 3 to 4 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/dgraph-io/badger/pull/2081](https://redirect.github.com/dgraph-io/badger/pull/2081) - chore(deps): bump github/codeql-action from 2 to 3 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/dgraph-io/badger/pull/2082](https://redirect.github.com/dgraph-io/badger/pull/2082) - chore(deps): bump the minor group with 7 updates by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/dgraph-io/badger/pull/2089](https://redirect.github.com/dgraph-io/badger/pull/2089) - Action Manager by [@​madhu72](https://redirect.github.com/madhu72) in [https://github.com/dgraph-io/badger/pull/2050](https://redirect.github.com/dgraph-io/badger/pull/2050) - chore(deps): bump golang.org/x/sys from 0.23.0 to 0.24.0 in the minor group by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/dgraph-io/badger/pull/2091](https://redirect.github.com/dgraph-io/badger/pull/2091) - chore(deps): bump github.com/golang/protobuf from 1.5.3 to 1.5.4 in the patch group by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/dgraph-io/badger/pull/2090](https://redirect.github.com/dgraph-io/badger/pull/2090) - chore: fix some comments by [@​dufucun](https://redirect.github.com/dufucun) in [https://github.com/dgraph-io/badger/pull/2092](https://redirect.github.com/dgraph-io/badger/pull/2092) - chore(deps): bump github.com/google/flatbuffers from 1.12.1 to 24.3.25+incompatible by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/dgraph-io/badger/pull/2084](https://redirect.github.com/dgraph-io/badger/pull/2084) CI: - ci: change cron frequency to fix ghost jobs by [@​joshua-goldstein](https://redirect.github.com/joshua-goldstein) in [https://github.com/dgraph-io/badger/pull/2010](https://redirect.github.com/dgraph-io/badger/pull/2010) - fix(CI): Update to pull_request trigger by [@​ryanfoxtyler](https://redirect.github.com/ryanfoxtyler) in [https://github.com/dgraph-io/badger/pull/2056](https://redirect.github.com/dgraph-io/badger/pull/2056) - ci/cd optimization by [@​ryanfoxtyler](https://redirect.github.com/ryanfoxtyler) in [https://github.com/dgraph-io/badger/pull/2051](https://redirect.github.com/dgraph-io/badger/pull/2051) - fix(cd): fixed cd pipeline by [@​harshil-goel](https://redirect.github.com/harshil-goel) in [https://github.com/dgraph-io/badger/pull/2093](https://redirect.github.com/dgraph-io/badger/pull/2093) - fix(cd): change name by [@​harshil-goel](https://redirect.github.com/harshil-goel) in [https://github.com/dgraph-io/badger/pull/2094](https://redirect.github.com/dgraph-io/badger/pull/2094) - fix(cd): added more debug things to cd by [@​harshil-goel](https://redirect.github.com/harshil-goel) in [https://github.com/dgraph-io/badger/pull/2095](https://redirect.github.com/dgraph-io/badger/pull/2095) - fix(cd): removing some debug items by [@​harshil-goel](https://redirect.github.com/harshil-goel) in [https://github.com/dgraph-io/badger/pull/2096](https://redirect.github.com/dgraph-io/badger/pull/2096) **Full Changelog**: dgraph-io/badger@v4.2.0...v4.3.0 </details> <details> <summary>fergusstrange/embedded-postgres (github.com/fergusstrange/embedded-postgres)</summary> ### [`v1.29.0`](https://redirect.github.com/fergusstrange/embedded-postgres/releases/tag/v1.29.0) [Compare Source](https://redirect.github.com/fergusstrange/embedded-postgres/compare/v1.28.0...v1.29.0) #### What's Changed - Update versions by [@​fergusstrange](https://redirect.github.com/fergusstrange) in [https://github.com/fergusstrange/embedded-postgres/pull/142](https://redirect.github.com/fergusstrange/embedded-postgres/pull/142) **Full Changelog**: fergusstrange/embedded-postgres@v1.28.0...v1.29.0 </details> <details> <summary>rs/cors (github.com/rs/cors)</summary> ### [`v1.11.1`](https://redirect.github.com/rs/cors/compare/v1.11.0...v1.11.1) [Compare Source](https://redirect.github.com/rs/cors/compare/v1.11.0...v1.11.1) </details> <details> <summary>grpc/grpc-go (google.golang.org/grpc)</summary> ### [`v1.66.0`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.66.0): Release 1.66.0 [Compare Source](https://redirect.github.com/grpc/grpc-go/compare/v1.65.0...v1.66.0) ### New Features - metadata: stabilize `ValueFromIncomingContext` ([#​7368](https://redirect.github.com/grpc/grpc-go/issues/7368)) - Special Thanks: [@​KarthikReddyPuli](https://redirect.github.com/KarthikReddyPuli) - client: stabilize the `WaitForStateChange` and `GetState` methods, which were previously experimental. ([#​7425](https://redirect.github.com/grpc/grpc-go/issues/7425)) - xds: Implement ADS flow control mechanism ([#​7458](https://redirect.github.com/grpc/grpc-go/issues/7458)) - See [https://github.com/grpc/grpc/issues/34099](https://redirect.github.com/grpc/grpc/issues/34099) for context. - balancer/rls: Add metrics for data cache and picker internals ([#​7484](https://redirect.github.com/grpc/grpc-go/issues/7484), [#​7495](https://redirect.github.com/grpc/grpc-go/issues/7495)) - xds: LRS load reports now include the `total_issued_requests` field. ([#​7544](https://redirect.github.com/grpc/grpc-go/issues/7544)) ### Bug Fixes - grpc: Clients now return status code INTERNAL instead of UNIMPLEMENTED when the server uses an unsupported compressor. This is consistent with the [gRPC compression spec](https://redirect.github.com/grpc/grpc/blob/master/doc/compression.md#compression-method-asymmetry-between-peers). ([#​7461](https://redirect.github.com/grpc/grpc-go/issues/7461)) - Special Thanks: [@​Gayathri625](https://redirect.github.com/Gayathri625) - transport: Fix a bug which could result in writes busy looping when the underlying `conn.Write` returns errors ([#​7394](https://redirect.github.com/grpc/grpc-go/issues/7394)) - Special Thanks: [@​veshij](https://redirect.github.com/veshij) - client: fix race that could lead to orphaned connections and associated resources. ([#​7390](https://redirect.github.com/grpc/grpc-go/issues/7390)) - xds: use locality from the connected address for load reporting with pick_first ([#​7378](https://redirect.github.com/grpc/grpc-go/issues/7378)) - without this fix, if a priority contains multiple localities with pick_first, load was reported for the wrong locality - client: prevent hanging during ClientConn.Close() when the network is unreachable ([#​7540](https://redirect.github.com/grpc/grpc-go/issues/7540)) ### Performance Improvements - transport: double buffering is avoided when using an http connect proxy and the target server waits for client to send the first message. ([#​7424](https://redirect.github.com/grpc/grpc-go/issues/7424)) - codec: Implement a new `Codec` which uses buffer recycling for encoded message ([#​7356](https://redirect.github.com/grpc/grpc-go/issues/7356)) - introduce a `mem` package to facilitate buffer reuse ([#​7432](https://redirect.github.com/grpc/grpc-go/issues/7432)) - Special Thanks: [@​PapaCharlie](https://redirect.github.com/PapaCharlie) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/cerbos/cerbos). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYXJlYS9kZXBlbmRlbmNpZXMiLCJib3RzIiwia2luZC9jaG9yZSJdfQ==--> --------- Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Charith Ellawala <charith@cerbos.dev> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Charith Ellawala <charith@cerbos.dev>
Problem
Badger allocates a lot of objects over time. I created a simple reproducer and measured allocations after 10 minutes of running it.
We see that pickCompactLevels makes a pretty high number of allocations due to appending to slice over and over again:
Solution
I suggest two optimizations:
prios
capacity according to numbers ofs.levels
prios
memory in compaction process, thanks to one-threaded logic of compactorResults after optimization (10 min run of reproducer):
And inside pickCompactLevels:
Profile from real project
Both profiles are measured after 30 minutes from application start
Before optimization:
After optimization:
Reproducer