Bypass cache on property updates.
- Dominant language
- Java
- Stars
- 1.2k
- Forks
- 487
- Avg merge
- 4d 5h
- Merged PRs (30d)
- 13
Description
The prop store has a method to get values directly from ZooKeeper that does not use the cache. When updating properties this may help reduce the concurrency issues that are seen with the multiple property updates.
Instead of using:
```java
context.getPropStore().get(TablePropKey.of(context, tableId)))
```
and equivalent call using
```java
context.getPropStore().getWithoutCaching(SystemPropKey.of(context))
```
The basic idea is that the getWithoutCaching method existed to read the vprops directly from ZooKeeper and does not add the returned value to the local cache. The process reading / updating the value might not ever host anything that would benefit from caching and may help to reduce update race conditions because its not relying on watcher notification to update or invalidate the cached values.
Contributor guide
Research direction
Start by tracing the property-update paths around context.getPropStore().get(TablePropKey.of(context, tableId)) and the equivalent SystemPropKey read. Compare these calls with getWithoutCaching, then verify that update reads bypass the local cache and that the relevant concurrency behavior is covered by the repository's existing tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- databases, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100