33 #include <boost/filesystem/operations.hpp> 37 #include "mongo/db/service_context.h" 39 #include "mongo/stdx/mutex.h" 40 #include "mongo/util/concurrency/mutex.h" 44 class DurableMappedFile;
48 struct ParsedJournalEntry;
59 void go(OperationContext*
opCtx, std::vector<boost::filesystem::path>& files);
69 void close(OperationContext* opCtx);
78 Last(OperationContext* opCtx);
96 void applyEntries(OperationContext* opCtx,
const std::vector<ParsedJournalEntry>& entries);
98 bool processFile(OperationContext* opCtx, boost::filesystem::path journalfile);
99 void _close(OperationContext* opCtx);
103 std::list<std::shared_ptr<DurableMappedFile>>
_mmfs;
void processSection(OperationContext *opCtx, const JSectHeader *h, const void *data, unsigned len, const JSectFooter *f)
Definition: dur_recover.cpp:396
void _close(OperationContext *opCtx)
Definition: dur_recover.cpp:281
Last(OperationContext *opCtx)
Definition: dur_recover.cpp:290
void go(OperationContext *opCtx, std::vector< boost::filesystem::path > &files)
Definition: dur_recover.cpp:587
void applyEntries(OperationContext *opCtx, const std::vector< ParsedJournalEntry > &entries)
Definition: dur_recover.cpp:378
Copyright (C) 2014 MongoDB Inc.
Definition: bson_collection_catalog_entry.cpp:38
bool processFile(OperationContext *opCtx, boost::filesystem::path journalfile)
apply a specific journal file
Definition: dur_recover.cpp:562
static RecoveryJob & _instance
Definition: dur_recover.h:113
MONGO_DISALLOW_COPYING(RecoveryJob)
bool _appliedAnySections
Definition: dur_recover.h:110
OperationContext * _opCtx
Definition: dur_recover.h:87
std::list< std::shared_ptr< DurableMappedFile > > _mmfs
Definition: dur_recover.h:103
std::shared_ptr< void > data
Definition: ephemeral_for_test_record_store_test.cpp:74
void close(OperationContext *opCtx)
Definition: dur_recover.cpp:276
int fileNo
Definition: dur_recover.h:90
DurableMappedFile * newEntry(const ParsedJournalEntry &, RecoveryJob &)
Definition: dur_recover.cpp:295
RecoveryJob()
Definition: dur_recover.cpp:262
void applyEntry(Last &last, const ParsedJournalEntry &entry, bool apply, bool dump)
Definition: dur_recover.cpp:347
unsigned long long _lastDataSyncedFromLastRun
Definition: dur_recover.h:108
DurableMappedFile adds some layers atop memory mapped files - specifically our handling of private vi...
Definition: durable_mapped_file.h:47
Definition: dur_recover.h:76
bool processFileBuffer(OperationContext *opCtx, const void *, unsigned len)
apply a specific journal file, that is already mmap'd
Definition: dur_recover.cpp:482
void replayJournalFilesAtStartup()
recover from a crash called during startup throws on error
Definition: dur_recover.cpp:654
unsigned long long _lastSeqSkipped
Definition: dur_recover.h:109
DurableMappedFile * mmf
Definition: dur_recover.h:88
void write(Last &last, const ParsedJournalEntry &entry)
Definition: dur_recover.cpp:328
bool _recovering
Definition: dur_recover.h:106
Collection *const OperationContext *const opCtx
Definition: collection_impl.cpp:80
call go() to execute a recovery from existing journal files.
Definition: dur_recover.h:52
Definition: dur_recover.cpp:97
stdx::mutex _mx
Definition: dur_recover.h:102
std::string dbName
Definition: dur_recover.h:89
OperationContext * opCtx()
Definition: dur_recover.h:82
~RecoveryJob()
Definition: dur_recover.cpp:271