Documentation ¶
Index ¶
- Constants
- func MaxStalenessSupported(serverVersion Version, wireVersion *VersionRange) error
- func ScramSHA1Supported(version Version) error
- type SelectedServer
- type Server
- type ServerKind
- type ServerSelector
- type ServerSelectorFunc
- type Topology
- type TopologyDiff
- type TopologyKind
- type Version
- type VersionRange
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(serverVersion Version, wireVersion *VersionRange) error
MaxStalenessSupported returns an error if the given server version does not support max staleness.
func ScramSHA1Supported ¶
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 addr.Addr AverageRTT time.Duration AverageRTTSet bool CanonicalAddr addr.Addr ElectionID objectid.ObjectID GitVersion string HeartbeatInterval time.Duration LastError error LastUpdateTime time.Time LastWriteTime time.Time MaxBatchCount uint16 MaxDocumentSize uint32 MaxMessageSize uint32 Members []addr.Addr ReadOnly bool SetName string SetVersion uint32 Tags tag.Set Kind ServerKind WireVersion *VersionRange Version Version }
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.