apache / apache/accumulo

Explore moving all tablet in memory state an synchronization into a single class

Open
#3,670 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
1.2k
Forks
487
Avg merge
4d 5h
Merged PRs (30d)
13

Description

The Tablet code has a mixture of I/O code and in memory state (like active walogs, active in memory maps, current files, minor compactions in progress, refreshes in progress, etc). Its hard to analyze this synchronization code to ensure things like does any I/O happen while holding a lock (which is not desired).

Moving all of the tablets in memory state+sync into a single class that could be unit tested and analyzed may be one way to improve this.

Doing this work in the elasticity branch will be easier as a lot of functionality has been removed from the tablet server.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the Tablet code on the elasticity branch and cataloging its in-memory state and synchronization responsibilities, including active WALs, in-memory maps, current files, compactions, and refreshes. Use that analysis to define a separately unit-testable class and verify that I/O does not occur while holding a lock.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, databases
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.