apache / apache/incubator-graphar
[Feat][Java] Format-neutral physical batch and write contract
- Dominant language
- C++
- Stars
- 373
- Forks
- 93
- Avg merge
- 7d 21h
- Merged PRs (30d)
- 7
Description
Part of #947.
The layering agreed in #947 puts a physical IO boundary between the GraphAr
reader/writer and any concrete file format. Before either vertical can be
built, the project needs one description of a row group that names no format:
a column type, a schema, a row, a batch, and a cursor over batches.
Scope:
- `ColumnType`, `Field`, `Schema` — neutral, recursive type description.
- `Row`, `RecordBatch`, `BatchCursor` — row access with one documented Java
value mapping per column kind.
- `WriteRequest`, `WriteMode`, `PhysicalWriter` — the write half of the
boundary, which shares every one of the types above.
Non-goals for this issue:
- The read request (projection, filter, row range, capability reporting) and
`PhysicalReader`, which follow as their own issue against this base.
- Arrow as the public batch representation.
- Any GraphAr layout, chunking, or query semantics.
The module must not depend on any other GraphAr module.
Contributor guide
Research direction
Start by reading the layering agreed in #947 and the listed contract types: ColumnType, Field, Schema, Row, RecordBatch, BatchCursor, WriteRequest, WriteMode, and PhysicalWriter. Confirm that the physical IO boundary is format-neutral, uses documented Java value mappings, and that the module depends on no other GraphAr module; read-side contracts and Arrow remain out of scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100