Closed crotwell closed 9 months ago
The protocol is clear that the sequence numbers should be considered per-station. In my opinion, it is an implementation detail that server implementations, like ringserver, use a global sequence space. The sole effect between these server-specific schemes, that I'm aware of, is that clients cannot assume that the per-station sequence numbers are monotonically increasing if all streams of the station are selected.
Edit: [Speaking for myself and not on behalf of the proposal team] In my opinion, making the client interaction more complicated with two different modes of resuming is not worth it.
So my concern is resuming when the original request included wildcards. If there are no STATION wildcards, then I agree with you.
But if there are wildcards, then this seems a correct way to resume if sequence space is global, but probably should be an error if the sequence is per station, as it makes no sense to start at the same sequence number for multiple stations when they have no relation. Of course the client has to somehow know the difference.
STATION GE_*
SELECT *_H_H_Z
DATA 12345
If the intention is that a client should never assume global sequence numbers and always resume via the per station sequence number scheme, as in #18, then perhaps document that it is an error to use DATA seq
if the preceding STATION command used wildcards?
1) Add a clear statement that servers may not support resuming selections containing wildcards. 2) Add a capability flag that indicates if resuming from wildcards is supported by the server.
+1 on change
Some servers use per station sequence numbers, but others (ringserver) use a global sequence number for all. It would be helpful if clients could determine this via the protocol so they know if they need to keep track of a single sequence number for all stations, or a map of station to sequence number individually.
Not sure if this fits better into capabilities or as part of an INFO command.
Also see #19 if implemented, using a similar discovery mechanism to timeout would be good.