You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
BlocksQueue is a fundamental CSR-inspired data structure for HpackHeaders and any optimization will likely benefit HTTP/2.
It is a circular buffer like VecDeque but instead of storing individual elements, it stores chunks of elements that are logically demarcated. Another important feature of BlocksQueue is the fact that chunks never intersect boundaries.
Three "push_front" operations. `H` means head.
// One block. First has 1 element
Buffer: [. . . . . H . .]
// Two blocks. First has 1 element and second has 3 elements
Buffer: [. . H *** . .]
// Three blocks. First has 1 element, second has 3 elements and third has 3 elements
// To avoid an intersection, the buffer had to be increased with shifted elements.
Buffer: [. . H ******]
I am not totally sure but the implementation can probably be optimized to generate more efficient assembly, specially in the "push_front" method.
The text was updated successfully, but these errors were encountered:
BlocksQueue
is a fundamental CSR-inspired data structure forHpackHeaders
and any optimization will likely benefitHTTP/2
.It is a circular buffer like
VecDeque
but instead of storing individual elements, it stores chunks of elements that are logically demarcated. Another important feature ofBlocksQueue
is the fact that chunks never intersect boundaries.I am not totally sure but the implementation can probably be optimized to generate more efficient assembly, specially in the "push_front" method.
The text was updated successfully, but these errors were encountered: