AMWA-TV / is-04

AMWA IS-04 NMOS Discovery and Registration Specification (Stable)
https://specs.amwa.tv/is-04
Apache License 2.0
39 stars 23 forks source link

Behavior of registered Node when RDS with higher priority appears online #209

Open Bluecoffeee opened 11 months ago

Bluecoffeee commented 11 months ago

Hello!

I'm writing in order to shed some light on the following question. May be it was described somewhere in NMOS specification, but I haven't found any description of this case. So, I would be grateful for any clarification.

Say we have a Node which is registered on RDS_1 with priority=100. If then another RDS_2 with higher priority=10 appears in the same subnet - what should the Node do? Should it stay with RDS_1? Or should it delete itself from RDS_1 and perform registration on RDS_2 (since the latter has higher priority)?

Thanks.

garethsb commented 11 months ago

The spec says "If the chosen Registration API does not respond correctly at any time, another Registration API SHOULD be selected from the discovered list." The Node would not change which Registration API it uses until the current one does not respond correctly.

N-Nagorny commented 11 months ago

Hm, that's interesting. The spec requires Controllers to choose single Query API and Nodes to choose single Registration API, both based on the priority. The purpose of this is Controllers and Nodes looking at the same Registry, right?

But if there is no a requirement for rediscovering APIs, it really depends on the launch order.

  1. Node 1 comes online.
  2. RDS 1 comes online (pri of R and Q APIs = 20).
  3. Node 1 registers on RDS 1. (Is this prescribed by the spec, by the way? Is the default expected behaviour of Node 1 staying peer-to-peer if there were no Registration APIs on its launch?)
  4. RDS 2 comes online (pri of R and Q APIs = 10).
  5. Node 2 comes online.
  6. Node 2 registers on RDS 2 because it has the highest priority.
  7. Controller comes online.
  8. Controller subscribes to the Query API of RDS 2.

In this scenario we lose Node 1 until RDS 1 becomes unresponsive. Is this a hole in the spec or I'm missing something?

garethsb commented 11 months ago

See the Registered Model diagram in the Overview. The expectation in the specification is that if there are multiple Registration & Discovery Instances making up the Registration & Discovery System, that the RDI have some replication mechanism (unspecified) so that the information available between them is consistent.