Трекинг топологии для sync
Добавить в синхронную часть драйвера read-only представление топологии кластера по аналогии с !42 (merged). Интерфейс нужно построить так, чтобы в будущем источник данных можно было заменить на notification-based источник без переписывания модели Topology и кода Pool. В рамках задачи нужно:
- добавить sync-аналог TopologyTracker
- реализовать получение инстансов и репликасетов из системных таблиц
- переиспользовать общие структуры Topology, EventInstance, EventReplicaset и тд
- добавить Pool.topology как read-only view текущей известной топологии
- добавить при Pool.open() _topology_tracker.start(), при Pool.close() _topology_tracker.stop()
- добавить настройку topology_update_interval, по аналогии с async
- поддержать режим отключения трекера через topology_update_interval=None
Edited by Даниил Горляков