summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--buildscripts/resmokeconfig/suites/sharding_last_stable_mongos_and_mixed_shards.yml1
-rw-r--r--jstests/core/apitest_dbcollection.js1
-rw-r--r--jstests/core/collection_truncate.js4
-rw-r--r--jstests/core/dbstats.js2
-rw-r--r--jstests/sharding/features3.js1
-rw-r--r--jstests/sharding/stats.js1
-rw-r--r--src/mongo/db/catalog/database_impl.cpp4
-rw-r--r--src/mongo/db/commands/dbcommands.cpp2
-rw-r--r--src/mongo/db/stats/storage_stats.cpp8
-rw-r--r--src/mongo/s/commands/cluster_coll_stats_cmd.cpp2
-rw-r--r--src/mongo/s/commands/cluster_db_stats_cmd.cpp6
11 files changed, 16 insertions, 16 deletions
diff --git a/buildscripts/resmokeconfig/suites/sharding_last_stable_mongos_and_mixed_shards.yml b/buildscripts/resmokeconfig/suites/sharding_last_stable_mongos_and_mixed_shards.yml
index f11105ead3d..973aef02f2f 100644
--- a/buildscripts/resmokeconfig/suites/sharding_last_stable_mongos_and_mixed_shards.yml
+++ b/buildscripts/resmokeconfig/suites/sharding_last_stable_mongos_and_mixed_shards.yml
@@ -41,6 +41,7 @@ selector:
- jstests/sharding/upsert_sharded.js
- jstests/sharding/write_transactions_during_migration.js
- jstests/sharding/change_stream_show_migration_events.js
+ - jstests/sharding/features3.js
- jstests/sharding/prepare_transaction_then_migrate.js
# Enable after SERVER-40258 gets backported and available in the official 4.2 binaries.
- jstests/sharding/prepared_txn_metadata_refresh.js
diff --git a/jstests/core/apitest_dbcollection.js b/jstests/core/apitest_dbcollection.js
index f54e3e158c0..3f348bd6963 100644
--- a/jstests/core/apitest_dbcollection.js
+++ b/jstests/core/apitest_dbcollection.js
@@ -161,6 +161,7 @@ assert.eq(0, db.getCollection("test_db").getIndexes().length, "24");
assert.eq(0, noCollStats.nindexes, "All properties should be 0 on nonexistant collections");
assert.eq(
0, noCollStats.totalIndexSize, "All properties should be 0 on nonexistant collections");
+ assert.eq(0, noCollStats.totalSize, "All properties should be 0 on nonexistant collections");
// scale - passed to stats() as sole numerical argument or part of an options object.
t.drop();
diff --git a/jstests/core/collection_truncate.js b/jstests/core/collection_truncate.js
index 66b6d44db59..8a0a3f8a2ad 100644
--- a/jstests/core/collection_truncate.js
+++ b/jstests/core/collection_truncate.js
@@ -20,10 +20,6 @@ function assertEmpty() {
assert.eq(stats.count, 0);
assert.eq(stats.size, 0);
- if ('numExtents' in stats) {
- assert.lte(stats.numExtents, 1);
- }
-
assert.eq(t.count(), 0);
assert.eq(t.find().itcount(), 0);
diff --git a/jstests/core/dbstats.js b/jstests/core/dbstats.js
index 1a831e9ce42..18f395a4e9b 100644
--- a/jstests/core/dbstats.js
+++ b/jstests/core/dbstats.js
@@ -44,7 +44,7 @@
}
assert(dbStats.hasOwnProperty("storageSize"), tojson(dbStats));
- assert(dbStats.hasOwnProperty("numExtents"), tojson(dbStats));
+ assert(dbStats.hasOwnProperty("totalSize"), tojson(dbStats));
assert(dbStats.hasOwnProperty("indexSize"), tojson(dbStats));
if (isUsingPersistentStorage) {
diff --git a/jstests/sharding/features3.js b/jstests/sharding/features3.js
index cee22543b7e..bc1f9f3658d 100644
--- a/jstests/sharding/features3.js
+++ b/jstests/sharding/features3.js
@@ -48,6 +48,7 @@
assert.eq(numDocs / 2, x.shards[s.shard0.shardName].count, "count on " + s.shard0.shardName);
assert.eq(numDocs / 2, x.shards[s.shard1.shardName].count, "count on " + s.shard1.shardName);
assert(x.totalIndexSize > 0);
+ assert(x.totalSize > 0);
// insert one doc into a non-sharded collection
dbForTest.bar.insert({x: 1});
diff --git a/jstests/sharding/stats.js b/jstests/sharding/stats.js
index 76c64c8b41f..f068269cfeb 100644
--- a/jstests/sharding/stats.js
+++ b/jstests/sharding/stats.js
@@ -130,6 +130,7 @@
statComp(stat_obj.size, stat_obj_scaled.size, scale);
statComp(stat_obj.storageSize, stat_obj_scaled.storageSize, scale);
statComp(stat_obj.totalIndexSize, stat_obj_scaled.totalIndexSize, scale);
+ statComp(stat_obj.totalSize, stat_obj_scaled.totalSize, scale);
statComp(stat_obj.avgObjSize, stat_obj_scaled.avgObjSize, 1);
/* lastExtentSize doesn't exist in mongos level collection stats */
if (!mongos) {
diff --git a/src/mongo/db/catalog/database_impl.cpp b/src/mongo/db/catalog/database_impl.cpp
index 08add96be59..12853dd15bc 100644
--- a/src/mongo/db/catalog/database_impl.cpp
+++ b/src/mongo/db/catalog/database_impl.cpp
@@ -242,7 +242,6 @@ void DatabaseImpl::getStats(OperationContext* opCtx, BSONObjBuilder* output, dou
long long objects = 0;
long long size = 0;
long long storageSize = 0;
- long long numExtents = 0;
long long indexes = 0;
long long indexSize = 0;
@@ -259,7 +258,6 @@ void DatabaseImpl::getStats(OperationContext* opCtx, BSONObjBuilder* output, dou
BSONObjBuilder temp;
storageSize += collection->getRecordStore()->storageSize(opCtx, &temp);
- numExtents += temp.obj()["numExtents"].numberInt(); // XXX
indexes += collection->getIndexCatalog()->numIndexesTotal(opCtx);
indexSize += collection->getIndexSize(opCtx);
@@ -275,9 +273,9 @@ void DatabaseImpl::getStats(OperationContext* opCtx, BSONObjBuilder* output, dou
output->append("avgObjSize", objects == 0 ? 0 : double(size) / double(objects));
output->appendNumber("dataSize", size / scale);
output->appendNumber("storageSize", storageSize / scale);
- output->appendNumber("numExtents", numExtents);
output->appendNumber("indexes", indexes);
output->appendNumber("indexSize", indexSize / scale);
+ output->appendNumber("totalSize", (storageSize + indexSize) / scale);
output->appendNumber("scaleFactor", scale);
if (!opCtx->getServiceContext()->getStorageEngine()->isEphemeral()) {
diff --git a/src/mongo/db/commands/dbcommands.cpp b/src/mongo/db/commands/dbcommands.cpp
index 6df61000eac..ba34046a899 100644
--- a/src/mongo/db/commands/dbcommands.cpp
+++ b/src/mongo/db/commands/dbcommands.cpp
@@ -694,7 +694,7 @@ public:
result.append("avgObjSize", 0);
result.appendNumber("dataSize", 0);
result.appendNumber("storageSize", 0);
- result.appendNumber("numExtents", 0);
+ result.appendNumber("totalSize", 0);
result.appendNumber("indexes", 0);
result.appendNumber("indexSize", 0);
result.appendNumber("scaleFactor", scale);
diff --git a/src/mongo/db/stats/storage_stats.cpp b/src/mongo/db/stats/storage_stats.cpp
index 8b290ed2d95..63e5540fdaf 100644
--- a/src/mongo/db/stats/storage_stats.cpp
+++ b/src/mongo/db/stats/storage_stats.cpp
@@ -61,6 +61,7 @@ Status appendCollectionStorageStats(OperationContext* opCtx,
result->appendNumber("size", 0);
result->appendNumber("count", 0);
result->appendNumber("storageSize", 0);
+ result->append("totalSize", 0);
result->append("nindexes", 0);
result->appendNumber("totalIndexSize", 0);
result->append("indexDetails", BSONObj());
@@ -80,9 +81,9 @@ Status appendCollectionStorageStats(OperationContext* opCtx,
result->append("avgObjSize", collection->averageObjectSize(opCtx));
RecordStore* recordStore = collection->getRecordStore();
- result->appendNumber(
- "storageSize",
- static_cast<long long>(recordStore->storageSize(opCtx, result, verbose ? 1 : 0)) / scale);
+ auto storageSize =
+ static_cast<long long>(recordStore->storageSize(opCtx, result, verbose ? 1 : 0));
+ result->appendNumber("storageSize", storageSize / scale);
recordStore->appendCustomStats(opCtx, result, scale);
@@ -117,6 +118,7 @@ Status appendCollectionStorageStats(OperationContext* opCtx,
long long indexSize = collection->getIndexSize(opCtx, &indexSizes, scale);
result->appendNumber("totalIndexSize", indexSize / scale);
+ result->appendNumber("totalSize", (storageSize + indexSize) / scale);
result->append("indexSizes", indexSizes.obj());
result->append("scaleFactor", scale);
diff --git a/src/mongo/s/commands/cluster_coll_stats_cmd.cpp b/src/mongo/s/commands/cluster_coll_stats_cmd.cpp
index c9afc8df754..8389409d6ba 100644
--- a/src/mongo/s/commands/cluster_coll_stats_cmd.cpp
+++ b/src/mongo/s/commands/cluster_coll_stats_cmd.cpp
@@ -138,7 +138,7 @@ public:
result.append(e);
} else if (fieldIsAnyOf(
fieldName,
- {"count", "size", "storageSize", "numExtents", "totalIndexSize"})) {
+ {"count", "size", "storageSize", "totalIndexSize", "totalSize"})) {
counts[e.fieldName()] += e.numberLong();
} else if (fieldName == "avgObjSize") {
const auto shardAvgObjSize = e.numberLong();
diff --git a/src/mongo/s/commands/cluster_db_stats_cmd.cpp b/src/mongo/s/commands/cluster_db_stats_cmd.cpp
index 752cca26976..d7d31e5fd55 100644
--- a/src/mongo/s/commands/cluster_db_stats_cmd.cpp
+++ b/src/mongo/s/commands/cluster_db_stats_cmd.cpp
@@ -46,7 +46,7 @@ void aggregateResults(int scale,
long long unscaledDataSize = 0;
long long dataSize = 0;
long long storageSize = 0;
- long long numExtents = 0;
+ long long totalSize = 0;
long long indexes = 0;
long long indexSize = 0;
long long fileSize = 0;
@@ -59,7 +59,7 @@ void aggregateResults(int scale,
unscaledDataSize += b["avgObjSize"].numberLong() * b["objects"].numberLong();
dataSize += b["dataSize"].numberLong();
storageSize += b["storageSize"].numberLong();
- numExtents += b["numExtents"].numberLong();
+ totalSize += b["totalSize"].numberLong();
indexes += b["indexes"].numberLong();
indexSize += b["indexSize"].numberLong();
fileSize += b["fileSize"].numberLong();
@@ -73,7 +73,7 @@ void aggregateResults(int scale,
output.append("avgObjSize", objects == 0 ? 0 : double(unscaledDataSize) / double(objects));
output.appendNumber("dataSize", dataSize);
output.appendNumber("storageSize", storageSize);
- output.appendNumber("numExtents", numExtents);
+ output.appendNumber("totalSize", totalSize);
output.appendNumber("indexes", indexes);
output.appendNumber("indexSize", indexSize);
output.appendNumber("scaleFactor", scale);