diff options
author | Mathias Stearn <mathias@10gen.com> | 2014-04-23 14:01:44 -0400 |
---|---|---|
committer | Mathias Stearn <mathias@10gen.com> | 2014-04-23 19:33:18 -0400 |
commit | 7f8f4b7d140639b00b59047e600c9c793da3a3de (patch) | |
tree | 57b547813367321895597d2279cbb475aa900b9c | |
parent | 6da81951c0b49c728267b1804f97613e1245aca1 (diff) | |
download | mongo-7f8f4b7d140639b00b59047e600c9c793da3a3de.tar.gz |
SERVER-13633 Kill DiskLoc::ext()
-rw-r--r-- | src/mongo/db/diskloc.h | 1 | ||||
-rw-r--r-- | src/mongo/db/storage/record.cpp | 5 | ||||
-rw-r--r-- | src/mongo/dbtests/namespacetests.cpp | 20 | ||||
-rw-r--r-- | src/mongo/dbtests/query_stage_collscan.cpp | 13 |
4 files changed, 22 insertions, 17 deletions
diff --git a/src/mongo/db/diskloc.h b/src/mongo/db/diskloc.h index 97682534a8d..10d4720862b 100644 --- a/src/mongo/db/diskloc.h +++ b/src/mongo/db/diskloc.h @@ -168,7 +168,6 @@ namespace mongo { */ BSONObj obj() const; // TODO(ERH): remove Record* rec() const; // TODO(ERH): remove - Extent* ext() const; // TODO(ERH): remove template< class V > const BtreeBucket<V> * btree() const; // TODO(ERH): remove diff --git a/src/mongo/db/storage/record.cpp b/src/mongo/db/storage/record.cpp index 85df3a29e15..a4e9dea109d 100644 --- a/src/mongo/db/storage/record.cpp +++ b/src/mongo/db/storage/record.cpp @@ -529,11 +529,6 @@ namespace mongo { return cc().getContext()->db()->getExtentManager().recordForV1( *this ); } - Extent* DiskLoc::ext() const { - verify( a() != -1 ); - return cc().getContext()->db()->getExtentManager().getExtent(*this); - } - BSONObj DiskLoc::obj() const { return BSONObj( rec()->accessed()->data() ); } diff --git a/src/mongo/dbtests/namespacetests.cpp b/src/mongo/dbtests/namespacetests.cpp index 72cea76576b..67ed9876e1a 100644 --- a/src/mongo/dbtests/namespacetests.cpp +++ b/src/mongo/dbtests/namespacetests.cpp @@ -144,12 +144,16 @@ namespace NamespaceTests { } int nRecords() const { int count = 0; - for ( DiskLoc i = nsd()->firstExtent(); !i.isNull(); i = i.ext()->xnext ) { - int fileNo = i.ext()->firstRecord.a(); + const Extent* ext; + for ( DiskLoc extLoc = nsd()->firstExtent(); + !extLoc.isNull(); + extLoc = ext->xnext) { + ext = extentManager().getExtent(extLoc); + int fileNo = ext->firstRecord.a(); if ( fileNo == -1 ) continue; - for ( int j = i.ext()->firstRecord.getOfs(); j != DiskLoc::NullOfs; - j = DiskLoc( fileNo, j ).rec()->nextOfs() ) { + for ( int recOfs = ext->firstRecord.getOfs(); recOfs != DiskLoc::NullOfs; + recOfs = DiskLoc( fileNo, recOfs ).rec()->nextOfs() ) { ++count; } } @@ -158,8 +162,11 @@ namespace NamespaceTests { } int nExtents() const { int count = 0; - for ( DiskLoc i = nsd()->firstExtent(); !i.isNull(); i = i.ext()->xnext ) + for ( DiskLoc extLoc = nsd()->firstExtent(); + !extLoc.isNull(); + extLoc = extentManager().getExtent(extLoc)->xnext ) { ++count; + } return count; } static int min( int a, int b ) { @@ -187,6 +194,9 @@ namespace NamespaceTests { Database* db() const { return _context.db(); } + const ExtentManager& extentManager() const { + return db()->getExtentManager(); + } Collection* collection() const { return db()->getCollection( ns() ); } diff --git a/src/mongo/dbtests/query_stage_collscan.cpp b/src/mongo/dbtests/query_stage_collscan.cpp index 07f160ae0b6..8a8b9ac419c 100644 --- a/src/mongo/dbtests/query_stage_collscan.cpp +++ b/src/mongo/dbtests/query_stage_collscan.cpp @@ -121,13 +121,13 @@ namespace QueryStageCollectionScan { virtual int nExtents() const = 0; // Quote: bypass standard alloc/insert routines to use the extent we want. - static DiskLoc insert( const DiskLoc& ext, int i ) { + DiskLoc insert( const DiskLoc& ext, int i ) { // Copied verbatim. BSONObjBuilder b; b.append( "a", i ); BSONObj o = b.done(); int len = o.objsize(); - Extent *e = ext.ext(); + Extent *e = extentManager().getExtent(ext); e = getDur().writing(e); int ofs; if ( e->lastRecord.isNull() ) @@ -153,6 +153,7 @@ namespace QueryStageCollectionScan { static const char *ns() { return "unittests.QueryStageCollectionScanCapped"; } Database* db() { return _context.db(); } + ExtentManager& extentManager() { return db()->getExtentManager(); } Collection* collection() { return db()->getCollection( ns() ); } NamespaceDetails *nsd() { return collection()->detailsWritable(); } @@ -245,7 +246,7 @@ namespace QueryStageCollectionScan { class QueryStageCollscanMidExtent : public QueryStageCollectionScanCappedBase { virtual void insertTestData() { - nsd()->capExtent().writing() = nsd()->firstExtent().ext()->xnext; + nsd()->capExtent().writing() = extentManager().getExtent(nsd()->firstExtent())->xnext; insert( nsd()->capExtent(), 0 ); insert( nsd()->lastExtent(), 1 ); insert( nsd()->firstExtent(), 2 ); @@ -258,7 +259,7 @@ namespace QueryStageCollectionScan { class QueryStageCollscanAloneInExtent : public QueryStageCollectionScanCappedBase { virtual void insertTestData() { - nsd()->capExtent().writing() = nsd()->firstExtent().ext()->xnext; + nsd()->capExtent().writing() = extentManager().getExtent(nsd()->firstExtent())->xnext; insert( nsd()->lastExtent(), 0 ); insert( nsd()->firstExtent(), 1 ); nsd()->setCapFirstNewRecord( insert( nsd()->capExtent(), 2 ) ); @@ -269,7 +270,7 @@ namespace QueryStageCollectionScan { class QueryStageCollscanFirstInExtent : public QueryStageCollectionScanCappedBase { virtual void insertTestData() { - nsd()->capExtent().writing() = nsd()->firstExtent().ext()->xnext; + nsd()->capExtent().writing() = extentManager().getExtent(nsd()->firstExtent())->xnext; insert( nsd()->lastExtent(), 0 ); insert( nsd()->firstExtent(), 1 ); nsd()->setCapFirstNewRecord( insert( nsd()->capExtent(), 2 ) ); @@ -281,7 +282,7 @@ namespace QueryStageCollectionScan { class QueryStageCollscanLastInExtent : public QueryStageCollectionScanCappedBase { virtual void insertTestData() { - nsd()->capExtent().writing() = nsd()->firstExtent().ext()->xnext; + nsd()->capExtent().writing() = extentManager().getExtent(nsd()->firstExtent())->xnext; insert( nsd()->capExtent(), 0 ); insert( nsd()->lastExtent(), 1 ); insert( nsd()->firstExtent(), 2 ); |