apache / apache/incubator-graphar

[Feat] Add indices for edges and store the properties only once for a group of edges

Open
#118 1 comment 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.