You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-12-15 12:09:09 +03:00
Fixed several bugs exposed by setting the cache size to an
unreasonably small value. Had to make a compromise to avoid a deadlock though. read/write/append/truncate will now be able to exceed the cache size limit temporarily. The cache will be reconciled at the end of the respective operation. Ex, given a cache of 100MB, and a read() of 500MB, all 500MB of data being read will stay in the cache until it is read, then 400MB of it will be evicted. Same on the write side.
This commit is contained in:
@@ -30,6 +30,7 @@ class Synchronizer : public boost::noncopyable
|
||||
// these take keys as parameters, not full path names, ex, pass in '12345' not
|
||||
// 'cache/12345'.
|
||||
void newJournalEntry(const std::string &key);
|
||||
void newJournalEntries(const std::vector<std::string> &keys);
|
||||
void newObjects(const std::vector<std::string> &keys);
|
||||
void deletedObjects(const std::vector<std::string> &keys);
|
||||
void flushObject(const std::string &key);
|
||||
@@ -41,6 +42,7 @@ class Synchronizer : public boost::noncopyable
|
||||
private:
|
||||
Synchronizer();
|
||||
|
||||
void _newJournalEntry(const std::string &key);
|
||||
void process(std::list<std::string>::iterator key);
|
||||
void synchronize(const std::string &sourceFile, std::list<std::string>::iterator &it);
|
||||
void synchronizeDelete(const std::string &sourceFile, std::list<std::string>::iterator &it);
|
||||
@@ -86,7 +88,6 @@ class Synchronizer : public boost::noncopyable
|
||||
const boost::chrono::seconds syncInterval = boost::chrono::seconds(10);
|
||||
void periodicSync();
|
||||
|
||||
|
||||
SMLogging *logger;
|
||||
Cache *cache;
|
||||
Replicator *replicator;
|
||||
|
||||
Reference in New Issue
Block a user