summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathias Stearn <mathias@10gen.com>2014-04-23 14:01:44 -0400
committerMathias Stearn <mathias@10gen.com>2014-04-23 19:33:18 -0400
commit7f8f4b7d140639b00b59047e600c9c793da3a3de (patch)
tree57b547813367321895597d2279cbb475aa900b9c
parent6da81951c0b49c728267b1804f97613e1245aca1 (diff)
downloadmongo-7f8f4b7d140639b00b59047e600c9c793da3a3de.tar.gz
SERVER-13633 Kill DiskLoc::ext()
-rw-r--r--src/mongo/db/diskloc.h1
-rw-r--r--src/mongo/db/storage/record.cpp5
-rw-r--r--src/mongo/dbtests/namespacetests.cpp20
-rw-r--r--src/mongo/dbtests/query_stage_collscan.cpp13
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 );