Skip to content

Replace InMemoryInstance with InMemoryAccumulo#3345

Open
SethSmucker wants to merge 19 commits into
integrationfrom
task/replace-inmemoryinstance
Open

Replace InMemoryInstance with InMemoryAccumulo#3345
SethSmucker wants to merge 19 commits into
integrationfrom
task/replace-inmemoryinstance

Conversation

@SethSmucker
Copy link
Copy Markdown
Collaborator

@SethSmucker SethSmucker commented Jan 5, 2026

Summary

  • Add getInstance(String) static method to InMemoryAccumulo for named instance sharing
  • Add clearInstances() method for test cleanup
  • Add new constructors to InMemoryAccumuloClient taking InMemoryAccumulo directly
  • Deprecate InMemoryAccumuloClient(String, InMemoryInstance) constructor
  • Update TableCache/AccumuloTableCache interfaces to use InMemoryAccumulo
  • Update BaseTableCache, AccumuloTableCacheImpl, AccumuloTableCacheBean
  • Update MockLoader, MockAccumuloConfiguration, BulkInputFormat, AccumuloRecordWriter
  • Update RebuildingScannerTestHelper and QueryTestTableHelper
  • Migrate ~60 test files from InMemoryInstance to InMemoryAccumulo
  • Update in-memory-accumulo version to 4.0.5-SNAPSHOT

Dependencies

This PR depends on #3253 being merged first. It builds on top of those changes.

Fixes #2597
Part of #2443

- Remove extends ClientContext from InMemoryAccumuloClient
- Remove extends Connector from InMemoryConnector
- Remove implements Instance from InMemoryInstance
- Delete InMemoryClientInfo.java (used non-public Credentials/ClientInfoImpl)
- Clean up BulkInputFormat TabletLocator usage
- Update PushdownScheduler to remove ClientContext usage

Part of #2443
@SethSmucker
Copy link
Copy Markdown
Collaborator Author

Stacked PR Notice

This PR is stacked on #3253 and shares files with it.

PR Title Status
#3253 Remove interconnected IMA, Thrift, and ClientImpl BASE - must merge first
#3345 Replace InMemoryInstance with InMemoryAccumulo THIS PR
#3227 Remove non-public clientImpl.* usages DRAFT, also stacked on #3253

Shared files:

  • InMemoryAccumuloClient.java
  • InMemoryClientInfo.java
  • InMemoryConnector.java
  • InMemoryInstance.java
  • BulkInputFormat.java

IMPORTANT: Do NOT merge this until #3253 is merged. After #3253 merges, update this branch:

git checkout task/replace-inmemoryinstance
git merge origin/integration
git push

SethSmucker and others added 14 commits January 20, 2026 11:04
Apply formatter, sortpom, and impsort fixes to pass CI check.
The getClientContext method used non-public ClientContext API and was
only called from PushdownScheduler. Since PushdownScheduler now uses
the public tableOperations().tableIdMap() API instead, this utility
method is no longer needed.

Supersedes PR #3340.
Re-apply #3345 changes on top of current #3253 base (0d73343).
Cherry-picked ce539af and resolved 6 conflicts by taking the
current base's test structure (AbstractQueryTest framework) with
InMemoryInstance swapped to InMemoryAccumulo.

BulkInputFormat: only swapped the InMemoryInstance constructor call.
getTabletLocator/TabletLocator code left as-is (will be replaced
when #3449 merges).

Version alignment: root pom in-memory-accumulo version bumped from
4.0.5-SNAPSHOT to 4.0.6-SNAPSHOT to match module pom.

Fixes #2597
Part of #2443
@SethSmucker SethSmucker force-pushed the task/replace-inmemoryinstance branch from ce539af to 50535b9 Compare April 14, 2026 15:39
16 test files had InMemoryAccumulo usage without the import (cherry-pick
swapped class names but import replacement didn't apply to these files).

NumShardsTest: replaced i.getZooKeepers() with "localhost" literal
since InMemoryAccumulo doesn't have that method (InMemoryInstance
returned "localhost" hardcoded).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace usage of InMemoryInstance with InMemoryAccumulo

2 participants