The MongoDB Go Driver Team is pleased to release version 1.13.0 of the official Go driver.
Release Notes
This release enhances logging, search index management, and command events. This release also introduces smarter server selection for sharded clusters, optimizing retry selection. Additionally, we streamline resource usage on FaaS platforms by disabling streaming SDAM and introduce the serverMonitoringMode=stream/poll/auto URI option.
Logging
In this release, we add logging for server selection and SDAM (Server Discovery and Monitoring). See the Go Driver logging documentation for usage.
Search Index Management Helpers
New mongo.Collection methods have been added to support search index management. For more information on search indexes, see the documentation here.
Users can create and manage search indexes programmatically. This update provides more flexibility and a smoother user experience, allowing you to define your search index within your code.
Include DatabaseName in Command Events
DatabaseName is now returned by event.CommandStartedEvent and event.CommandFinishedEvent. This field will also be included in the command logging analogues. This addition will improve performance for users needing to keep a thread-safe map to maintain command-database relations, whereas now such a map can be deprecated.
Possible Retries to Alternate Mongos for Read/Write
In sharded MongoDB cluster deployments, it's essential to avoid repeatedly selecting a failing mongos instance. Currently, the driver randomly selects a mongos for each operation, which can lead to retrying failed operations with the same problematic mongos. This enhancement introduces smarter server selection for sharded topologies:
The driver will distinguish between the initial attempt and a retry.
It will remember the server used for the initial attempt.
When retrying, if multiple eligible mongos servers are available, the driver will select randomly from the healthy ones, excluding the previously used server.
The driver can assess mongos health before attempting a query and exclude unhealthy mongos from selection.
Transition to Polling Monitoring in FaaS Environments
In this release, we make important changes to enhance performance and flexibility. By default, streaming SDAM is now disabled on AWS Lambda and similar FaaS platforms, ensuring efficient resource utilization. We also introduce the serverMonitoringMode=stream/poll/auto URI option to give you greater control over monitoring modes. To improve client behavior, we mandate that clients refrain from using dedicated connections to measure Round-Trip Time (RTT) when employing the polling protocol. These updates aim to provide a more versatile and efficient experience for users.
For a full list of tickets included in this release, please see the links below:
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps go.mongodb.org/mongo-driver from 1.12.1 to 1.13.0.
Release notes
Sourced from go.mongodb.org/mongo-driver's releases.
... (truncated)
Commits
01cc2a2
Update version to v1.13.0d52c9e1
GODRIVER-2649 Remove RW Concern Logic from RunCommand (#1450)17f9d77
GODRIVER-3038 Add todo comments (#1452)373cda3
Fix spelling issues (#1451)4f44ebf
GODRIVER-2046 Return clearer error when truncating a float64 to float32 witho...99bdb94
GODRIVER-2810 Switch to polling monitoring when running within a FaaS environ...53450c7
GODRIVER-2989 Fix golang installation in Dockerfile (#1430)b8004e6
GODRIVER-3018 Use pre-commit for development (#1443)3a07cb1
GODRIVER-2005 - Replace "require" library with "assert" in documentation exam...1066e2a
GODRIVER-2607 Remove legacy shell from test scripts (#1429)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show