Documentation ¶
Index ¶
Constants ¶
const Unknown = 0
Unknown is an unknown server or topology kind.
const UnsetRTT = -1 * time.Millisecond
UnsetRTT is the unset value for a round trip time.
Variables ¶
This section is empty.
Functions ¶
func MaxStalenessSupported ¶
func MaxStalenessSupported(wireVersion *VersionRange) error
MaxStalenessSupported returns an error if the given server version does not support max staleness.
func ScramSHA1Supported ¶
func ScramSHA1Supported(wireVersion *VersionRange) error
ScramSHA1Supported returns an error if the given server version does not support scram-sha-1.
Types ¶
type SelectedServer ¶
type SelectedServer struct { Server Kind TopologyKind }
SelectedServer represents a selected server that is a member of a topology.
type Server ¶
type Server struct { Addr address.Address AverageRTT time.Duration AverageRTTSet bool Compression []string // compression methods returned by server CanonicalAddr address.Address ElectionID objectid.ObjectID HeartbeatInterval time.Duration LastError error LastUpdateTime time.Time LastWriteTime time.Time MaxBatchCount uint32 MaxDocumentSize uint32 MaxMessageSize uint32 Members []address.Address ReadOnly bool SetName string SetVersion uint32 Tags tag.Set Kind ServerKind WireVersion *VersionRange }
Server represents a description of a server. This is created from an isMaster command.
type ServerKind ¶
type ServerKind uint32
ServerKind represents the type of a server.
const ( Standalone ServerKind = 1 RSMember ServerKind = 2 RSPrimary ServerKind = 4 + RSMember RSSecondary ServerKind = 8 + RSMember RSArbiter ServerKind = 16 + RSMember RSGhost ServerKind = 32 + RSMember Mongos ServerKind = 256 )
These constants are the possible types of servers.
func (ServerKind) String ¶
func (kind ServerKind) String() string
String implements the fmt.Stringer interface.
type ServerSelector ¶
ServerSelector is an interface implemented by types that can select a server given a topology description.
func CompositeSelector ¶
func CompositeSelector(selectors []ServerSelector) ServerSelector
CompositeSelector combines multiple selectors into a single selector.
func LatencySelector ¶
func LatencySelector(latency time.Duration) ServerSelector
LatencySelector creates a ServerSelector which selects servers based on their latency.
func ReadPrefSelector ¶
func ReadPrefSelector(rp *readpref.ReadPref) ServerSelector
ReadPrefSelector selects servers based on the provided read preference.
func WriteSelector ¶
func WriteSelector() ServerSelector
WriteSelector selects all the writable servers.
type ServerSelectorFunc ¶
ServerSelectorFunc is a function that can be used as a ServerSelector.
func (ServerSelectorFunc) SelectServer ¶
func (ssf ServerSelectorFunc) SelectServer(t Topology, s []Server) ([]Server, error)
SelectServer implements the ServerSelector interface.
type Topology ¶
type Topology struct { Servers []Server Kind TopologyKind }
Topology represents a description of a mongodb topology
type TopologyDiff ¶
TopologyDiff is the difference between two different topology descriptions.
func DiffTopology ¶
func DiffTopology(old, new Topology) TopologyDiff
DiffTopology compares the two topology descriptions and returns the difference.
type TopologyKind ¶
type TopologyKind uint32
TopologyKind represents a specific topology configuration.
const ( Single TopologyKind = 1 ReplicaSet TopologyKind = 2 ReplicaSetNoPrimary TopologyKind = 4 + ReplicaSet ReplicaSetWithPrimary TopologyKind = 8 + ReplicaSet Sharded TopologyKind = 256 )
These constants are the available topology configurations.
func (TopologyKind) String ¶
func (kind TopologyKind) String() string
String implements the fmt.Stringer interface.
type Version ¶
Version represents a software version.
type VersionRange ¶
VersionRange represents a range of versions.
func NewVersionRange ¶
func NewVersionRange(min, max int32) VersionRange
NewVersionRange creates a new VersionRange given a min and a max.
func (VersionRange) Includes ¶
func (vr VersionRange) Includes(v int32) bool
Includes returns a bool indicating whether the supplied integer is included in the range.
func (VersionRange) String ¶
func (vr VersionRange) String() string
String implements the fmt.Stringer interface.