Inefficient encoding of key/values in Layer
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 30/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Domain
- data
Research direction
Review the vector tile specification's Layer and Value encoding definitions first. Compare the proposed packed per-type fields with the current mixed-type representation, including key/value ordering and compatibility; done requires an agreed encoding design rather than a straightforward edit.
Written by the indexing model from the issue text.
Description
They keys and values use non-packed repeated fields which is inefficient compared to packed repeated fields. In addition the values are each in its own message which needs extra space for the length header. If the values are small integers that could otherwise be encoded in a single byte, this can easily mean they need six times as much space as would be needed otherwise (Value message length + Value message wire type + Value message field number + Layer message wire type + Layer message field number + the value itself).
Unfortunately this can't be changed easily, because the values can be of different types. One option would be to have a repeated string string_value [packed=true], repeated float float_value [packed=true], etc. in the Layer message. But this would mean reordering the keys or having multiple sets of keys for the different types.
- Dominant language
- No language data
- Stars
- 1k
- Forks
- 213
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from mapbox/vector-tile-spec
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
mapbox/vector-tile-spec#157 ·
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
mapbox/vector-tile-spec#153 ·
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
mapbox/vector-tile-spec#149 ·
-
Typo in §4.4Open
Difficulty 1/5 Under an hour Newbie friendliness 55/100
mapbox/vector-tile-spec#148 ·
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
mapbox/vector-tile-spec#145 · 2 comments · 1 reaction ·
All issues in mapbox/vector-tile-spec
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Yuliang-Liu/MultimodalOCR#103 ·
-
blocklist:remove check:passed
Difficulty 2/5 Under an hour Newbie friendliness 66/100
iptv-org/database#36968 · 1 comment ·
Maintainers usually reply within 9 days
-
Add: Prima Comedy SDOpencheck:passed streams:add
Difficulty 1/5 Under an hour Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Component: Ruby Type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 1/5 Under an hour Newbie friendliness 82/100
Maintainers usually reply within 4 days