summaryrefslogtreecommitdiff
path: root/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/DESIGN.md
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/DESIGN.md')
-rw-r--r--src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/DESIGN.md40
1 files changed, 0 insertions, 40 deletions
diff --git a/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/DESIGN.md b/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/DESIGN.md
deleted file mode 100644
index 6594a85d083..00000000000
--- a/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/topology/DESIGN.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# Topology Package Design
-This document outlines the design for this package.
-
-## Topology
-The `Topology` type handles monitoring the state of a MongoDB deployment and selecting servers.
-Updating the description is handled by finite state machine which implements the server discovery
-and monitoring specification. A `Topology` can be connected and fully disconnected, which enables
-saving resources. The `Topology` type also handles server selection following the server selection
-specification.
-
-## Server
-The `Server` type handles heartbeating a MongoDB server and holds a pool of connections.
-
-## Connection
-Connections are handled by two main types and an auxiliary type. The two main types are `connection`
-and `Connection`. The first holds most of the logic required to actually read and write wire
-messages. Instances can be created with the `newConnection` method. Inside the `newConnection`
-method the auxiliary type, `initConnection` is used to perform the connection handshake. This is
-required because the `connection` type does not fully implement `driver.Connection` which is
-required during handshaking. The `Connection` type is what is actually returned to a consumer of the
-`topology` package. This type does implement the `driver.Connection` type, holds a reference to a
-`connection` instance, and exists mainly to prevent accidental continued usage of a connection after
-closing it.
-
-The connection implementations in this package are conduits for wire messages but they have no
-ability to encode, decode, or validate wire messages. That must be handled by consumers.
-
-## Pool
-The `pool` type implements a connection pool. It handles caching idle connections and dialing
-new ones, but it does not track a maximum number of connections. That is the responsibility of a
-wrapping type, like `Server`.
-
-The `pool` type has no concept of closing, instead it has concepts of connecting and disconnecting.
-This allows a `Topology` to be disconnected,but keeping the memory around to be reconnected later.
-There is a `close` method, but this is used to close a connection.
-
-There are three methods related to getting and putting connections: `get`, `close`, and `put`. The
-`get` method will either retrieve a connection from the cache or it will dial a new `connection`.
-The `close` method will close the underlying socket of a `connection`. The `put` method will put a
-connection into the pool, placing it in the cahce if there is space, otherwise it will close it.