Description
ReadStep subscriptions are currently used to determine the maximum version that could possibly be used by the previous generation. Since DataShards need last and next read steps from coordinators, this results in a request on each tablet startup, however this establishes a subscription, coordinators will keep streaming updates, which it seems ended up not being used for anything. At 1Hz planning (volatile transactions) combined with heavy reads (so read step is constantly updated) this leads to hundreds of thousands of messages in large databases with hundreds nodes.
Getting rid of subscriptions will require a new coordinator API, but this problem needs to be solved in a stable version. I think I want to make some hotfix first, e.g. make sure datashards unsubscribe as soon as they no longer need a subscription, and time cast will need to unsubscribe much faster (e.g. after a 1 second of idle time), while retaining a connected pipe for longer (currently 5 minutes).