33 #include "mongo/bson/util/builder.h" 36 #include "mongo/platform/bits.h" 40 class OperationContext;
54 sb <<
"The data files have major version " <<
_major 55 <<
", but this version of mongod only supports version " <<
kCurrentMajor;
56 return {ErrorCodes::MustUpgrade, sb.str()};
60 if (unrecognizedMinorBits) {
62 sb <<
"The data files use features not recognized by this version of mongod; the" 63 " feature bits in positions [ ";
64 bool firstIteration =
true;
65 while (unrecognizedMinorBits) {
66 const int lowestSetBitPosition = countTrailingZeros64(unrecognizedMinorBits);
67 if (!firstIteration) {
70 sb << lowestSetBitPosition;
71 unrecognizedMinorBits ^= (1 << lowestSetBitPosition);
72 firstIteration =
false;
74 sb <<
" ] aren't recognized by this version of mongod";
76 return {ErrorCodes::MustUpgrade, sb.str()};
82 sb <<
"The data files have index plugin version " << indexCleanliness
85 return {ErrorCodes::MustUpgrade, sb.str()};
185 void init(OperationContext*
opCtx,
int fileno,
int filelength,
const char* filename);
205 const char* filename,
206 int requestedDataSize = 0,
207 bool preallocateOnly =
false);
237 void flush(
bool sync);
252 return static_cast<DataFileHeader*>(
_mb);
255 return static_cast<DataFileHeader*>(
_mb);
uint32_t minorRaw() const
Definition: data_file.h:117
void * _mb
Definition: data_file.h:262
const int _fileNo
Definition: data_file.h:259
DurableMappedFile mmf
Definition: data_file.h:261
static const uint32_t kCurrentMajor
Definition: data_file.h:122
DataFileHeader * getHeader()
Definition: data_file.h:219
HANDLE getFd()
Definition: data_file.h:226
static const uint32_t kMayHave30Freelist
Definition: data_file.h:134
Copyright (C) 2014 MongoDB Inc.
Definition: bson_collection_catalog_entry.cpp:38
uint32_t _major
Definition: data_file.h:142
static const uint32_t kIndexes24AndNewer
Definition: data_file.h:132
bool mayHave30Freelist() const
Definition: data_file.h:100
unsigned long long length() const
Definition: data_file.h:229
Definition: data_file.h:43
static const uint32_t kUsedMinorFlagsMask
Definition: data_file.h:139
void setMayHave30Freelist()
Definition: data_file.h:103
DataFileHeader * header()
Definition: data_file.h:251
represents a disk location/offset on disk in a database.
Definition: diskloc.h:53
void close(OperationContext *opCtx)
Must be called before destruction.
Definition: data_file.h:212
void flush(bool sync)
fsync
Definition: data_file.cpp:185
static const uint32_t kIndexPluginMask
Definition: data_file.h:130
int HANDLE
Definition: mmap.h:42
void setIs24IndexClean()
Definition: data_file.h:96
static const uint32_t kMayHaveCollationMetadata
Definition: data_file.h:136
void badOfs(int) const
Definition: data_file.cpp:84
HANDLE getFd()
Definition: durable_mapped_file.h:111
OperationContext Database StringData CollectionOptions bool const BSONObj &idIndex Status
Definition: database_impl.cpp:955
ExtentManager basics.
Definition: mmap_v1_extent_manager.h:75
static int maxSize()
Definition: data_file.cpp:74
DurableMappedFile adds some layers atop memory mapped files - specifically our handling of private vi...
Definition: durable_mapped_file.h:47
Status isCompatibleWithCurrentCode() const
Definition: data_file.h:51
void setMayHaveCollationMetadata()
Definition: data_file.h:110
Status openExisting(OperationContext *opCtx, const char *filename)
Definition: data_file.cpp:107
void open(OperationContext *opCtx, const char *filename, int requestedDataSize=0, bool preallocateOnly=false)
creates if DNE
Definition: data_file.cpp:141
DataFileVersion(uint32_t major, uint32_t minor)
Definition: data_file.h:45
uint32_t majorRaw() const
Definition: data_file.h:114
static const uint32_t kIndexes22AndOlder
Definition: data_file.h:131
bool is24IndexClean() const
Definition: data_file.h:93
DiskLoc allocExtentArea(OperationContext *opCtx, int size)
Definition: data_file.cpp:189
unsigned long long length() const
Definition: durable_mapped_file.h:66
void grow(DiskLoc dl, int size)
int _defaultSize() const
Definition: data_file.cpp:90
static DataFileVersion defaultForNewFiles()
Definition: data_file.h:47
DataFile(OperationContext *opCtx, int fn)
Definition: data_file.h:198
uint32_t _minor
Definition: data_file.h:143
Collection *const OperationContext *const opCtx
Definition: collection_impl.cpp:80
bool getMayHaveCollationMetadata() const
Definition: data_file.h:107
Definition: data_file.h:196
virtual void close(OperationContext *opCtx)
Callers must be holding a LockMongoFilesExclusive.
Definition: durable_mapped_file.cpp:288
char * p() const
Definition: data_file.h:248
const DataFileHeader * getHeader() const
Definition: data_file.h:222
const DataFileHeader * header() const
Definition: data_file.h:254