summaryrefslogtreecommitdiff
path: root/src/mongo/db/storage/mmap_v1/catalog/namespace_details_rsv1_metadata.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/storage/mmap_v1/catalog/namespace_details_rsv1_metadata.cpp')
-rw-r--r--src/mongo/db/storage/mmap_v1/catalog/namespace_details_rsv1_metadata.cpp258
1 files changed, 127 insertions, 131 deletions
diff --git a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_rsv1_metadata.cpp b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_rsv1_metadata.cpp
index 5c95ec2bbc7..51fc1c1ed75 100644
--- a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_rsv1_metadata.cpp
+++ b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_rsv1_metadata.cpp
@@ -35,169 +35,165 @@
namespace mongo {
- using std::unique_ptr;
- using std::numeric_limits;
+using std::unique_ptr;
+using std::numeric_limits;
- BOOST_STATIC_ASSERT(RecordStoreV1Base::Buckets
- == NamespaceDetails::SmallBuckets + NamespaceDetails::LargeBuckets);
+BOOST_STATIC_ASSERT(RecordStoreV1Base::Buckets ==
+ NamespaceDetails::SmallBuckets + NamespaceDetails::LargeBuckets);
- NamespaceDetailsRSV1MetaData::NamespaceDetailsRSV1MetaData( StringData ns,
- NamespaceDetails* details )
- : _ns( ns.toString() ),
- _details( details ) {
- }
-
- const DiskLoc& NamespaceDetailsRSV1MetaData::capExtent() const {
- return _details->capExtent;
- }
+NamespaceDetailsRSV1MetaData::NamespaceDetailsRSV1MetaData(StringData ns, NamespaceDetails* details)
+ : _ns(ns.toString()), _details(details) {}
- void NamespaceDetailsRSV1MetaData::setCapExtent( OperationContext* txn, const DiskLoc& loc ) {
- *txn->recoveryUnit()->writing( &_details->capExtent ) = loc;
- }
+const DiskLoc& NamespaceDetailsRSV1MetaData::capExtent() const {
+ return _details->capExtent;
+}
- const DiskLoc& NamespaceDetailsRSV1MetaData::capFirstNewRecord() const {
- return _details->capFirstNewRecord;
- }
+void NamespaceDetailsRSV1MetaData::setCapExtent(OperationContext* txn, const DiskLoc& loc) {
+ *txn->recoveryUnit()->writing(&_details->capExtent) = loc;
+}
- void NamespaceDetailsRSV1MetaData::setCapFirstNewRecord( OperationContext* txn,
- const DiskLoc& loc ) {
- *txn->recoveryUnit()->writing( &_details->capFirstNewRecord ) = loc;
- }
+const DiskLoc& NamespaceDetailsRSV1MetaData::capFirstNewRecord() const {
+ return _details->capFirstNewRecord;
+}
- bool NamespaceDetailsRSV1MetaData::capLooped() const {
- return _details->capFirstNewRecord.isValid();
- }
+void NamespaceDetailsRSV1MetaData::setCapFirstNewRecord(OperationContext* txn, const DiskLoc& loc) {
+ *txn->recoveryUnit()->writing(&_details->capFirstNewRecord) = loc;
+}
- long long NamespaceDetailsRSV1MetaData::dataSize() const {
- return _details->stats.datasize;
- }
- long long NamespaceDetailsRSV1MetaData::numRecords() const {
- return _details->stats.nrecords;
- }
+bool NamespaceDetailsRSV1MetaData::capLooped() const {
+ return _details->capFirstNewRecord.isValid();
+}
- void NamespaceDetailsRSV1MetaData::incrementStats( OperationContext* txn,
- long long dataSizeIncrement,
- long long numRecordsIncrement ) {
- // durability todo : this could be a bit annoying / slow to record constantly
- NamespaceDetails::Stats* s = txn->recoveryUnit()->writing( &_details->stats );
- s->datasize += dataSizeIncrement;
- s->nrecords += numRecordsIncrement;
- }
+long long NamespaceDetailsRSV1MetaData::dataSize() const {
+ return _details->stats.datasize;
+}
+long long NamespaceDetailsRSV1MetaData::numRecords() const {
+ return _details->stats.nrecords;
+}
- void NamespaceDetailsRSV1MetaData::setStats( OperationContext* txn,
- long long dataSize,
- long long numRecords ) {
- NamespaceDetails::Stats* s = txn->recoveryUnit()->writing( &_details->stats );
- s->datasize = dataSize;
- s->nrecords = numRecords;
- }
+void NamespaceDetailsRSV1MetaData::incrementStats(OperationContext* txn,
+ long long dataSizeIncrement,
+ long long numRecordsIncrement) {
+ // durability todo : this could be a bit annoying / slow to record constantly
+ NamespaceDetails::Stats* s = txn->recoveryUnit()->writing(&_details->stats);
+ s->datasize += dataSizeIncrement;
+ s->nrecords += numRecordsIncrement;
+}
- DiskLoc NamespaceDetailsRSV1MetaData::deletedListEntry( int bucket ) const {
- invariant(bucket >= 0 && bucket < RecordStoreV1Base::Buckets);
- const DiskLoc head = (bucket < NamespaceDetails::SmallBuckets)
- ? _details->deletedListSmall[bucket]
- : _details->deletedListLarge[bucket - NamespaceDetails::SmallBuckets];
+void NamespaceDetailsRSV1MetaData::setStats(OperationContext* txn,
+ long long dataSize,
+ long long numRecords) {
+ NamespaceDetails::Stats* s = txn->recoveryUnit()->writing(&_details->stats);
+ s->datasize = dataSize;
+ s->nrecords = numRecords;
+}
- if (head == DiskLoc(0,0)) {
- // This will happen the first time we use a "large" bucket since they were previously
- // zero-initialized.
- return DiskLoc();
- }
+DiskLoc NamespaceDetailsRSV1MetaData::deletedListEntry(int bucket) const {
+ invariant(bucket >= 0 && bucket < RecordStoreV1Base::Buckets);
+ const DiskLoc head = (bucket < NamespaceDetails::SmallBuckets)
+ ? _details->deletedListSmall[bucket]
+ : _details->deletedListLarge[bucket - NamespaceDetails::SmallBuckets];
- return head;
+ if (head == DiskLoc(0, 0)) {
+ // This will happen the first time we use a "large" bucket since they were previously
+ // zero-initialized.
+ return DiskLoc();
}
- void NamespaceDetailsRSV1MetaData::setDeletedListEntry( OperationContext* txn,
- int bucket,
- const DiskLoc& loc ) {
- DiskLoc* head = (bucket < NamespaceDetails::SmallBuckets)
- ? &_details->deletedListSmall[bucket]
- : &_details->deletedListLarge[bucket - NamespaceDetails::SmallBuckets];
- *txn->recoveryUnit()->writing( head ) = loc;
- }
+ return head;
+}
- DiskLoc NamespaceDetailsRSV1MetaData::deletedListLegacyGrabBag() const {
- return _details->deletedListLegacyGrabBag;
- }
+void NamespaceDetailsRSV1MetaData::setDeletedListEntry(OperationContext* txn,
+ int bucket,
+ const DiskLoc& loc) {
+ DiskLoc* head = (bucket < NamespaceDetails::SmallBuckets)
+ ? &_details->deletedListSmall[bucket]
+ : &_details->deletedListLarge[bucket - NamespaceDetails::SmallBuckets];
+ *txn->recoveryUnit()->writing(head) = loc;
+}
- void NamespaceDetailsRSV1MetaData::setDeletedListLegacyGrabBag(OperationContext* txn,
- const DiskLoc& loc) {
- *txn->recoveryUnit()->writing(&_details->deletedListLegacyGrabBag) = loc;
- }
+DiskLoc NamespaceDetailsRSV1MetaData::deletedListLegacyGrabBag() const {
+ return _details->deletedListLegacyGrabBag;
+}
- void NamespaceDetailsRSV1MetaData::orphanDeletedList( OperationContext* txn ) {
- for( int i = 0; i < RecordStoreV1Base::Buckets; i++ ) {
- setDeletedListEntry( txn, i, DiskLoc() );
- }
- setDeletedListLegacyGrabBag(txn, DiskLoc());
- }
+void NamespaceDetailsRSV1MetaData::setDeletedListLegacyGrabBag(OperationContext* txn,
+ const DiskLoc& loc) {
+ *txn->recoveryUnit()->writing(&_details->deletedListLegacyGrabBag) = loc;
+}
- const DiskLoc& NamespaceDetailsRSV1MetaData::firstExtent( OperationContext* txn ) const {
- return _details->firstExtent;
+void NamespaceDetailsRSV1MetaData::orphanDeletedList(OperationContext* txn) {
+ for (int i = 0; i < RecordStoreV1Base::Buckets; i++) {
+ setDeletedListEntry(txn, i, DiskLoc());
}
+ setDeletedListLegacyGrabBag(txn, DiskLoc());
+}
- void NamespaceDetailsRSV1MetaData::setFirstExtent( OperationContext* txn, const DiskLoc& loc ) {
- *txn->recoveryUnit()->writing( &_details->firstExtent ) = loc;
- }
+const DiskLoc& NamespaceDetailsRSV1MetaData::firstExtent(OperationContext* txn) const {
+ return _details->firstExtent;
+}
- const DiskLoc& NamespaceDetailsRSV1MetaData::lastExtent( OperationContext* txn ) const {
- return _details->lastExtent;
- }
+void NamespaceDetailsRSV1MetaData::setFirstExtent(OperationContext* txn, const DiskLoc& loc) {
+ *txn->recoveryUnit()->writing(&_details->firstExtent) = loc;
+}
- void NamespaceDetailsRSV1MetaData::setLastExtent( OperationContext* txn, const DiskLoc& loc ) {
- *txn->recoveryUnit()->writing( &_details->lastExtent ) = loc;
- }
+const DiskLoc& NamespaceDetailsRSV1MetaData::lastExtent(OperationContext* txn) const {
+ return _details->lastExtent;
+}
- bool NamespaceDetailsRSV1MetaData::isCapped() const {
- return _details->isCapped;
- }
+void NamespaceDetailsRSV1MetaData::setLastExtent(OperationContext* txn, const DiskLoc& loc) {
+ *txn->recoveryUnit()->writing(&_details->lastExtent) = loc;
+}
- bool NamespaceDetailsRSV1MetaData::isUserFlagSet( int flag ) const {
- return _details->userFlags & flag;
- }
+bool NamespaceDetailsRSV1MetaData::isCapped() const {
+ return _details->isCapped;
+}
- int NamespaceDetailsRSV1MetaData::userFlags() const {
- return _details->userFlags;
- }
+bool NamespaceDetailsRSV1MetaData::isUserFlagSet(int flag) const {
+ return _details->userFlags & flag;
+}
- bool NamespaceDetailsRSV1MetaData::setUserFlag( OperationContext* txn, int flag ) {
- if ( ( _details->userFlags & flag ) == flag )
- return false;
+int NamespaceDetailsRSV1MetaData::userFlags() const {
+ return _details->userFlags;
+}
- txn->recoveryUnit()->writingInt( _details->userFlags) |= flag;
- return true;
- }
+bool NamespaceDetailsRSV1MetaData::setUserFlag(OperationContext* txn, int flag) {
+ if ((_details->userFlags & flag) == flag)
+ return false;
- bool NamespaceDetailsRSV1MetaData::clearUserFlag( OperationContext* txn, int flag ) {
- if ( ( _details->userFlags & flag ) == 0 )
- return false;
+ txn->recoveryUnit()->writingInt(_details->userFlags) |= flag;
+ return true;
+}
- txn->recoveryUnit()->writingInt(_details->userFlags) &= ~flag;
- return true;
- }
+bool NamespaceDetailsRSV1MetaData::clearUserFlag(OperationContext* txn, int flag) {
+ if ((_details->userFlags & flag) == 0)
+ return false;
- bool NamespaceDetailsRSV1MetaData::replaceUserFlags( OperationContext* txn, int flags ) {
- if ( _details->userFlags == flags )
- return false;
+ txn->recoveryUnit()->writingInt(_details->userFlags) &= ~flag;
+ return true;
+}
- txn->recoveryUnit()->writingInt(_details->userFlags) = flags;
- return true;
- }
+bool NamespaceDetailsRSV1MetaData::replaceUserFlags(OperationContext* txn, int flags) {
+ if (_details->userFlags == flags)
+ return false;
- int NamespaceDetailsRSV1MetaData::lastExtentSize( OperationContext* txn ) const {
- return _details->lastExtentSize;
- }
+ txn->recoveryUnit()->writingInt(_details->userFlags) = flags;
+ return true;
+}
- void NamespaceDetailsRSV1MetaData::setLastExtentSize( OperationContext* txn, int newMax ) {
- if ( _details->lastExtentSize == newMax )
- return;
- txn->recoveryUnit()->writingInt(_details->lastExtentSize) = newMax;
- }
+int NamespaceDetailsRSV1MetaData::lastExtentSize(OperationContext* txn) const {
+ return _details->lastExtentSize;
+}
- long long NamespaceDetailsRSV1MetaData::maxCappedDocs() const {
- invariant( _details->isCapped );
- if ( _details->maxDocsInCapped == 0x7fffffff )
- return numeric_limits<long long>::max();
- return _details->maxDocsInCapped;
- }
+void NamespaceDetailsRSV1MetaData::setLastExtentSize(OperationContext* txn, int newMax) {
+ if (_details->lastExtentSize == newMax)
+ return;
+ txn->recoveryUnit()->writingInt(_details->lastExtentSize) = newMax;
+}
+
+long long NamespaceDetailsRSV1MetaData::maxCappedDocs() const {
+ invariant(_details->isCapped);
+ if (_details->maxDocsInCapped == 0x7fffffff)
+ return numeric_limits<long long>::max();
+ return _details->maxDocsInCapped;
+}
}