[EPIC] Refactor EnityStore to make it more user-friendly
- 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
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