@@ -61,12 +61,22 @@ arrangement of a typical network packet (e.g. MAC -> IP -> TCP -> HTTP). At the
61
61
highest layer a block consists of some number (~ 100+) FEC sets. A single FEC
62
62
set contains a handful of shreds (~ 32). Once sufficient shreds are available
63
63
the raw block data is reconstructed and reinterpreted as an array of entry
64
- batches. Entry batches do not cross shred boundaries.
64
+ batches. Entry batches are aligned with shred boundaries (i.e. they will
65
+ start/stop at a shred boundary).
65
66
66
67
This SIMD add the following footer at the end of the raw block data. This
67
68
puts it on the same abstraction layer as serialized entry batch data. Put
68
69
differently, the serialized footer will be appended after the last serialized
69
- entry batch in the block.
70
+ entry batch in the block as its own pseudo-entry-batch. Parsers should,
71
+ however, support the footer actually being placed anywhere in the block,
72
+ between any other entry batches. The footer should be parsed as its own
73
+ pseudo-entry-batch and will be differentiated from other entry batches using
74
+ the ` block_footer_flag ` field. Allowing the footer anywhere in the block
75
+ gives us the flexibility to fix it as a header or a footer in a future SIMD.
76
+ Currently, we call it a "footer" and encourage block producers to add it to
77
+ the end of the block since we think future SIMD's may require the footer to
78
+ be computed after constructing the block (e.g. a new timing metric, async
79
+ execution).
70
80
71
81
```
72
82
Block Footer Layout
@@ -280,7 +290,7 @@ Sample Response Payload
280
290
281
291
While it is possible to make the block footer optional thanks to the
282
292
` block_footer_flag ` field, this proposal makes it mandatory. Blocks that don't
283
- include a valid footer in the block payload will be flagged as dead blocks and
293
+ include a valid footer in the block payload must be flagged as dead blocks and
284
294
skipped by the other nodes in the cluster.
285
295
286
296
## Alternatives Considered
0 commit comments