apache / apache/incubator-graphar
[Feat] Add indices for edges and store the properties only once for a group of edges
- Dominant language
- C++
- Stars
- 373
- Forks
- 93
- Avg merge
- 7d 21h
- Merged PRs (30d)
- 7
Description
**Is your feature request related to a problem? Please describe.**
Currently, the edge properties are defined on adjLists. That is to say, if a group of edges have two copies in different adjList types (e.g., one for CSR and one for CSC), the property chunks need to be saved twice for aligning with the adjList chunks. Otherwise, the associated properties can not be accessed when traversing the adjList. This solution causes waste of the disk space.
**Describe the solution you'd like**
We can require the edge properties to be defined on one specific type of adjList (which is the major adjList type for this group of edges). And for the adjList of other types, the property chunks are not required to be saved once again. Instead, it saves an index for each edge, representing its offset in the major adjList. Therefore, the associated properties can be accessed from the property chunks using this offset.
**Describe alternatives you've considered**
Or the edge properties can be defined on arbitrary adjLists. For an adjList type, it can save the a list of edge indices to align with each other adjList types.
**Additional context**
Add any other context or screenshots about the feature request here.
Contributor guide
Research direction
Start by tracing how edge properties and adjacency-list chunks are represented and aligned across CSR and CSC. Define the ownership and indexing behavior, then validate that non-major adjacency lists can resolve properties without duplicate chunks; the issue names no files or tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- data-engineering, databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100