Skip to content

Releases: Tokutek/mongo

TokuMX 1.1.0

21 Aug 12:30
Compare
Choose a tag to compare

General

  • This release introduces background indexing support and a fast bulk loader for mongoimport and mongorestore.

New features and improvements

  • Background indexing is now supported. (#9, #372)
  • A bulk load API has been introduced (beginLoad, commitLoad, and abortLoad commands) that increases the throughput of initial bulk collection loading. This API is used automatically by mongoimport and mongorestore when loading into a non-existent collection or when using the --drop option, and is documented in the User's Guide. (#287, #288, #313, #371, #386, #387)
  • Reduced the recovery logging overhead of insert/update/delete workloads. (#10, #370)
  • Improved the reliability of index builds. (#290, #295, #296)
  • Improved the concurrency of certain highly multi-threaded modification workloads. (#342, #343, #358, #432)
  • Optimized the thread that purges old entries from the oplog. (#399, #435, #447)
  • Improved the reliability of distributed locks used in sharding. (#451)

TokuMX 1.0.4

15 Aug 15:42
Compare
Choose a tag to compare

General

  • This release is focused on bug fixes since 1.0.3.
  • This release fixes a critical bug in replication present in all versions up to and including 1.0.3. See below for details.

New features and improvements

  • Added a thread to do periodic optimization of the oplog, which should clear space from it more aggressively. (#399)
  • Added new commands replGetExpireOplog and replSetExpireOplog for dynamically controlling the size of the oplog. (#415)

Bug fixes

  • Backported SERVER-1929 from mongodb 2.4 to prevent replica set failover thrashing. (#344)
  • Prevented the oplog purging thread from completely emptying the oplog during long idle periods. (#345)
  • Backported SERVER-7951 from mongodb 2.4 to allow replace-style updates when using hashed shard keys. (#347)
  • Improved the concurrency model used by authentication. This also fixes a deadlock that can occur most often when running with authentication but without any admin users declared. (#366, #375, #401)
  • Resolved a crash when using the web UI on a server running with authentication. (#378)
  • Data cleanup after a successful chunk migration no longer happens on a background thread. This fixes some performance issues triggered by a large number of migrations piling up. (#379, #393)
  • Improved reliability of the distributed locking used by sharding. (#413)
  • Fixed a race condition that could result in data loss on secondaries, under multi-threaded workloads. This bug can produce a secondary that appears to be fully synced but is missing some data, and if this secondary is ever elected primary, could result in the permanent loss of that data. All servers should immediately be upgraded to 1.0.4 or greater, all secondaries should be re-synced from an empty state, and any possible internal consistency invariants should be checked. (#433)
  • Fixed a bug that prevented the oplog from getting trimmed properly in certain cases. (#435)
  • Backported fixes for SERVER-10458, SERVER-10478, and SERVER-10498 from upstream. This brings tokumx current with mongodb 2.2.6. (#436)

TokuMX 1.0.3

23 Jul 02:20
Compare
Choose a tag to compare

General

  • This release adds a tool for performing online data migration from vanilla MongoDB.

New features and improvements

  • Added the mongo2toku tool that reads and replays the vanilla MongoDB replication format, which allows TokuMX to sync from vanilla MongoDB. (#320)
  • Added a storage layer optimization that improves the processor caching behavior and performance of point queries and especially non-covering secondary range queries. (#312)
  • Improved the concurrency behavior of the storage layer when, for a large transaction, the commit or abort itself is expensive. (#334)

Bug fixes

  • Fixed a few race conditions and strange behaviors related to replication. (#322, #325, #328, #329)
  • Fixed a resource leak that could occur if the creation of an index fails for any reason. (#331)

TokuMX 1.0.2

10 Jul 18:34
Compare
Choose a tag to compare

New features and improvements

  • Backported SERVER-1752 to improve the performance of some count() queries by a factor of 2. (#300)

Bug fixes

  • Fixed a bug introduced in tokumx 1.0.1 where lock timeouts and deadlocks caused the connection to die unnecessarily. (#293, #301)
  • Properly handle errors that arise during operation of the bulk loader. (#295, #296)

TokuMX 1.0.1

02 Jul 20:38
Compare
Choose a tag to compare

New features and improvements

  • The default compression method is now zlib. (#189)

Bug fixes

  • Fixed a bug causing concurrent insertions on different keys in certain (typically nearly-sequential insertion order) scenarios to block. This should improve the performance of workloads with multiple writers. (#273)
  • The code that takes distributed locks in a cluster now correctly handles row lock error codes. This eliminates what were previously rare crashes. (#249)

TokuMX 1.0.0

02 Jul 20:36
Compare
Choose a tag to compare

General

  • This release is focused on bug fixes since 1.0.0-rc.0.
  • The file names used by TokuMX have been changed, so upgrading from a prior version (even 1.0.0-rc.0) is not possible. Please do a dump and restore to upgrade.

New features and improvements

  • The parameters --logDir and --tmpDir now allow finer control of where TokuMX puts its files. See the users' guide for details.
  • Building an index on a non-empty collection now uses a faster bulk loader to do the initial index build.

Bug fixes

  • Large transactions no longer fail during replication or chunk migrations. (#93, #100)
  • Fixed a deadlock that could occur during rapid chunk migrations. (#115)
  • Fixed a few miscellaneous bugs in replication and sharding. (#232, #228, #225)
  • Properly ignore the $atomic flag for queries. (#230)
  • The bug causing large multi-field $in queries to run slowly has been fixed. (#212)
  • Calls to db.eval() are now properly profiled. (#16)

TokuMX 1.0.0-rc.0

02 Jul 20:32
Compare
Choose a tag to compare
TokuMX 1.0.0-rc.0 Pre-release
Pre-release

General

  • The major developments in this release are replication and sharding.

New features and improvements

  • Replication and sharding are now supported for evaluation.
  • Sharding on a hashed key is supported (backported from 2.4).
  • Sharding creates clustering indexes by default, which is a significant performance advantage in most cases. If you need to shard on a non-clustering index, you need to specify that in sh.shardCollection(), for example
sh.shardCollection("test.foo",
                       {x: 1},
                       false, // unique
                       false  // clustering
                       );
  • The JS client driver now supports the clustering flag in sh.shardCollection, which should only be used if you want to specify that you want to shard on a NON-clustering index (set it to false). See above.
  • "DDL" changes (create, drop, ensureIndex, dropIndexes, rename) are now supported inside multi-statement transactions, and are properly rolled back on rollbackTransaction.
  • The C++ client driver now supports clustering indexes. This changes the function signature for DBClientWithCommands::ensureIndex, please check your applications in light of this API change.
  • The C++ client driver has a convenience class for multi-statement transactions: RemoteTransaction. Please check its documentation.
  • The local.oplog.rs collection is no longer capped, and instead can be trimmed to keep N days' worth of data. Use the command line flag --expireOplogDays to configure this number of days (by default, nothing is trimmed).