Skip to content
Permalink

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
Choose a base ref
...
head repository: apache/arrow-java
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 2 commits
  • 5 files changed
  • 2 contributors

Commits on Mar 4, 2026

  1. 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.
    lriggs authored Mar 4, 2026
    Configuration menu
    Copy the full SHA
    5dfd259 View commit details
    Browse the repository at this point in the history
  2. 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 />
    
    
    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.codehaus.mojo:build-helper-maven-plugin&package-manager=maven&previous-version=3.6.0&new-version=3.6.1)](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>
    dependabot[bot] authored Mar 4, 2026
    Configuration menu
    Copy the full SHA
    7cbf159 View commit details
    Browse the repository at this point in the history
Loading