JRuby – the watershed for enterprise Ruby?
Aug 09

I want to verify that the data is what I expect across two systems for binaries. Here’s some sanity check examples:

1) Verify fs.files object count:

mongofiles -d cms list | wc -l

Example output:

connected to: 127.0.0.1
3700

(should be > 3000)
2) Verify Meta data:

> db.fs.files.stats();

Example output:
{
	"ns" : "cms.fs.files",
	"count" : 3700,
	"size" : 899348,
	"storageSize" : 1196800,
	"numExtents" : 4,
	"nindexes" : 3,
	"lastExtentSize" : 901120,
	"paddingFactor" : 1,
	"flags" : 1,
	"totalIndexSize" : 966656,
	"indexSizes" : {
		"_id_" : 163840,
		"filename_1_uploadDate_-1" : 425984,
		"filename_1" : 376832
	},
	"ok" : 1
}

Should be same as mongofiles -d cms list | wc -l

3) Verify Binary data:

> db.fs.chunks.stats();

Example output:
{
	"ns" : "cms.fs.chunks",
	"count" : 13009,
	"size" : 2878929012,
	"storageSize" : 3436553216,
	"numExtents" : 28,
	"nindexes" : 2,
	"lastExtentSize" : 576252672,
	"paddingFactor" : 1,
	"flags" : 1,
	"totalIndexSize" : 1122304,
	"indexSizes" : {
		"_id_" : 548864,
		"files_id_1_n_1" : 573440
	},
	"ok" : 1
}

size should be > 2,500,000,000 (2.5 GB)

4) Save a binary from Mongo:

a) pick a file from list

mongofiles -d cms list

b) restore it to /tmp/

mongofiles -d cms get 'carouselimages/4bc24ba5fa7e1c75b10000d5/image/tradeshow_placeholder.jpg' -l /tmp/tradeshow_placeholder.jpg

View file.

Leave a Reply