apache / apache/accumulo

Investigate changing scope of server side iterator resolution

Open
#6,055 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
1.2k
Forks
487
Avg merge
4d 5h
Merged PRs (30d)
13

Description

**Is your feature request related to a problem? Please describe.**

For a scan, on the server side a session object is created. This server side session is used to fetch one or more batches of data for a scan. Currently for each batch of data fetched the scan iterator configuration is computed from table properties and per scan iterator settings.

**Describe the solution you'd like**

Compute the scan iterator configuration once and store it on the session. Then use this precomputed config to construct iterators for each batch of data fetched.

**Describe alternatives you've considered**

This is a potential performance improvement and it may not be worthwhile. Need to do some performance testing on the cost of computing the scan iterator configuration to see if anything needs to be done.

**Additional context**

Noticed this potential improvement while looking at #6040

When a scan has no per scan iterator settings then this case is already optimized. For that case it will use a precomputed/preparsed per table iterator setting.

If this seems worthwhile its possible the same change could be made for conditional mutations in addition to scan.

Contributor guide

Open the contributing guide

Research direction

Review the server-side scan session and iterator-configuration path, then compare the context in #6040. Measure the cost of recomputing the configuration across batches; done means either documenting that the optimization is not worthwhile or confirming a session-scoped configuration change, including whether conditional mutations should be considered.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
databases
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.