dbms: table system.replication_queue: development [#METR-18061].

This commit is contained in:
Alexey Milovidov 2015-09-24 04:18:25 +03:00
parent f8d94fcbd9
commit dc209def73
3 changed files with 8 additions and 3 deletions

View File

@ -41,6 +41,7 @@ struct ReplicatedMergeTreeLogEntryData
{
enum Type
{
EMPTY, /// Не используется.
GET_PART, /// Получить кусок с другой реплики.
MERGE_PARTS, /// Слить куски.
DROP_RANGE, /// Удалить куски в указанном месяце в указанном диапазоне номеров.
@ -62,7 +63,7 @@ struct ReplicatedMergeTreeLogEntryData
String znode_name;
Type type;
Type type = EMPTY;
String source_replica; /// Пустая строка значит, что эта запись была добавлена сразу в очередь, а не скопирована из лога.
/// Имя куска, получающегося в результате.
@ -77,7 +78,7 @@ struct ReplicatedMergeTreeLogEntryData
/// Для ATTACH_PART имя куска в директории detached или unreplicated.
String source_part_name;
/// Нужно переносить из директории unreplicated, а не detached.
bool attach_unreplicated;
bool attach_unreplicated = false;
/// Доступ под queue_mutex.
bool currently_executing = false; /// Выполняется ли действие сейчас.

View File

@ -78,6 +78,9 @@ void ReplicatedMergeTreeLogEntry::writeText(WriteBuffer & out) const
out << "detached\n";
out << source_part_name << "\ninto\n" << new_part_name;
break;
default:
throw Exception("Unknown log entry type: " + DB::toString(type), ErrorCodes::LOGICAL_ERROR);
}
out << '\n';

View File

@ -133,7 +133,8 @@ BlockInputStreams StorageSystemReplicationQueue::read(
{
const auto & entry = queue[j];
Array parts_to_merge(entry.parts_to_merge.size());
Array parts_to_merge;
parts_to_merge.reserve(entry.parts_to_merge.size());
for (const auto & name : entry.parts_to_merge)
parts_to_merge.push_back(name);