dbms: get rid of 'increment.txt': addition [#METR-16629].

This commit is contained in:
Alexey Milovidov 2015-06-05 19:41:18 +03:00
parent 5a21f3908b
commit 4899dd47aa

View File

@ -43,6 +43,25 @@ StorageMergeTree::StorageMergeTree(
data.loadDataParts(false);
data.clearOldParts();
increment.set(data.getMaxDataPartIndex());
/** Если остался старый (не использующийся сейчас) файл increment.txt, то удалим его.
* Это нужно сделать, чтобы избежать ситуации, когда из-за копирования данных
* от сервера с новой версией (но с оставшимся некорректным и неиспользуемым increment.txt)
* на сервер со старой версией (где increment.txt используется),
* будет скопирован и использован некорректный increment.txt.
*
* Это - защита от очень редкого гипотетического случая.
* Он может достигаться в БК, где довольно медленно обновляют ПО,
* но зато часто делают копирование данных rsync-ом.
*/
{
Poco::File obsolete_increment_txt(full_path + "increment.txt");
if (obsolete_increment_txt.exists())
{
LOG_INFO(log, "Removing obsolete file " << full_path << "increment.txt");
obsolete_increment_txt.remove();
}
}
}
StoragePtr StorageMergeTree::create(