diff options
Diffstat (limited to 'src/mongo/db/instance.cpp')
-rw-r--r-- | src/mongo/db/instance.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mongo/db/instance.cpp b/src/mongo/db/instance.cpp index e1cd9230d24..70ee99959e4 100644 --- a/src/mongo/db/instance.cpp +++ b/src/mongo/db/instance.cpp @@ -982,13 +982,6 @@ void insertMultiVector(OperationContext* txn, CurOp& op, vector<BSONObj>::iterator begin, vector<BSONObj>::iterator end) { - for (vector<BSONObj>::iterator it = begin; it != end; it++) { - StatusWith<BSONObj> fixed = fixDocumentForInsert(*it); - uassertStatusOK(fixed.getStatus()); - if (!fixed.getValue().isEmpty()) - *it = fixed.getValue(); - } - try { WriteUnitOfWork wunit(txn); Collection* collection = ctx.db()->getCollection(ns); @@ -1025,6 +1018,13 @@ NOINLINE_DECL void insertMulti(OperationContext* txn, int64_t chunkSize = 0; for (vector<BSONObj>::iterator it = docs.begin(); it != docs.end(); it++) { + StatusWith<BSONObj> fixed = fixDocumentForInsert(*it); + uassertStatusOK(fixed.getStatus()); + if (!fixed.getValue().isEmpty()) + *it = fixed.getValue(); + } + + for (vector<BSONObj>::iterator it = docs.begin(); it != docs.end(); it++) { chunkSize += (*it).objsize(); // Limit chunk size, actual size chosen is a tradeoff: larger sizes are more efficient, // but smaller chunk sizes allow yielding to other threads and lower chance of WCEs |