[SERVER-16530] db.collection.validate({full:true}) should have mmapv1 related stats under mmapv1 to be consistent with WT Created: 12/Dec/14  Updated: 24/Jan/15  Resolved: 15/Dec/14

Status: Closed
Project: Core Server
Component/s: Diagnostics, Storage
Affects Version/s: 2.8.0-rc2
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Jalpa Trivedi (Inactive) Assignee: Matt Kangas
Resolution: Won't Fix Votes: 0
Labels: 28qa
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
Backwards Compatibility: Major Change
Participants:

 Description   

db.collection.validate(

{full:true}

) results have wiredtiger specific stats mentioned under "wiredTiger" in the resulted document. mmapv1 specific stats probably should follow the same format for consistency.

stats for 2.8 WT:

 
{
	"ns" : "test.foo",
	"nrecords" : 0,
	"wiredTiger" : {
		"uri" : "statistics:table:collection-2--967935493900454154",
		"LSM" : {
			"bloom filters in the LSM tree" : 0,
			"bloom filter false positives" : 0,
			"bloom filter hits" : 0,
			"bloom filter misses" : 0,
			"bloom filter pages evicted from cache" : 0,
			"bloom filter pages read into cache" : 0,
			"total size of bloom filters" : 0,
			"sleep for LSM checkpoint throttle" : 0,
			"chunks in the LSM tree" : 0,
			"highest merge generation in the LSM tree" : 0,
			"queries that could have benefited from a Bloom filter that did not exist" : 0,
			"sleep for LSM merge throttle" : 0
		},
		"block-manager" : {
			"file allocation unit size" : 4096,
			"blocks allocated" : 0,
			"checkpoint size" : 0,
			"allocations requiring file extension" : 0,
			"blocks freed" : 0,
			"file magic number" : 120897,
			"file major version number" : 1,
			"minor version number" : 0,
			"file bytes available for reuse" : 0,
			"file size in bytes" : 4096
		},
		"btree" : {
			"column-store variable-size deleted values" : 0,
			"column-store fixed-size leaf pages" : 0,
			"column-store internal pages" : 0,
			"column-store variable-size leaf pages" : 0,
			"pages rewritten by compaction" : 0,
			"number of key/value pairs" : 0,
			"fixed-record size" : 0,
			"maximum tree depth" : 0,
			"maximum internal page item size" : 384,
			"maximum internal page size" : 4096,
			"maximum leaf page item size" : 3072,
			"maximum leaf page size" : 32768,
			"overflow pages" : 0,
			"row-store internal pages" : 0,
			"row-store leaf pages" : 0
		},
		"cache" : {
			"bytes read into cache" : 0,
			"bytes written from cache" : 0,
			"checkpoint blocked page eviction" : 0,
			"unmodified pages evicted" : 0,
			"modified pages evicted" : 0,
			"data source pages selected for eviction unable to be evicted" : 0,
			"hazard pointer blocked page eviction" : 0,
			"internal pages evicted" : 0,
			"in-memory page splits" : 0,
			"overflow values cached in memory" : 0,
			"pages read into cache" : 0,
			"overflow pages read into cache" : 0,
			"pages written from cache" : 0
		},
		"compression" : {
			"raw compression call failed, no additional data available" : 0,
			"raw compression call failed, additional data available" : 0,
			"raw compression call succeeded" : 0,
			"compressed pages read" : 0,
			"compressed pages written" : 0,
			"page written failed to compress" : 0,
			"page written was too small to compress" : 0
		},
		"cursor" : {
			"create calls" : 1,
			"insert calls" : 0,
			"bulk-loaded cursor-insert calls" : 0,
			"cursor-insert key and value bytes inserted" : 0,
			"next calls" : 1,
			"prev calls" : 1,
			"remove calls" : 0,
			"cursor-remove key bytes removed" : 0,
			"reset calls" : 1,
			"search calls" : 0,
			"search near calls" : 0,
			"update calls" : 0,
			"cursor-update value bytes updated" : 0
		},
		"reconciliation" : {
			"dictionary matches" : 0,
			"internal page multi-block writes" : 0,
			"leaf page multi-block writes" : 0,
			"maximum blocks required for a page" : 0,
			"internal-page overflow keys" : 0,
			"leaf-page overflow keys" : 0,
			"overflow values written" : 0,
			"pages deleted" : 0,
			"page checksum matches" : 0,
			"page reconciliation calls" : 0,
			"page reconciliation calls for eviction" : 0,
			"leaf page key bytes discarded using prefix compression" : 0,
			"internal page key bytes discarded using suffix compression" : 0
		},
		"session" : {
			"object compaction" : 0,
			"open cursor count" : 1
		},
		"transaction" : {
			"update conflicts" : 0
		}
	},
	"nIndexes" : 1,
	"keysPerIndex" : {
		"test.foo.$_id_" : 0
	},
	"valid" : true,
	"errors" : [ ],
	"warning" : "Some checks omitted for speed. use {full:true} option to do more thorough scan.",
	"ok" : 1
}
 

  • In 2.8 mmapv1:

{
	"ns" : "test.foo",
	"datasize" : 0,
	"nrecords" : 0,
	"lastExtentSize" : 8192,
	"firstExtent" : "0:6000 ns:test.foo",
	"lastExtent" : "0:6000 ns:test.foo",
	"extentCount" : 1,
	"firstExtentDetails" : {
		"loc" : "0:6000",
		"xnext" : "null",
		"xprev" : "null",
		"nsdiag" : "test.foo",
		"size" : 8192,
		"firstRecord" : "null",
		"lastRecord" : "null"
	},
	"deletedCount" : 1,
	"deletedSize" : 8016,
	"nIndexes" : 1,
	"keysPerIndex" : {
		"test.foo.$_id_" : 0
	},
	"valid" : true,
	"errors" : [ ],
	"warning" : "Some checks omitted for speed. use {full:true} option to do more thorough scan.",
	"ok" : 1
}

For ex. extent related stats could be bundled up under "mmapv1" in the resulted document.



 Comments   
Comment by Scott Hernandez (Inactive) [ 12/Dec/14 ]

Things like this are big breaking changes for anyone using these and major problem for scripts/monitoring.

Generated at Thu Feb 08 03:41:21 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.