mirror of
https://github.com/mongodb/mongo.git
synced 2024-12-01 09:32:32 +01:00
SERVER-1781 reset a chunk's modified flag after the chunk info was saved
This commit is contained in:
parent
620b4c9805
commit
227acd8528
20
s/chunk.cpp
20
s/chunk.cpp
@ -59,7 +59,7 @@ namespace mongo {
|
||||
void Chunk::setShard( const Shard& s ){
|
||||
_shard = s;
|
||||
_manager->_migrationNotification(this);
|
||||
_markModified();
|
||||
_modified = true;
|
||||
}
|
||||
|
||||
bool Chunk::contains( const BSONObj& obj ) const{
|
||||
@ -237,7 +237,7 @@ namespace mongo {
|
||||
vector<ChunkPtr> newChunks;
|
||||
vector<BSONObj>::const_iterator i = m.begin();
|
||||
BSONObj nextPoint = i->getOwned();
|
||||
_markModified();
|
||||
_modified = true;
|
||||
do {
|
||||
BSONObj splitPoint = nextPoint;
|
||||
log(4) << "splitPoint: " << splitPoint << endl;
|
||||
@ -251,9 +251,9 @@ namespace mongo {
|
||||
uasserted( 13395, ss.str() );
|
||||
}
|
||||
|
||||
ChunkPtr s( new Chunk( _manager, splitPoint , nextPoint , _shard) );
|
||||
s->_markModified();
|
||||
newChunks.push_back(s);
|
||||
ChunkPtr c( new Chunk( _manager, splitPoint , nextPoint , _shard) );
|
||||
c->_modified = true;
|
||||
newChunks.push_back( c );
|
||||
} while ( i != m.end() );
|
||||
|
||||
// Have the chunk manager reflect the key change for the first chunk and create an entry for every
|
||||
@ -569,10 +569,6 @@ namespace mongo {
|
||||
return o["lastmod"];
|
||||
}
|
||||
|
||||
void Chunk::_markModified(){
|
||||
_modified = true;
|
||||
}
|
||||
|
||||
string Chunk::toString() const {
|
||||
stringstream ss;
|
||||
ss << "ns:" << _manager->getns() << " at: " << _shard.toString() << " lastmod: " << _lastmod.toString() << " min: " << _min << " max: " << _max;
|
||||
@ -598,7 +594,7 @@ namespace mongo {
|
||||
|
||||
if ( _chunkMap.empty() ){
|
||||
ChunkPtr c( new Chunk(this, _key.globalMin(), _key.globalMax(), config->getPrimary()) );
|
||||
c->_markModified();
|
||||
c->setModified( true );
|
||||
|
||||
_chunkMap[c->getMax()] = c;
|
||||
_chunkRanges.reloadAll(_chunkMap);
|
||||
@ -927,7 +923,7 @@ namespace mongo {
|
||||
int numOps = 0;
|
||||
for ( ChunkMap::const_iterator i=_chunkMap.begin(); i!=_chunkMap.end(); ++i ){
|
||||
ChunkPtr c = i->second;
|
||||
if ( ! c->_modified )
|
||||
if ( ! c->getModified() )
|
||||
continue;
|
||||
|
||||
numOps++;
|
||||
@ -997,6 +993,7 @@ namespace mongo {
|
||||
// instead of reloading, adjust ShardChunkVersion for the chunks that were updated in the configdb
|
||||
for ( unsigned i=0; i<toFix.size(); i++ ){
|
||||
toFix[i]->_lastmod = newVersions[i];
|
||||
toFix[i]->setModified( false );
|
||||
}
|
||||
|
||||
massert( 10417 , "how did version get smalled" , getVersion_inlock() >= version );
|
||||
@ -1271,5 +1268,4 @@ namespace mongo {
|
||||
return conn.runCommand( "admin" , cmd , result );
|
||||
}
|
||||
|
||||
|
||||
} // namespace mongo
|
||||
|
@ -128,8 +128,6 @@ namespace mongo {
|
||||
|
||||
void appendShortVersion( const char * name , BSONObjBuilder& b );
|
||||
|
||||
void _markModified();
|
||||
|
||||
static int MaxChunkSize;
|
||||
|
||||
string genID() const;
|
||||
@ -137,7 +135,8 @@ namespace mongo {
|
||||
|
||||
const ChunkManager* getManager() const { return _manager; }
|
||||
|
||||
bool modified();
|
||||
bool getModified() { return _modified; }
|
||||
void setModified( bool modified ) { _modified = modified; }
|
||||
|
||||
ShardChunkVersion getVersionOnConfigServer() const;
|
||||
private:
|
||||
|
Loading…
Reference in New Issue
Block a user