Replies: 6 comments
-
This is super long, but I've tried to answer inline:
|
Beta Was this translation helpful? Give feedback.
-
@jsync-swirlds thanks for your answers! Here my answers to your answers (quoted replies) and my general feedback:
EDIT:
|
Beta Was this translation helpful? Give feedback.
-
This is large enough that reply in this tool is impractical. |
Beta Was this translation helpful? Give feedback.
-
@ata-nas to circle back to review now further items to pull out from here. |
Beta Was this translation helpful? Give feedback.
-
This was resolved elsewhere, here the key takeaways:
|
Beta Was this translation helpful? Give feedback.
-
@Nana-EC @jsync-swirlds @mustafauzunn @AlfredoG87 as suggested, converted this to discussion and have updated it with the resolution. In short, we've discussed the above elsewhere, have already pushed some changes, we were also able to find shortcoming and captured them in issues and todos. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Story Form
As a Block Node Engineer/Operator/User
I want to have a properly working Multipublisher plugin
So that I can use the plugin as intended
Technical Notes
LiveStreamPublisherManager
Internal State Management:LiveStreamPublisherManager
relies on atomic variables to manage it's current state. This determines block actions returned to publishers who query the manager, but also the block item propagation order to the ring buffer.handlerIsEnding
Event:if (blockNumber + 1L == nextUnstreamedBlockNumber.get())
which will miss if the blockNumber is for example not 1 behind but two (blockNumber + 2L == nextUnstreamedBlockNumber.get()
). We must verify if that is a valid case (I most likely is) and we need to make sure to capture such misses.EndStream
request has a validation based on proto documentation.handlerIsEnding
logic despite of the request's potential invalidity? We currently rely on the correct request only to potentially trigger an on-demand backfill. The handlerIsEnding logic is triggered based on handler internal state (the block it is currently streaming and if the handler state is reset).queueByBlock
map twice will result in aSKIP
.Beta Was this translation helpful? Give feedback.
All reactions