Releases: mongodb/mongo-c-driver
mongo-c-driver 1.2.0-beta
It is my pleasure to announce to you the first beta release of the MongoDB C driver 1.2.0.
This release is a stable release with additive ABI changes and bugfixes. It is compatible with MongoDB version 2.4 and later.
Version 1.2.0 rewrites mongoc_client_t's internals to match two important new specs for MongoDB drivers: the Server Discovery And Monitoring Spec and the Server Selection Spec. The rewritten client has many advantages:
- All replica set members or mongoses are discovered and periodically
checked in parallel. The driver's performance is dramatically better and
more predictable with multi-server deployments, or with a flaky network,
or when some servers are slow or down. - Clients from the same mongoc_client_pool_t share a background thread that
discovers and monitors all servers in parallel. - Unnecessary round trips for server checks and pings are eliminated.
- Behavior is documented in the specs, and consistent with other drivers, even
in complex or unusual scenarios. - The URI's "replicaSet" option is enforced: the driver now refuses to connect
to a server unless it is a member of a replica set with the right setName. - Many race conditions related to changing deployment conditions are fixed.
To conform to the new specs, the client now accepts these options in the MongoDB URI; see the mongoc_uri_t documentation for details:
- heartbeatFrequencyMS
- serverSelectionTimeoutMS
- serverSelectionTryOnce
- socketCheckIntervalMS
Other features:
- All timeouts that can be configured in the URI now interpret 0 to mean "use the default value for this timeout".
- The client's read preference can be configured in the URI with the new
options "readPreference" and "readPreferenceTags", see the mongoc_uri_t
documentation. - The new mongoc_uri_get_read_prefs_t function retrieves both the read mode
and tags from a mongoc_uri_t. - New accessors mongoc_gridfs_file_get_id, mongoc_client_get_default_database,
and mongoc_bulk_operation_get_write_concern. - Debug tracing can be controlled at runtime with mongoc_log_trace_enable and
mongoc_log_trace_disable.
Notable bugs fixed:
- "wtimeoutms" was ignored for write concerns besides "majority".
- Bulk write operations might fail in mixed-version sharded clusters with
some pre-2.6 mongos servers. - Normal operations were logged during startup and could not be silenced.
- A variety of bugs and incorrect results in mongoc_bulk_operation_execute.
- Numerous compiler warnings and build failures on various platforms.
- Copious refinements to the documentation.
Thanks to everyone who contributed to this version of libmongoc.
- A. Jesse Jiryu Davis
- Sujan Dutta
- Jason Carey
- Hannes Magnusson
- Jeremy Mikola
- Derick Rethans
- Samantha Ritter
- Yuchen Xie
- Lloyd Zhou
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.1.10
It is my pleasure to announce to you the MongoDB C driver 1.1.10.
This is a patch release with bug fixes:
- Occasional crash reconnecting to replica set.
- Queries sent to recovering replica set members.
- Memory leak when calling ismaster on replica set members.
Thanks to everyone who contributed to the development of this point release for
libmongoc.
- A. Jesse Jiryu Davis
- Daniil Zaitsev
- Jason Carey
- Jeremy Mikola
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.1.9
It is my pleasure to announce to you the MongoDB C driver 1.1.9.
This release fixes a common crash in 1.1.8, which itself was introduced while
fixing a rare crash in 1.1.7. For further details:
https://jira.mongodb.org/browse/CDRIVER-721
https://jira.mongodb.org/browse/CDRIVER-695
Thanks to everyone who contributed to the development of this point release for
libmongoc.
Peace,
A. Jesse Jiryu Davis
mongo-c-driver 1.1.8
Update: this release suffers from a severe regression, CDRIVER-721, so I'm removing it.
It is my pleasure to announce to you the 1.1.8 release of the MongoDB C driver.
This is a patch release with bug fixes:
- Crash freeing client after a replica set auth error.
- Compile error in strict C89 mode.
Thanks to everyone who contributed to the development of this point release for
libmongoc.
Peace,
A. Jesse Jiryu Davis
Mongo-c-driver 1.1.7
mongo-c-driver 1.1.7
It is my pleasure to announce to you the 1.1.7 release of the MongoDB C driver.
This is a patch release with bug fixes:
- Thread-safe use of Cyrus SASL library.
- Experimental support for building with CMake and SASL.
- Faster reconnection to replica set with some hosts down.
- Crash iterating a cursor after reconnecting to a replica set.
- Unchecked errors decoding invalid UTF-8 in MongoDB URIs.
- Fix error reporting from mongoc_client_get_database_names.
Thanks to everyone who contributed to the development of this point release for
libmongoc.
- A. Jesse Jiryu Davis
- Jason Carey
- Hannes Magnusson
Peace,
A. Jesse Jiryu Davis
Mongo-c-driver 1.1.6
mongo-c-driver 1.1.6
It is my pleasure to announce to you the 1.1.6 release of the MongoDB C driver.
This is a patch release with performance enhancements and bug fixes:
- mongoc_bulk_operation_execute now coalesces consecutive update operations
into a single message to a MongoDB 2.6+ server, yielding huge performance
gains. Same for remove operations. (Inserts were always coalesced.) - Large numbers of insert operations are now properly batched according to
number of documents and total data size. - GSSAPI / Kerberos auth now works.
- The driver no longer tries three times in vain to reconnect to a primary,
so socketTimeoutMS and connectTimeoutMS now behave closer to what you
expect for replica sets with down members. A full fix awaits 1.2.0.
I snuck in a feature:
- mongoc_matcher_t now supports basic subdocument and array matching
Thanks to everyone who contributed to the development of this point release for
libmongoc.
- A. Jesse Jiryu Davis
- Jason Carey
- Kai Mast
- Matt Cotter
Peace,
A. Jesse Jiryu Davis
Mongo-c-driver 1.1.5
mongo-c-driver 1.1.5
It is my pleasure to announce to you the 1.1.5 release of the MongoDB C driver.
This is a patch release with performance enhancements and bug fixes:
- The fsync and j write concern flags now imply acknowledged writes
- Prevent using fsync or j with conflicting w=0 write concern
- Obey socket timeout consistently in TLS/SSL mode
- Return an error promptly after a network hangup in TLS mode
- Prevent crash using SSL in FIPS mode
- Always return NULL from mongoc_database_get_collection_names on error
- Fix version check for GCC 5 and future versions of Clang
- Fix warnings and errors building on various platforms
- Add configure flag to enable/disable shared memory performance counters
- Minor docs improvements and fix links from C Driver docs to Libbson docs
With this release, Libbson abandons the convention that odd-numbered patch
versions indicate unstable releases. We switch to simple semantic versioning:
1.1.5 is a stable release with bug fixes since 1.1.4. During subsequent
development the version will be "1.1.6-dev".
Thanks to everyone who contributed to the development of this point release for
libmongoc.
- A. Jesse Jiryu Davis
- Christian Hergert
- Jason Carey
- Jeremy Mikola
- Jeroen Ooms
- Hannes Magnusson
Enjoy!
-- A. Jesse Jiryu Davis
Mongo-c-driver 1.1.4
mongo-c-driver 1.1.4
It is my pleasure to announce to you the 1.1.4 release of the MongoDB C driver.
This release is a stable release with performance enhancements and bugfixes.
Changes include:
- Fixed client pool concurrency issues
- Fixed some scenarios where replica sets would fail to reconnect on primary
step down. - Improved write concern handling
- Validate port number in URI
- Various other fixes
Thanks to everyone who contributed to the development of this point release for
libmongoc.
- Jason Carey
- Andrew Clayton
- A. Jesse Jiryu Davis
- Jeremy Mikola
Enjoy!
-- Jason Carey
Mongo-c-driver 1.1.2
mongo-c-driver 1.1.2
It is my pleasure to announce to you the 1.1.2 release of the MongoDB C driver.
This release is a stable release with performance enhancements and bugfixes.
Changes include:
- Process connectTimeoutMS cast insensitively
- Addition of missing trace macros
- Improvement of internal error messages
- Fix a segfault in OpenSSL cleanup routines
- Fix for IPv6 support for replica sets
- Coalesce small vectorized TLS writes
- MinGW fixups
- Fix for a memory leak in get_database_names()
- Fixes for patching write concern through the bulk api
- Fix to normalize hostnames in uri parsing
- Fix for managing connections in the client pool
- Various other fixes
Thanks to everyone who contributed to the development of this point release for
libmongoc.
- Andrew Clayton
- Denis Gladkikh
- Hannes Magnusson
- Jason Carey
- Jeremy Mikola
- mschoenlaub
- Samantha Ritter
- Tyler Brock
Enjoy!
-- Jason Carey
Mongo-c-driver 1.1.0
mongo-c-driver 1.1.0
It is my pleasure to announce to you the 1.1.0 release of the MongoDB C driver.
This release is a stable release with additive ABI changes and bugfixes.
The below changes include some carried over from RC0.
Changes include:
- RC0
- ABI versioning for 1.1 versus 1.0 symbols
- additional geo index options
- authMechanismProperties in URI
- fixes for OS X Yosemite
- removal of replica set member limit
- SCRAM-SHA-1 SASL mechanism
- updated dependency on libbson 1.1 abi
- validation for bulk insert
- various memory leak fixes
- Fixes to documentation typos
- "How to Ask For Help" in the README
- Removed dependency on sasl for PLAIN authentication
- Use provided username, if available, for X.509 auth
- Fixed WriteConcern error reporting for some writes
- Check for closed sockets before attempting RPCs
- Fixes for gridfs file seek
- Fixes for mongoc_cursor_clone()
- Fixes for unix domain socket support
- Fixes for polling on win32
- Improved warnings on failure to connect
- Addition of wired tiger options
- Fixes for examples
Additions to the ABI include:
- support for extra option in count
- mongoc_collection_count_with_opts
- additional index options
- mongoc_index_opt_geo_get_default
- mongoc_index_opt_geo_init
- mongoc_index_opt_wt_get_default
- mongoc_index_opt_wt_init
- rand interface to seed and verify the strong random number generation needed
by some auth mechanisms- mongoc_rand_seed
- mongoc_rand_add
- mongoc_rand_status
- URI additions to support more complicated auth credentials
- mongoc_uri_get_credentials
- mongoc_uri_get_mechanism_properties
- Support for cursor returning metadata crud operations
- mongoc_client_find_databases
- mongoc_collection_find_indexes
- mongoc_database_find_collections
- Kill cursor supportp
- mongoc_client_kill_cursor
- Various get/setters on cursor
- mongoc_cursor_get_batch_size
- mongoc_cursor_get_id
- mongoc_cursor_set_batch_size
- More socket/stream options
- mongoc_socket_check_closed
- mongoc_socket_inet_ntop
- mongoc_stream_check_closed
- mongoc_stream_write
Additional Notes:
Existing complex index names may contain a zero instead of a type due to
a bug in mongoc_collection_keys_to_index_string. As a result those indexes may
be hard to drop from the driver as they have a name you would not expect.
Thanks to everyone who contributed to the development of this point release for
libmongoc.
- Adam Midvidy
- aherlihy
- alexeyvo
- Christian Hergert
- Hannes Magnusson
- Jason Carey
- Jérôme Lebel
- Jesse Jiryu Davis
- lloydzhou
- Mark Benevenuto
- Paul Melnikow
- Samantha Ritter
- Shraya Ramani
- Spencer Jackson
- Spencer Jackson
- Tyler Brock
Enjoy!
-- Jason Carey