From 8cd3f5b5d4480346cdb20abb6113d182eb8aa656 Mon Sep 17 00:00:00 2001 From: Eliot Horowitz Date: Sun, 21 Feb 2010 10:40:34 -0500 Subject: slightly stupid way to make memory on indexing not so bad for 1.2 SERVER-651 --- db/extsort.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/db/extsort.cpp b/db/extsort.cpp index 751c63e650f..0f317f7a00c 100644 --- a/db/extsort.cpp +++ b/db/extsort.cpp @@ -88,10 +88,20 @@ namespace mongo { _cur = new InMemory(); } - _cur->push_back( pair( o.getOwned() , loc ) ); + BSONObj toadd = o; + if ( toadd.isOwned() ){ + // hack to handle buffer problems + if ( toadd.objsize() < 100 ) + toadd = toadd.copy(); + } + else { + toadd = toadd.getOwned(); + } + + _cur->push_back( pair( o , loc ) ); long size = o.objsize(); - _curSizeSoFar += size + sizeof( DiskLoc ); + _curSizeSoFar += size + sizeof( DiskLoc ) + sizeof( BSONObj ); if ( _curSizeSoFar > _maxFilesize ) finishMap(); -- cgit v1.2.1