apache / apache/gravitino

[EPIC] Refactor EnityStore to make it more user-friendly

Open
#3,855 0 comments 2 reactions 0 assignees View on GitHub
epic
Dominant language
Java
Stars
3.2k
Forks
935
Avg merge
1d 15h
Merged PRs (30d)
315

Description

### Describe the proposal

As we are going to support privileges and tag systems, more and more types of data need to be stored in Gravitino such as relation data, and graph data. However, the Gravitino entity store system is not well designed to meet these needs, so we should try to refactor the Enity store system, there are mainly the following things to be considered:

1. Let's refactor KvEntityStore to handle more storage scenarios
2. Polish JDBC EntityStore to make it more stable and support more databases like PG, and Oracle.
3. Improving the interface `EntityStore`.

### Task list

- [ ] Optimize KV entity store to support complex data type or remove KV entity store from main branch.
- [ ] Support other's JDBC database as JDBC backend
- [x] #3856
- [x] #3924
- [x] #3857
- [ ] #3859
- [x] #3968
- [ ] #3858
- [ ] Optimize current table structure for MySQL backend if possible

Contributor guide

Open the contributing guide

Research direction

Start with the EntityStore interface, KvEntityStore, and JDBC EntityStore described in the proposal, then review the linked JDBC backend tasks, including #3859. Done means the storage design and interface are refactored for the stated scenarios, with the remaining database support and MySQL table work addressed.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.