forked from apache/arrow-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Checking mergeability…
Don’t worry, you can still create the pull request.
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: xborder/arrow-java
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: apache/arrow-java
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 2 commits
- 5 files changed
- 2 contributors
Commits on Mar 4, 2026
-
apacheGH-1038: Trim object memory for ArrowBuf (apache#1044)
## What's Changed A significant number of ArrowBuf and BufferLedger objects are created during certain workloads. Saving several bytes per instance could add up to significant memory savings and reduced memory allocation expense and garbage collection. The id field, which was a sequential value used when logging object information, is replaced with an identity hash code. This should still allow enough information for debugging without the memory overhead. There may be possible duplicate values but it shouldn't matter for logging purposes. Atomic fields can be replaced by a primitive and a static updater which saves several bytes per instance. ### ArrowBuf | Component | Before | After | Savings | |-----------|--------|-------|---------| | `idGenerator` (static) | `AtomicLong` | Removed | 24 bytes globally | | `id` field (per instance) | `long` (8 bytes) | Removed | **8 bytes per instance** | | `getId()` | Returns `id` field | Returns `System.identityHashCode(this)` | — | ### BufferLedger | Component | Before | After | Savings | |-----------|--------|-------|---------| | `LEDGER_ID_GENERATOR` (static) | `AtomicLong` | Removed | 24 bytes globally | | `ledgerId` (per instance) | `long` (8 bytes) | Removed | **8 bytes per instance** | | `bufRefCnt` | `AtomicInteger` (24 bytes) | `volatile int` + static updater | **20 bytes per instance** | ### Total Savings | Scale | ArrowBuf | BufferLedger | Combined | |-------|----------|--------------|----------| | 100K | 800 KB | 2.8 MB | **~3.6 MB** | | 1M | 8 MB | 28 MB | **~36 MB** | | 10M | 80 MB | 280 MB | **~360 MB** | ### Benchmarking I ran the added benchmark before and after the metadata trimming. **Metadata Trimmed** | Benchmark | Mode | Score | Error |Units| |-------|----------|--------------|----------|----------| |MemoryFootprintBenchmarks.measureAllocationPerformance | avgt | 456.831 |± 36.059 | us/op| |MemoryFootprintBenchmarks.measureArrowBufMemoryFootprint | ss | 161.085 |± 35.596| ms/op| |Created 100000 ArrowBuf instances. Heap memory used | sum | 35631520 bytes (33.98 MB) |0 |bytes| |Average memory per ArrowBuf| sum | 356.32 bytes |0 |bytes| **Previous Object Layout** | Benchmark | Mode | Score | Error |Units| |-------|----------|--------------|----------|----------| |MemoryFootprintBenchmarks.measureAllocationPerformance | avgt | 466.171 |± 16.233 | us/op| |MemoryFootprintBenchmarks.measureArrowBufMemoryFootprint | ss | 176.790 |± 17.943 |ms/op| |Created 100000 ArrowBuf instances. Heap memory used | sum | 38817480 bytes (37.02 MB) |0 |bytes| |Average memory per ArrowBuf| sum | 388.17 bytes |0 |bytes| Closes apache#1038.
Configuration menu - View commit details
-
Copy full SHA for 5dfd259 - Browse repository at this point
Copy the full SHA 5dfd259View commit details -
MINOR: Bump org.codehaus.mojo:build-helper-maven-plugin from 3.6.0 to…
… 3.6.1 (apache#1049) Bumps [org.codehaus.mojo:build-helper-maven-plugin](https://github.com/mojohaus/build-helper-maven-plugin) from 3.6.0 to 3.6.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/mojohaus/build-helper-maven-plugin/releases">org.codehaus.mojo:build-helper-maven-plugin's releases</a>.</em></p> <blockquote> <h2>3.6.1</h2> <!-- raw HTML omitted --> <h2>📝 Documentation updates</h2> <ul> <li>Rename Goals to Plugin Documentation in the site menu (<a href="https://redirect.github.com/mojohaus/build-helper-maven-plugin/pull/229">#229</a>) <a href="https://github.com/slawekjaranowski"><code>@slawekjaranowski</code></a></li> <li>update the documentation for adding more resource directories (<a href="https://redirect.github.com/mojohaus/build-helper-maven-plugin/pull/213">#213</a>) <a href="https://github.com/mjj042"><code>@mjj042</code></a></li> </ul> <h2>👻 Maintenance</h2> <ul> <li>Use common release-drafter configuration (<a href="https://redirect.github.com/mojohaus/build-helper-maven-plugin/pull/230">#230</a>) <a href="https://github.com/slawekjaranowski"><code>@slawekjaranowski</code></a></li> </ul> <h2>📦 Dependency updates</h2> <ul> <li>Bump org.codehaus.mojo:mojo-parent from 87 to 91 (<a href="https://redirect.github.com/mojohaus/build-helper-maven-plugin/pull/228">#228</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.apache.maven.shared:file-management from 3.1.0 to 3.2.0 (<a href="https://redirect.github.com/mojohaus/build-helper-maven-plugin/pull/222">#222</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.mojo:mojo-parent from 86 to 87 (<a href="https://redirect.github.com/mojohaus/build-helper-maven-plugin/pull/221">#221</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.mojo:mojo-parent from 85 to 86 (<a href="https://redirect.github.com/mojohaus/build-helper-maven-plugin/pull/219">#219</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.plexus:plexus-utils from 4.0.1 to 4.0.2 (<a href="https://redirect.github.com/mojohaus/build-helper-maven-plugin/pull/220">#220</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.mojo:mojo-parent from 84 to 85 (<a href="https://redirect.github.com/mojohaus/build-helper-maven-plugin/pull/217">#217</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.mojo:mojo-parent from 82 to 84 (<a href="https://redirect.github.com/mojohaus/build-helper-maven-plugin/pull/214">#214</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/mojohaus/build-helper-maven-plugin/commit/908df59c109817837a30e2340d2e8e6481bd4359"><code>908df59</code></a> [maven-release-plugin] prepare release 3.6.1</li> <li><a href="https://github.com/mojohaus/build-helper-maven-plugin/commit/faafd8f533f04511c6b1107ef3a90dd287d9a90b"><code>faafd8f</code></a> Use common release-drafter configuration</li> <li><a href="https://github.com/mojohaus/build-helper-maven-plugin/commit/a91b402d31251d1ee7bd7de53e94440d09162ef2"><code>a91b402</code></a> Rename Goals to Plugin Documentation in the site menu</li> <li><a href="https://github.com/mojohaus/build-helper-maven-plugin/commit/1e9136d0ebb7689737906574134f6fb4465033b2"><code>1e9136d</code></a> Bump org.codehaus.mojo:mojo-parent from 87 to 91</li> <li><a href="https://github.com/mojohaus/build-helper-maven-plugin/commit/8700ddcd1659f0c7754d5cf977a0e52f53defa4a"><code>8700ddc</code></a> Bump org.apache.maven.shared:file-management from 3.1.0 to 3.2.0</li> <li><a href="https://github.com/mojohaus/build-helper-maven-plugin/commit/ab2c63520127f18f8b432ec110f0951f1e40d48b"><code>ab2c635</code></a> Bump org.codehaus.mojo:mojo-parent from 86 to 87</li> <li><a href="https://github.com/mojohaus/build-helper-maven-plugin/commit/611ce4052a7668acdffd804c097a7548a935faa2"><code>611ce40</code></a> Typos.</li> <li><a href="https://github.com/mojohaus/build-helper-maven-plugin/commit/02d2b8e4feb3ebf8db8174a720b3550f9a74b55d"><code>02d2b8e</code></a> Bump org.codehaus.mojo:mojo-parent from 85 to 86</li> <li><a href="https://github.com/mojohaus/build-helper-maven-plugin/commit/d742e5c858e428b79b5a2136de2609999951ce36"><code>d742e5c</code></a> Update site.xml to Doxia 2</li> <li><a href="https://github.com/mojohaus/build-helper-maven-plugin/commit/80b89b8cc9fcf5ebf47430aab60f8ed7d35793c4"><code>80b89b8</code></a> Bump org.codehaus.plexus:plexus-utils from 4.0.1 to 4.0.2</li> <li>Additional commits viewable in <a href="https://github.com/mojohaus/build-helper-maven-plugin/compare/3.6.0...3.6.1">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 7cbf159 - Browse repository at this point
Copy the full SHA 7cbf159View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff main...main