ChangeStream server selectors should include a LatencySelector

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • 1.7.2
    • Affects Version/s: 1.7.1
    • Component/s: None
    • None
    • None
    • Not Needed
    • None
    • None
    • None
    • None
    • None
    • None

      I looked into this community forum post and I think it describes a real bug.

      Summary

      Almost all operations use a composite server selector that includes a LatencySelector to filter out high-latency servers.

      See default Collection read selector:

      description.CompositeSelector([]description.ServerSelector{
      	description.ReadPrefSelector(rp),
      	description.LatencySelector(db.client.localThreshold),
      })
      

      However, the ChangeStream server selector seems to not use a LatencySelector, only a ReadPrefSelector.

      See ChangeStream selector:

      cs := &ChangeStream{
      	client:        config.client,
      	registry:      config.registry,
      	streamType:    config.streamType,
      	options:       options.MergeChangeStreamOptions(opts...),
      	selector:      description.ReadPrefSelector(config.readPreference),
      	cursorOptions: config.client.createBaseCursorOptions(),
      }
      

      Is that intentional or a bug?

              Assignee:
              Benji Rewis (Inactive)
              Reporter:
              Matt Dale
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: