Skip to content

Commit cdfa5ab

Browse files
committed
use snowflakeid as transaction id
1 parent 1859244 commit cdfa5ab

File tree

3 files changed

+11
-24
lines changed

3 files changed

+11
-24
lines changed

src/Storages/MergeTree/MergeTreeExportManifest.h

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,11 @@
88
#include <IO/ReadHelpers.h>
99
#include <IO/WriteHelpers.h>
1010
#include <Common/Exception.h>
11-
#include "Storages/MergeTree/RangesInDataPart.h"
1211
#include <Poco/JSON/Object.h>
1312
#include <Poco/JSON/Array.h>
1413
#include <Poco/JSON/Parser.h>
1514
#include <Poco/JSON/Stringifier.h>
1615
#include <Poco/Dynamic/Var.h>
17-
#include <memory>
18-
#include <sstream>
1916

2017
namespace DB
2118
{
@@ -54,17 +51,17 @@ struct MergeTreeExportManifest
5451
static std::shared_ptr<MergeTreeExportManifest> create(
5552
const DiskPtr & disk_,
5653
const String & path_prefix,
57-
const String & commit_id_,
54+
const String & transaction_id_,
5855
const String & partition_id_,
5956
const StorageID & destination_storage_id_,
6057
const std::vector<DataPartPtr> & data_parts)
6158
{
6259
auto manifest = std::make_shared<MergeTreeExportManifest>();
6360
manifest->disk = disk_;
64-
manifest->transaction_id = commit_id_;
61+
manifest->transaction_id = transaction_id_;
6562
manifest->partition_id = partition_id_;
6663
manifest->destination_storage_id = destination_storage_id_;
67-
manifest->file_path = std::filesystem::path(path_prefix) / ("export_partition_" + partition_id_ + "_commit_" + commit_id_ + ".json");
64+
manifest->file_path = std::filesystem::path(path_prefix) / ("export_partition_" + partition_id_ + "_transaction_" + transaction_id_ + ".json");
6865
manifest->items.reserve(data_parts.size());
6966
for (const auto & data_part : data_parts)
7067
manifest->items.push_back({data_part->name, ""});
@@ -177,5 +174,3 @@ struct MergeTreeExportManifest
177174
};
178175

179176
}
180-
181-

src/Storages/StorageMergeTree.cpp

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,12 @@
4747
#include <Common/ProfileEventsScope.h>
4848
#include <Common/escapeForFileName.h>
4949
#include "Core/BackgroundSchedulePool.h"
50-
#include "Core/Names.h"
51-
#include "ObjectStorage/MergeTree/StorageObjectStorageMergeTreePartImporterSink.h"
52-
#include "Storages/MergeTree/MergeMutateSelectedEntry.h"
53-
#include "Storages/MergeTree/MergeTreeExportManifest.h"
54-
#include "Storages/MergeTree/MergeTreePartInfo.h"
50+
#include <Core/Names.h>
51+
#include <Functions/generateSnowflakeID.h>
52+
#include <Storages/ObjectStorage/MergeTree/StorageObjectStorageMergeTreePartImporterSink.h>
53+
#include <Storages/MergeTree/MergeMutateSelectedEntry.h>
54+
#include <Storages/MergeTree/MergeTreeExportManifest.h>
55+
#include <Storages/MergeTree/MergeTreePartInfo.h>
5556

5657
namespace DB
5758
{
@@ -597,16 +598,7 @@ void StorageMergeTree::exportPartitionToTable(const PartitionCommand & command,
597598

598599
auto exports_tagger = std::make_shared<CurrentlyExportingPartsTagger>(std::move(all_parts), *this);
599600

600-
std::string transaction_id;
601-
{
602-
std::random_device rd;
603-
std::mt19937_64 gen(rd());
604-
std::uniform_int_distribution<uint64_t> dis;
605-
uint64_t random_value = dis(gen);
606-
std::ostringstream oss;
607-
oss << std::hex << random_value;
608-
transaction_id = oss.str();
609-
}
601+
const auto transaction_id = std::to_string(generateSnowflakeID());
610602

611603
const auto manifest = MergeTreeExportManifest::create(
612604
getStoragePolicy()->getAnyDisk(),

src/Storages/StorageMergeTree.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
#include <Disks/StoragePolicy.h>
1919
#include <Common/SimpleIncrement.h>
20-
#include "Storages/MergeTree/MergeTreeExportManifest.h"
20+
#include <Storages/MergeTree/MergeTreeExportManifest.h>
2121

2222

2323
namespace DB

0 commit comments

Comments
 (0)