Dear Job, Working Group,

On 7 Nov 2017, at 23:11, Job Snijders via db-wg <db-wg@ripe.net> wrote:

Dear all,

There may be some improvement opportunity for NRTMv3.

The problem with the RIPE NRTMv2/NRTMv3 format is that it has no
'end-of-stream' indicator, thus making the only way to know that the
output has ended (vs. hung/stalled/server dead) is either by observing a
time-out & reconnect & compare last serial, or by using single-command
connections to the NRTM server - which means even worse performance.

When connecting to the RIPE NRTM service and issuing a command like:

   "-g RIPE:3:11012700-LAST -k"

It would be good that when the RIPE NRTM server is done sending its
inital blurp of backlogged data, the end of that phase of the stream of
objects is marked by the server sending something like:

   "%CURRENT $TS You are now up to date" ($TS can be a unix timestamp)

after this server message the client knows that it can stay connected
and that it has received all information so far.

I would also welcome an investigation into alternative approaches, (some
not-via-WHOIS replication mechanisms), perhaps something over HTTPS can
be done? Either way, something more robust would be useful.

Kind regards,

Job

ps. An analogy can be made between BGP route refresh as described in RFC
2918 and Enhanced Route Refresh as described in RFC 7313. One first one
didn't have an "End of blurp" marker which negatively impacted its
usefulness, the later RFCintroduced the End-of-RIB marker which is
very useful.



as part of the Whois 1.91 release, we've added an NRTM "end of stream" comment, and deployed to the Release Candidate environment.

Try connecting to whois-rc.ripe.net on TCP port 4444, and enter the command "-g RIPE:3:40956391-LAST -k". Each set of changes will be followed by an "end of stream" comment.

Changes to objects in RC will appear in the NRTM stream. Changes can be made in RC using the mntner-id (in uppercase) as the password.

Query for existing data: https://rc.db.ripe.net/db-web-ui/#/query
Create a new object: https://rc.db.ripe.net/db-web-ui/#/webupdates/select
Multiple changes can be made at once using Syncupdates: https://rc.db.ripe.net/db-web-ui/#/syncupdates

For more information on the Release Candidate environment, refer to:
https://www.ripe.net/manage-ips-and-asns/db/release-notes/rc-release-candidate-environment

Please let us know if you see any issues with this change.

Regards
Ed Shryane
RIPE NCC