diff options
author | Eliot Horowitz <eliot@10gen.com> | 2014-04-18 14:07:49 -0400 |
---|---|---|
committer | Eliot Horowitz <eliot@10gen.com> | 2014-04-18 23:53:14 -0400 |
commit | 1442068ea37842032e170da777ffbbc21a013ddb (patch) | |
tree | f8e404ac9cc0e23a340e9bfb93cdde65a1775887 /src/mongo | |
parent | c0344ec333e6100c5cd6823aa0d6f5960d45d4aa (diff) | |
download | mongo-1442068ea37842032e170da777ffbbc21a013ddb.tar.gz |
SERVER-13638: record stores don't call DiskLoc::writing
Diffstat (limited to 'src/mongo')
-rw-r--r-- | src/mongo/db/catalog/index_catalog_entry.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/storage/data_file.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/storage/extent_manager.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/structure/catalog/namespace_details.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/structure/record_store_v1_capped.cpp | 46 | ||||
-rw-r--r-- | src/mongo/db/structure/record_store_v1_simple.cpp | 8 |
6 files changed, 32 insertions, 32 deletions
diff --git a/src/mongo/db/catalog/index_catalog_entry.cpp b/src/mongo/db/catalog/index_catalog_entry.cpp index f55171f34c3..3e8bd174c7c 100644 --- a/src/mongo/db/catalog/index_catalog_entry.cpp +++ b/src/mongo/db/catalog/index_catalog_entry.cpp @@ -112,7 +112,7 @@ namespace mongo { NamespaceDetails* nsd = _collection->detailsWritable(); int idxNo = _indexNo(); IndexDetails& id = nsd->idx( idxNo ); - id.head.writing() = newHead; + getDur().writingDiskLoc(id.head) = newHead; _head = newHead; } diff --git a/src/mongo/db/storage/data_file.cpp b/src/mongo/db/storage/data_file.cpp index e365ae6bdcd..3d12a9907ec 100644 --- a/src/mongo/db/storage/data_file.cpp +++ b/src/mongo/db/storage/data_file.cpp @@ -166,7 +166,7 @@ namespace mongo { int offset = header()->unused.getOfs(); DataFileHeader *h = header(); - h->unused.writing().set( fileNo, offset + size ); + getDur().writingDiskLoc(h->unused).set( fileNo, offset + size ); getDur().writingInt(h->unusedLength) = h->unusedLength - size; return DiskLoc( fileNo, offset ); diff --git a/src/mongo/db/storage/extent_manager.cpp b/src/mongo/db/storage/extent_manager.cpp index 77be029d862..ff4be63633b 100644 --- a/src/mongo/db/storage/extent_manager.cpp +++ b/src/mongo/db/storage/extent_manager.cpp @@ -464,9 +464,9 @@ namespace mongo { // remove from the free list if ( !best->xprev.isNull() ) - getExtent( best->xprev )->xnext.writing() = best->xnext; + getDur().writingDiskLoc(getExtent( best->xprev )->xnext) = best->xnext; if ( !best->xnext.isNull() ) - getExtent( best->xnext )->xprev.writing() = best->xprev; + getDur().writingDiskLoc(getExtent( best->xnext )->xprev) = best->xprev; if ( _getFreeListStart() == best->myLoc ) _setFreeListStart( best->xnext ); if ( _getFreeListEnd() == best->myLoc ) diff --git a/src/mongo/db/structure/catalog/namespace_details.cpp b/src/mongo/db/structure/catalog/namespace_details.cpp index 401496d6e46..4160acd5fba 100644 --- a/src/mongo/db/structure/catalog/namespace_details.cpp +++ b/src/mongo/db/structure/catalog/namespace_details.cpp @@ -480,7 +480,7 @@ namespace mongo { void NamespaceDetails::orphanDeletedList() { for( int i = 0; i < Buckets; i++ ) { - _deletedList[i].writing().Null(); + getDur().writingDiskLoc(_deletedList[i]).Null(); } } diff --git a/src/mongo/db/structure/record_store_v1_capped.cpp b/src/mongo/db/structure/record_store_v1_capped.cpp index 75f513a2872..d93bd531dc8 100644 --- a/src/mongo/db/structure/record_store_v1_capped.cpp +++ b/src/mongo/db/structure/record_store_v1_capped.cpp @@ -135,7 +135,7 @@ namespace mongo { advanceCapExtent( _ns ); if ( _details->capExtent() != _details->firstExtent() ) - _details->capFirstNewRecord().writing().setInvalid(); + getDur().writingDiskLoc(_details->capFirstNewRecord()).setInvalid(); // else signal done with first iteration through extents. continue; } @@ -212,11 +212,11 @@ namespace mongo { Status CappedRecordStoreV1::truncate() { fassert( 17439, _details->getTotalIndexCount() == 0 ); - cappedLastDelRecLastExtent().writing() = DiskLoc(); - cappedListOfAllDeletedRecords().writing() = DiskLoc(); + getDur().writingDiskLoc(cappedLastDelRecLastExtent()) = DiskLoc(); + getDur().writingDiskLoc(cappedListOfAllDeletedRecords()) = DiskLoc(); // preserve firstExtent/lastExtent - _details->capExtent().writing() = _details->firstExtent(); + getDur().writingDiskLoc(_details->capExtent()) = _details->firstExtent(); _details->setStats( 0, 0 ); // lastExtentSize preserve // nIndexes preserve 0 @@ -224,9 +224,9 @@ namespace mongo { // max preserve _details->setPaddingFactor( 1.0 ); _details->clearSystemFlags(); - _details->capFirstNewRecord().writing() = DiskLoc(); - _details->capFirstNewRecord().writing().setInvalid(); - cappedLastDelRecLastExtent().writing().setInvalid(); + getDur().writingDiskLoc(_details->capFirstNewRecord()) = DiskLoc(); + getDur().writingDiskLoc(_details->capFirstNewRecord()).setInvalid(); + getDur().writingDiskLoc(cappedLastDelRecLastExtent()).setInvalid(); // dataFileVersion preserve // indexFileVersion preserve for ( int i = 0; i < NamespaceDetails::NIndexesMax; i++ ) @@ -240,8 +240,8 @@ namespace mongo { DiskLoc prev = _extentManager->getExtent(ext)->xprev; DiskLoc next = _extentManager->getExtent(ext)->xnext; DiskLoc empty = _extentManager->getExtent(ext)->reuse( _ns, true ); - _extentManager->getExtent(ext)->xprev.writing() = prev; - _extentManager->getExtent(ext)->xnext.writing() = next; + getDur().writingDiskLoc(_extentManager->getExtent(ext)->xprev) = prev; + getDur().writingDiskLoc(_extentManager->getExtent(ext)->xnext) = next; addDeletedRec( empty ); } @@ -316,7 +316,7 @@ namespace mongo { // migrate old NamespaceDetails format if ( _details->capExtent().a() == 0 && _details->capExtent().getOfs() == 0 ) { //capFirstNewRecord = DiskLoc(); - _details->capFirstNewRecord().writing().setInvalid(); + getDur().writingDiskLoc(_details->capFirstNewRecord()).setInvalid(); // put all the DeletedRecords in cappedListOfAllDeletedRecords() for ( int i = 1; i < Buckets; ++i ) { DiskLoc first = _details->deletedListEntry( i ); @@ -324,14 +324,14 @@ namespace mongo { continue; DiskLoc last = first; for (; !drec(last)->nextDeleted().isNull(); last = drec(last)->nextDeleted() ); - drec(last)->nextDeleted().writing() = cappedListOfAllDeletedRecords(); - cappedListOfAllDeletedRecords().writing() = first; - _details->deletedListEntry(i).writing() = DiskLoc(); + getDur().writingDiskLoc(drec(last)->nextDeleted()) = cappedListOfAllDeletedRecords(); + getDur().writingDiskLoc(cappedListOfAllDeletedRecords()) = first; + getDur().writingDiskLoc(_details->deletedListEntry(i)) = DiskLoc(); } // NOTE cappedLastDelRecLastExtent() set to DiskLoc() in above // Last, in case we're killed before getting here - _details->capExtent().writing() = _details->firstExtent(); + getDur().writingDiskLoc(_details->capExtent()) = _details->firstExtent(); } } @@ -394,10 +394,10 @@ namespace mongo { /* unlink ourself from the deleted list */ if ( !ret.isNull() ) { if ( prev.isNull() ) - cappedListOfAllDeletedRecords().writing() = drec(ret)->nextDeleted(); + getDur().writingDiskLoc(cappedListOfAllDeletedRecords()) = drec(ret)->nextDeleted(); else - drec(prev)->nextDeleted().writing() = drec(ret)->nextDeleted(); - drec(ret)->nextDeleted().writing().setInvalid(); // defensive. + getDur().writingDiskLoc(drec(prev)->nextDeleted()) = drec(ret)->nextDeleted(); + getDur().writingDiskLoc(drec(ret)->nextDeleted()).setInvalid(); // defensive. invariant( drec(ret)->extentOfs() < ret.getOfs() ); } @@ -409,7 +409,7 @@ namespace mongo { // Only one extent of the collection is in use, so there // is no deleted record in a previous extent, so nullify // cappedLastDelRecLastExtent(). - cappedLastDelRecLastExtent().writing() = DiskLoc(); + getDur().writingDiskLoc(cappedLastDelRecLastExtent()) = DiskLoc(); } else { // Scan through all deleted records in the collection @@ -426,7 +426,7 @@ namespace mongo { // record. (We expect that there will be deleted records in the new // capExtent as well.) invariant( !drec(i)->nextDeleted().isNull() ); - cappedLastDelRecLastExtent().writing() = i; + getDur().writingDiskLoc(cappedLastDelRecLastExtent()) = i; } } @@ -480,7 +480,7 @@ namespace mongo { // NOTE Because we didn't delete the last document, and // capLooped() is false, capExtent is not the first extent // so xprev will be nonnull. - _details->capExtent().writing() = theCapExtent()->xprev; + getDur().writingDiskLoc(_details->capExtent()) = theCapExtent()->xprev; theCapExtent()->assertOk(); // update cappedLastDelRecLastExtent() @@ -513,12 +513,12 @@ namespace mongo { _extentManager->getExtent(newCapExtent)->assertOk(); } while ( _extentManager->getExtent(newCapExtent)->firstRecord.isNull() ); - _details->capExtent().writing() = newCapExtent; + getDur().writingDiskLoc(_details->capExtent()) = newCapExtent; // Place all documents in the new capExtent on the fresh side // of the capExtent by setting capFirstNewRecord to the first // document in the new capExtent. - _details->capFirstNewRecord().writing() = theCapExtent()->firstRecord; + getDur().writingDiskLoc(_details->capFirstNewRecord()) = theCapExtent()->firstRecord; // update cappedLastDelRecLastExtent() cappedTruncateLastDelUpdate(); @@ -563,7 +563,7 @@ namespace mongo { DiskLoc i = cappedListOfAllDeletedRecords(); for (; !drec(i)->nextDeleted().isNull(); i = drec(i)->nextDeleted() ) ; - drec(i)->nextDeleted().writing() = dloc; + getDur().writingDiskLoc(drec(i)->nextDeleted()) = dloc; } } else { diff --git a/src/mongo/db/structure/record_store_v1_simple.cpp b/src/mongo/db/structure/record_store_v1_simple.cpp index 05a0686cc37..ce863d88894 100644 --- a/src/mongo/db/structure/record_store_v1_simple.cpp +++ b/src/mongo/db/structure/record_store_v1_simple.cpp @@ -157,7 +157,7 @@ namespace mongo { // unlink ourself from the deleted list DeletedRecord *bmr = drec(bestmatch); *getDur().writing(bestprev) = bmr->nextDeleted(); - bmr->nextDeleted().writing().setInvalid(); // defensive. + getDur().writingDiskLoc(bmr->nextDeleted()).setInvalid(); // defensive. invariant(bmr->extentOfs() < bestmatch.getOfs()); freelistIterations.increment( 1 + chain ); @@ -399,7 +399,7 @@ namespace mongo { bool stopping = false; RARELY stopping = *killCurrentOp.checkForInterruptNoAssert() != 0; if( stopping || getDur().isCommitNeeded() ) { - e->firstRecord.writing() = L; + getDur().writingDiskLoc(e->firstRecord) = L; Record *r = recordFor(L); getDur().writingInt(r->prevOfs()) = DiskLoc::NullOfs; getDur().commitIfNeeded(); @@ -411,8 +411,8 @@ namespace mongo { invariant( _details->firstExtent() == diskloc ); invariant( _details->lastExtent() != diskloc ); DiskLoc newFirst = e->xnext; - _details->firstExtent().writing() = newFirst; - _extentManager->getExtent( newFirst )->xprev.writing().Null(); + getDur().writingDiskLoc(_details->firstExtent()) = newFirst; + getDur().writingDiskLoc(_extentManager->getExtent( newFirst )->xprev).Null(); getDur().writing(e)->markEmpty(); _extentManager->freeExtents( diskloc, diskloc ); |