After dropping capped collection of certain size, I would expect recreating it to reuse the space but dropping a 5GB capped collection and then recreating it always allocates two new physical 2GB db.x files.
> db.stats(1024*1024) { "db" : "cap", "collections" : 9, "objects" : 8732496, "avgObjSize" : 203.08234896414496, "dataSize" : 1691, "storageSize" : 5130, "numExtents" : 12, "indexes" : 19, "indexSize" : 1947, "fileSize" : 10299, "nsSizeMB" : 16, "dataFileVersion" : { "major" : 4, "minor" : 5 }, "ok" : 1 } > db.sms_message_event.stats(1024*1024) { "ns" : "cap.sms_message_event", "count" : 0, "size" : 0, "storageSize" : 5120, "numExtents" : 4, "nindexes" : 1, "lastExtentSize" : 0, "paddingFactor" : 1, "systemFlags" : 1, "userFlags" : 0, "totalIndexSize" : 0, "indexSizes" : { "_id_" : 0 }, "capped" : true, "max" : NumberLong("9223372036854775807"), "ok" : 1 } > db.sms_message_event.drop() true cap@local(2.4.2-rc0) > db.stats(1024*1024) { "db" : "cap", "collections" : 8, "objects" : 83, "avgObjSize" : 58.795180722891565, "dataSize" : 0, "storageSize" : 10, "numExtents" : 8, "indexes" : 13, "indexSize" : 0, "fileSize" : 12346, "nsSizeMB" : 16, "dataFileVersion" : { "major" : 4, "minor" : 5 }, "ok" : 1 } cap@local(2.4.2-rc0) > db.createCollection("sms_message_event",{capped:true, size:5*1024*1024*1024}) { "ok" : 1 } cap@local(2.4.2-rc0) > db.stats(1024*1024) { "db" : "cap", "collections" : 9, "objects" : 86, "avgObjSize" : 59.395348837209305, "dataSize" : 0, "storageSize" : 5130, "numExtents" : 12, "indexes" : 14, "indexSize" : 0, "fileSize" : 16440, "nsSizeMB" : 16, "dataFileVersion" : { "major" : 4, "minor" : 5 }, "ok" : 1 }
Looking in my /data/db after each new drop followed by create I have a new file for that DB:
asyasmacbook:db asya13$ ls -lhu cap* -rw------- 1 asya13 staff 64M Apr 27 10:16 cap.0 -rw------- 1 asya13 staff 2.0G Apr 27 10:16 cap.1 -rw------- 1 asya13 staff 2.0G Apr 27 10:09 cap.2 -rw------- 1 asya13 staff 2.0G Apr 27 10:09 cap.3 -rw------- 1 asya13 staff 2.0G Apr 27 10:09 cap.4 -rw------- 1 asya13 staff 2.0G Apr 27 10:09 cap.5 -rw------- 1 asya13 staff 2.0G Apr 27 10:09 cap.6 -rw------- 1 asya13 staff 16M Apr 27 10:16 cap.ns asyasmacbook:db asya13$ ls -lhu cap* -rw------- 1 asya13 staff 64M Apr 27 10:16 cap.0 -rw------- 1 asya13 staff 2.0G Apr 27 10:16 cap.1 -rw------- 1 asya13 staff 2.0G Apr 27 10:09 cap.2 -rw------- 1 asya13 staff 2.0G Apr 27 10:09 cap.3 -rw------- 1 asya13 staff 2.0G Apr 27 10:09 cap.4 -rw------- 1 asya13 staff 2.0G Apr 27 10:09 cap.5 -rw------- 1 asya13 staff 2.0G Apr 27 10:09 cap.6 -rw------- 1 asya13 staff 2.0G Apr 27 10:16 cap.7 -rw------- 1 asya13 staff 16M Apr 27 10:16 cap.ns asyasmacbook:db asya13$ ls -lhu cap* -rw------- 1 asya13 staff 64M Apr 27 10:22 cap.0 -rw------- 1 asya13 staff 2.0G Apr 27 10:16 cap.1 -rw------- 1 asya13 staff 2.0G Apr 27 10:09 cap.2 -rw------- 1 asya13 staff 2.0G Apr 27 10:16 cap.3 -rw------- 1 asya13 staff 2.0G Apr 27 10:09 cap.4 -rw------- 1 asya13 staff 2.0G Apr 27 10:22 cap.5 -rw------- 1 asya13 staff 2.0G Apr 27 10:16 cap.6 -rw------- 1 asya13 staff 2.0G Apr 27 10:16 cap.7 -rw------- 1 asya13 staff 2.0G Apr 27 10:16 cap.8 -rw------- 1 asya13 staff 16M Apr 27 10:22 cap.ns
Here is a repeat showing two more files and times of creation to the second:
asyasmacbook:db asya13$ ls -ltrhUT cap* -rw------- 1 asya13 staff 16M Apr 27 08:45:19 2013 cap.ns -rw------- 1 asya13 staff 64M Apr 27 08:45:19 2013 cap.0 -rw------- 1 asya13 staff 2.0G Apr 27 09:02:42 2013 cap.1 -rw------- 1 asya13 staff 2.0G Apr 27 09:02:48 2013 cap.2 -rw------- 1 asya13 staff 2.0G Apr 27 09:02:54 2013 cap.3 -rw------- 1 asya13 staff 2.0G Apr 27 09:39:48 2013 cap.4 -rw------- 1 asya13 staff 2.0G Apr 27 09:39:54 2013 cap.5 -rw------- 1 asya13 staff 2.0G Apr 27 10:08:57 2013 cap.6 -rw------- 1 asya13 staff 2.0G Apr 27 10:16:22 2013 cap.7 -rw------- 1 asya13 staff 2.0G Apr 27 10:16:27 2013 cap.8 -rw------- 1 asya13 staff 2.0G Apr 27 10:25:11 2013 cap.9 -rw------- 1 asya13 staff 2.0G Apr 27 10:25:16 2013 cap.10
- related to
-
SERVER-6954 FlushViewOfFile with error 487 when trying to do repair database and recreate capped collection several times
- Closed