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
Meta: Periodically lists splits and assigns them to actors, enabling dynamic discovery of splits.
CN: Scans data from the assigned splits.
However, MQTT is a relatively primitive protocol:
It lacks a list API.
MQTT does not retain historical data, meaning data arriving at MQTT before your subscription won't be received. For instance, if data is sent to the MQTT server from 1 to 10 and the client subscribes before 5 arrives, the client will only receive data from 5 to 10. Enabling the retain parameter improves this slightly, capturing data from 4 to 10.
In our current MQTT soruce implementation, Meta is used to scan/receive data to detect the list of splits, which are then assigned to actors. Consequently, when CN clients start subscribing to the split topics in MQTT, many events have already occurred, resulting in the loss of the initial events.
This approach also means that the entire message stream is scanned twice—once by Meta and once by CN.
Proposed Improvement: To minimize or prevent event loss, the optimal solution is to eliminate the dynamic split discovery process and use a single actor to continuously scan the data, treating it as a regular topic without wildcard.
Describe the bug
As titled.
Found it while investigating #19641.
Error message/log
To Reproduce
Expected behavior
You should be able to see 16 rows from
select * from mqtt_source_table
.However, you can only observe only 2 rows.
How did you deploy RisingWave?
Anyway
The version of RisingWave
I guess any version. At least 2.1.0 has this problem.
Additional context
No response
The text was updated successfully, but these errors were encountered: