apache / apache/incubator-graphar

[C++] [Improvement] Provide more writing methods in the C++ library

Open
#48 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 low-level writers (`VertexPropertyWriter` and` EdgeChunkWriter`) only support to write Arrow tables, thus for the users, it is required to construct such tables before writing (e.g., writing the PageRank results saved in a std::vector into GAR files). For high-level writers (`VerticesBuilder` and `EdgesBuilder`), it is required to construct the `Vertex`/`Edge` firstly, which is the internal high-level data structure in GraphAr

**Describe the solution you'd like**
We are proposed to provide more built-in writing methods in C++ Writer SDK, to support additional data structures besides Arrow tables and GraphAr `Vertex`/`Edge`. A possible solution is to use containers from the STL, as [Boost Graph Library](https://cs.brown.edu/~jwicks/boost/libs/graph/doc/using_adjacency_list.html#sec:adjacency-list-properties) does, including:
- std::vector
- std::list
- std::slist
- std::set
- std::hash_set
- std::multiset

Contributor guide

Open the contributing guide

Research direction

Start by locating the C++ Writer SDK entry points for VertexPropertyWriter, EdgeChunkWriter, VerticesBuilder, and EdgesBuilder, then compare their current Arrow-table and Vertex/Edge inputs with the Boost Graph Library container approach linked in the issue. Define the supported STL containers and the behavior that would demonstrate the feature is complete; the issue does not name tests or files to run.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
data
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.