1.3.0
版本发布时间: 2013-10-18 22:34:39
Tokutek/mongo最新发布版本:tokumx-2.0.1(2015-03-04 23:52:53)
General
-
This release brings TokuMX full compatibility with MongoDB v2.4, except for full text search and geo indexes (2d and 2dsphere).
For a full set of changes, confer with https://jira.mongodb.org and MongoDB's marketing materials. Some major features are called out below in addition to TokuMX-specific features and fixes.
New features and improvements
- Switched the default Javascript interpreter to V8. (#161, #497, #517)
- Added the
$setOnInsert
update operator. (#279) - Many numeric
"byte quantity"
parameters can now be specified with units, for example"1MB"
or"32k"
or"6T"
. The allowed suffixes are"kmgt"
, either upper or lower case, and optionally also with a"b"
or"B"
. All suffixes use binary quantities, not decimal, so"1MB"
is1 * 1024 * 1024
, not1000000
. The command line parameters that accept these quantities arecacheSize
,locktreeMaxMemory
, andtxnMemLimit
. These parameters, if passed in a BSON object, must be passed as strings, and are accepted as parameters topageSize
,readPageSize
, and thesize
for capped collections, as well as the argument to thebackupThrottle
command in the enterprise Hot Backup plugin. (#266, 536, #545) - Added mongo shell wrapper functions
db.showLiveTransactions()
anddb.showPendingLockRequests()
. (#437, #526) - Merged improvements to the aggregation framework in v2.4, including performance optimizations and some behavioral changes. (#516, #517)
- Merged authorization system changes (fine-grained access control) in v2.4. (#527, #549)
- Re-enabled an optimization for updates using the
_id
index. (#538) - Added a parameter
--loaderMaxMemory
which controls the amount of memory used by the bulk loader, which is used by mongorestore. The default value is 100MB. (#571) - The
lockTimeout
parameter can now be set by thesetParameter
command. (#574) - Merged changes to the
db.serverStatus()
command, and added several TokuMX-specific fields. See the user's guide for more details. (#591, #626, #627) - Optimized generation of secondary keys, which impacts workloads with a large number of secondary indexes and/or indexes on array-valued fields. (#600, #618)
- Skip generation of secondary keys for indexes that are not affected by an update. This has a significant positive impact on the performance of workloads with indexes on array-valued fields that don't get changed by update statements. (#601, #617)
Bug fixes
- Fixed display of date/time information in
db.engineStatus()
output. (#533) - Avoid building unique indexes in the background. Doing this is not actually an error, but if another client violates the unique constraint for an index that isn't finished building, the index build will waste a lot of time building the index only to roll it back later. Unique indexes will always be built in the foreground. (#537)
- Fixed command line parsing of the
--lockTimeout
option. (#541) - Allow
db.dropDatabase()
when profiling is on. (#546) - Fixed an issue where deletes and updates in multi-statement transactions can cause indexes to get out of sync. (#562)
- Fixed a possible deadlock caused by trying to open a collection in certain contexts, like
db.eval()
. (#573) - Fixed a possible crash after aborting a bulk load. (#589)
- Prevented
mapReduce
operations from using too much server memory. (#593) - Fixed an issue where splitting a chunk may fail if many documents have been deleted from the chunk since it was created. (#602)
- Fixed a bug that causes an extra empty chunk to be generated when the
force
option is used with thesplitVector
command. (#604) - The date fields in
db.engineStatus()
are now stored as true BSON Date objects, rather than formatted strings. (#630) - Fixed a locking issue with the
replSetExpireOplog
command. (#642) - Fixed an issue where the initial splitting of an empty collection for a
shardCollection
command with a hashed shard key would fail on clusters of 32 or more shards. (#649) - Fixed the logging of "lock not granted" errors that happen on the ydb directory. (#652)