Skip to content

Commit 55bf035

Browse files
authored
merge master (#46486)
1 parent d89ac05 commit 55bf035

File tree

3,049 files changed

+101976
-20234
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,049 files changed

+101976
-20234
lines changed

.asf.yaml

+1-5
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,7 @@ github:
5656
- cloud_p0 (Doris Cloud Regression)
5757
- FE UT (Doris FE UT)
5858
- BE UT (Doris BE UT)
59-
- Build Broker
60-
- ShellCheck
59+
- Build Broker
6160
- Build Third Party Libraries (Linux)
6261
- Build Third Party Libraries (macOS)
6362
- Build Third Party Libraries (macOS-arm64)
@@ -80,7 +79,6 @@ github:
8079
- Clang Formatter
8180
- CheckStyle
8281
- Build Broker
83-
- ShellCheck
8482
- Build Third Party Libraries (Linux)
8583
- Build Third Party Libraries (macOS)
8684
- FE UT (Doris FE UT)
@@ -103,7 +101,6 @@ github:
103101
- Clang Formatter
104102
- CheckStyle
105103
- Build Broker
106-
- ShellCheck
107104
- Build Third Party Libraries (Linux)
108105
- Build Third Party Libraries (macOS)
109106
- COMPILE (DORIS_COMPILE)
@@ -128,7 +125,6 @@ github:
128125
- FE UT (Doris FE UT)
129126
- BE UT (Doris BE UT)
130127
- Build Broker
131-
- ShellCheck
132128
- Build Third Party Libraries (Linux)
133129
- Build Third Party Libraries (macOS)
134130
- COMPILE (DORIS_COMPILE)

README.md

+2-5
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,9 @@ Apache Doris is an easy-to-use, high-performance and real-time analytical databa
5959

6060
All this makes Apache Doris an ideal tool for scenarios including report analysis, ad-hoc query, unified data warehouse, and data lake query acceleration. On Apache Doris, users can build various applications, such as user behavior analysis, AB test platform, log retrieval analysis, user portrait analysis, and order analysis.
6161

62-
🎉 Version 2.1.4 released now. Check out the 🔗[Release Notes](https://doris.apache.org/docs/releasenotes/release-2.1.4) here. The 2.1 verison delivers exceptional performance with 100% higher out-of-the-box queries proven by TPC-DS 1TB tests, enhanced data lake analytics that are 4-6 times speedier than Trino and Spark, solid support for semi-structured data analysis with new Variant types and suite of analytical functions, asynchronous materialized views for query acceleration, optimized real-time writing at scale, and better workload management with stability and runtime SQL resource tracking.
62+
🎉 Check out the 🔗[All releases](https://doris.apache.org/docs/releasenotes/all-release), where you'll find a chronological summary of Apache Doris versions released over the past year.
6363

64-
65-
🎉 Version 2.0.12 is now released ! This fully evolved and stable release is ready for all users to upgrade. Check out the 🔗[Release Notes](https://doris.apache.org/docs/2.0/releasenotes/release-2.0.12) here.
66-
67-
👀 Have a look at the 🔗[Official Website](https://doris.apache.org/) for a comprehensive list of Apache Doris's core features, blogs and user cases.
64+
👀 Explore the 🔗[Official Website](https://doris.apache.org/) to discover Apache Doris's core features, blogs, and user cases in detail.
6865

6966
## 📈 Usage Scenarios
7067

aazcp.tar.gz

4.12 KB
Binary file not shown.

be/src/agent/task_worker_pool.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -1630,11 +1630,13 @@ void drop_tablet_callback(StorageEngine& engine, const TAgentTaskRequest& req) {
16301630
dropped_tablet->tablet_uid());
16311631
LOG_INFO("successfully drop tablet")
16321632
.tag("signature", req.signature)
1633-
.tag("tablet_id", drop_tablet_req.tablet_id);
1633+
.tag("tablet_id", drop_tablet_req.tablet_id)
1634+
.tag("replica_id", drop_tablet_req.replica_id);
16341635
} else {
16351636
LOG_WARNING("failed to drop tablet")
16361637
.tag("signature", req.signature)
16371638
.tag("tablet_id", drop_tablet_req.tablet_id)
1639+
.tag("replica_id", drop_tablet_req.replica_id)
16381640
.error(status);
16391641
}
16401642

be/src/agent/workload_group_listener.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
#include "agent/workload_group_listener.h"
1919

20+
#include "runtime/exec_env.h"
2021
#include "runtime/workload_group/workload_group.h"
2122
#include "runtime/workload_group/workload_group_manager.h"
2223
#include "util/mem_info.h"

be/src/agent/workload_group_listener.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@
2020
#include <glog/logging.h>
2121

2222
#include "agent/topic_listener.h"
23-
#include "runtime/exec_env.h"
2423

2524
namespace doris {
2625

26+
class ExecEnv;
27+
2728
class WorkloadGroupListener : public TopicListener {
2829
public:
2930
~WorkloadGroupListener() {}

be/src/cloud/cloud_base_compaction.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ Status CloudBaseCompaction::prepare_compact() {
125125
_input_row_num += rs->num_rows();
126126
_input_segments += rs->num_segments();
127127
_input_rowsets_data_size += rs->data_disk_size();
128+
_input_rowsets_index_size += rs->index_disk_size();
128129
_input_rowsets_total_size += rs->total_disk_size();
129130
}
130131
LOG_INFO("start CloudBaseCompaction, tablet_id={}, range=[{}-{}]", _tablet->tablet_id(),
@@ -320,6 +321,10 @@ Status CloudBaseCompaction::modify_rowsets() {
320321
compaction_job->add_output_versions(_output_rowset->end_version());
321322
compaction_job->add_txn_id(_output_rowset->txn_id());
322323
compaction_job->add_output_rowset_ids(_output_rowset->rowset_id().to_string());
324+
compaction_job->set_index_size_input_rowsets(_input_rowsets_index_size);
325+
compaction_job->set_segment_size_input_rowsets(_input_rowsets_data_size);
326+
compaction_job->set_index_size_output_rowsets(_output_rowset->index_disk_size());
327+
compaction_job->set_segment_size_output_rowsets(_output_rowset->data_disk_size());
323328

324329
DeleteBitmapPtr output_rowset_delete_bitmap = nullptr;
325330
if (_tablet->keys_type() == KeysType::UNIQUE_KEYS &&

be/src/cloud/cloud_cumulative_compaction.cpp

+19-27
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "util/uuid_generator.h"
3434

3535
namespace doris {
36+
#include "common/compile_check_begin.h"
3637
using namespace ErrorCode;
3738

3839
bvar::Adder<uint64_t> cumu_output_size("cumu_compaction", "output_size");
@@ -91,6 +92,10 @@ Status CloudCumulativeCompaction::prepare_compact() {
9192
// plus 1 to skip the delete version.
9293
// NOTICE: after that, the cumulative point may be larger than max version of this tablet, but it doesn't matter.
9394
update_cumulative_point();
95+
if (!config::enable_sleep_between_delete_cumu_compaction) {
96+
st = Status::Error<CUMULATIVE_NO_SUITABLE_VERSION>(
97+
"_last_delete_version.first not equal to -1");
98+
}
9499
}
95100
return st;
96101
}
@@ -263,6 +268,10 @@ Status CloudCumulativeCompaction::modify_rowsets() {
263268
compaction_job->add_output_versions(_output_rowset->end_version());
264269
compaction_job->add_txn_id(_output_rowset->txn_id());
265270
compaction_job->add_output_rowset_ids(_output_rowset->rowset_id().to_string());
271+
compaction_job->set_index_size_input_rowsets(_input_rowsets_index_size);
272+
compaction_job->set_segment_size_input_rowsets(_input_rowsets_data_size);
273+
compaction_job->set_index_size_output_rowsets(_output_rowset->index_disk_size());
274+
compaction_job->set_segment_size_output_rowsets(_output_rowset->data_disk_size());
266275

267276
DBUG_EXECUTE_IF("CloudCumulativeCompaction::modify_rowsets.enable_spin_wait", {
268277
LOG(INFO) << "CloudCumulativeCompaction::modify_rowsets.enable_spin_wait, start";
@@ -371,37 +380,17 @@ Status CloudCumulativeCompaction::modify_rowsets() {
371380
Status CloudCumulativeCompaction::process_old_version_delete_bitmap() {
372381
// agg previously rowset old version delete bitmap
373382
std::vector<RowsetSharedPtr> pre_rowsets {};
374-
std::vector<std::string> pre_rowset_ids {};
375383
for (const auto& it : cloud_tablet()->rowset_map()) {
376384
if (it.first.second < _input_rowsets.front()->start_version()) {
377385
pre_rowsets.emplace_back(it.second);
378-
pre_rowset_ids.emplace_back(it.second->rowset_id().to_string());
379386
}
380387
}
381388
std::sort(pre_rowsets.begin(), pre_rowsets.end(), Rowset::comparator);
382389
if (!pre_rowsets.empty()) {
383-
auto pre_max_version = _output_rowset->version().second;
384-
DeleteBitmapPtr new_delete_bitmap =
385-
std::make_shared<DeleteBitmap>(_tablet->tablet_meta()->tablet_id());
386390
std::vector<std::tuple<int64_t, DeleteBitmap::BitmapKey, DeleteBitmap::BitmapKey>>
387391
to_remove_vec;
388-
for (auto& rowset : pre_rowsets) {
389-
if (rowset->rowset_meta()->total_disk_size() == 0) {
390-
continue;
391-
}
392-
for (uint32_t seg_id = 0; seg_id < rowset->num_segments(); ++seg_id) {
393-
rowset->rowset_id().to_string();
394-
DeleteBitmap::BitmapKey start {rowset->rowset_id(), seg_id, 0};
395-
DeleteBitmap::BitmapKey end {rowset->rowset_id(), seg_id, pre_max_version};
396-
auto d = _tablet->tablet_meta()->delete_bitmap().get_agg(
397-
{rowset->rowset_id(), seg_id, pre_max_version});
398-
to_remove_vec.emplace_back(std::make_tuple(_tablet->tablet_id(), start, end));
399-
if (d->isEmpty()) {
400-
continue;
401-
}
402-
new_delete_bitmap->set(end, *d);
403-
}
404-
}
392+
DeleteBitmapPtr new_delete_bitmap = nullptr;
393+
agg_and_remove_old_version_delete_bitmap(pre_rowsets, to_remove_vec, new_delete_bitmap);
405394
if (!new_delete_bitmap->empty()) {
406395
// store agg delete bitmap
407396
DBUG_EXECUTE_IF("CloudCumulativeCompaction.modify_rowsets.update_delete_bitmap_failed",
@@ -421,9 +410,9 @@ Status CloudCumulativeCompaction::process_old_version_delete_bitmap() {
421410
}
422411
_tablet->tablet_meta()->delete_bitmap().add_to_remove_queue(version.to_string(),
423412
to_remove_vec);
424-
DBUG_EXECUTE_IF(
425-
"CloudCumulativeCompaction.modify_rowsets.delete_expired_stale_rowsets",
426-
{ static_cast<CloudTablet*>(_tablet.get())->delete_expired_stale_rowsets(); });
413+
DBUG_EXECUTE_IF("CumulativeCompaction.modify_rowsets.delete_expired_stale_rowsets", {
414+
static_cast<CloudTablet*>(_tablet.get())->delete_expired_stale_rowsets();
415+
});
427416
}
428417
}
429418
return Status::OK();
@@ -486,8 +475,10 @@ Status CloudCumulativeCompaction::pick_rowsets_to_compact() {
486475
}
487476

488477
int64_t max_score = config::cumulative_compaction_max_deltas;
489-
auto process_memory_usage = doris::GlobalMemoryArbitrator::process_memory_usage();
490-
bool memory_usage_high = process_memory_usage > MemInfo::soft_mem_limit() * 0.8;
478+
double process_memory_usage =
479+
cast_set<double>(doris::GlobalMemoryArbitrator::process_memory_usage());
480+
bool memory_usage_high =
481+
process_memory_usage > cast_set<double>(MemInfo::soft_mem_limit()) * 0.8;
491482
if (cloud_tablet()->last_compaction_status.is<ErrorCode::MEM_LIMIT_EXCEEDED>() ||
492483
memory_usage_high) {
493484
max_score = std::max(config::cumulative_compaction_max_deltas /
@@ -617,4 +608,5 @@ void CloudCumulativeCompaction::do_lease() {
617608
}
618609
}
619610

611+
#include "common/compile_check_end.h"
620612
} // namespace doris

be/src/cloud/cloud_cumulative_compaction.h

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "olap/compaction.h"
2525

2626
namespace doris {
27+
#include "common/compile_check_begin.h"
2728

2829
class CloudCumulativeCompaction : public CloudCompactionMixin {
2930
public:
@@ -60,4 +61,5 @@ class CloudCumulativeCompaction : public CloudCompactionMixin {
6061
Version _last_delete_version {-1, -1};
6162
};
6263

64+
#include "common/compile_check_end.h"
6365
} // namespace doris

be/src/cloud/cloud_cumulative_compaction_policy.cpp

+7-5
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include "olap/tablet_meta.h"
3232

3333
namespace doris {
34+
#include "common/compile_check_begin.h"
3435

3536
CloudSizeBasedCumulativeCompactionPolicy::CloudSizeBasedCumulativeCompactionPolicy(
3637
int64_t promotion_size, double promotion_ratio, int64_t promotion_min_size,
@@ -48,7 +49,7 @@ int64_t CloudSizeBasedCumulativeCompactionPolicy::_level_size(const int64_t size
4849
return (int64_t)1 << (sizeof(size) * 8 - 1 - __builtin_clzl(size));
4950
}
5051

51-
int32_t CloudSizeBasedCumulativeCompactionPolicy::pick_input_rowsets(
52+
int64_t CloudSizeBasedCumulativeCompactionPolicy::pick_input_rowsets(
5253
CloudTablet* tablet, const std::vector<RowsetSharedPtr>& candidate_rowsets,
5354
const int64_t max_compaction_score, const int64_t min_compaction_score,
5455
std::vector<RowsetSharedPtr>* input_rowsets, Version* last_delete_version,
@@ -114,8 +115,8 @@ int32_t CloudSizeBasedCumulativeCompactionPolicy::pick_input_rowsets(
114115
size_t new_compaction_score = *compaction_score;
115116
while (rs_begin != input_rowsets->end()) {
116117
auto& rs_meta = (*rs_begin)->rowset_meta();
117-
int current_level = _level_size(rs_meta->total_disk_size());
118-
int remain_level = _level_size(total_size - rs_meta->total_disk_size());
118+
int64_t current_level = _level_size(rs_meta->total_disk_size());
119+
int64_t remain_level = _level_size(total_size - rs_meta->total_disk_size());
119120
// if current level less then remain level, input rowsets contain current rowset
120121
// and process return; otherwise, input rowsets do not contain current rowset.
121122
if (current_level <= remain_level) {
@@ -185,7 +186,7 @@ int32_t CloudSizeBasedCumulativeCompactionPolicy::pick_input_rowsets(
185186
}
186187

187188
int64_t CloudSizeBasedCumulativeCompactionPolicy::cloud_promotion_size(CloudTablet* t) const {
188-
int64_t promotion_size = int64_t(t->base_size() * _promotion_ratio);
189+
int64_t promotion_size = int64_t(cast_set<double>(t->base_size()) * _promotion_ratio);
189190
// promotion_size is between _size_based_promotion_size and _size_based_promotion_min_size
190191
return promotion_size > _promotion_size ? _promotion_size
191192
: promotion_size < _promotion_min_size ? _promotion_min_size
@@ -215,7 +216,7 @@ int64_t CloudSizeBasedCumulativeCompactionPolicy::new_cumulative_point(
215216
: last_cumulative_point;
216217
}
217218

218-
int32_t CloudTimeSeriesCumulativeCompactionPolicy::pick_input_rowsets(
219+
int64_t CloudTimeSeriesCumulativeCompactionPolicy::pick_input_rowsets(
219220
CloudTablet* tablet, const std::vector<RowsetSharedPtr>& candidate_rowsets,
220221
const int64_t max_compaction_score, const int64_t min_compaction_score,
221222
std::vector<RowsetSharedPtr>* input_rowsets, Version* last_delete_version,
@@ -377,4 +378,5 @@ int64_t CloudTimeSeriesCumulativeCompactionPolicy::new_cumulative_point(
377378
return output_rowset->end_version() + 1;
378379
}
379380

381+
#include "common/compile_check_end.h"
380382
} // namespace doris

be/src/cloud/cloud_cumulative_compaction_policy.h

+5-3
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include "olap/rowset/rowset_meta.h"
3131

3232
namespace doris {
33+
#include "common/compile_check_begin.h"
3334

3435
class Tablet;
3536
struct Version;
@@ -44,7 +45,7 @@ class CloudCumulativeCompactionPolicy {
4445

4546
virtual int64_t new_compaction_level(const std::vector<RowsetSharedPtr>& input_rowsets) = 0;
4647

47-
virtual int32_t pick_input_rowsets(CloudTablet* tablet,
48+
virtual int64_t pick_input_rowsets(CloudTablet* tablet,
4849
const std::vector<RowsetSharedPtr>& candidate_rowsets,
4950
const int64_t max_compaction_score,
5051
const int64_t min_compaction_score,
@@ -71,7 +72,7 @@ class CloudSizeBasedCumulativeCompactionPolicy : public CloudCumulativeCompactio
7172
return 0;
7273
}
7374

74-
int32_t pick_input_rowsets(CloudTablet* tablet,
75+
int64_t pick_input_rowsets(CloudTablet* tablet,
7576
const std::vector<RowsetSharedPtr>& candidate_rowsets,
7677
const int64_t max_compaction_score,
7778
const int64_t min_compaction_score,
@@ -106,7 +107,7 @@ class CloudTimeSeriesCumulativeCompactionPolicy : public CloudCumulativeCompacti
106107

107108
int64_t new_compaction_level(const std::vector<RowsetSharedPtr>& input_rowsets) override;
108109

109-
int32_t pick_input_rowsets(CloudTablet* tablet,
110+
int64_t pick_input_rowsets(CloudTablet* tablet,
110111
const std::vector<RowsetSharedPtr>& candidate_rowsets,
111112
const int64_t max_compaction_score,
112113
const int64_t min_compaction_score,
@@ -115,4 +116,5 @@ class CloudTimeSeriesCumulativeCompactionPolicy : public CloudCumulativeCompacti
115116
bool allow_delete = false) override;
116117
};
117118

119+
#include "common/compile_check_end.h"
118120
} // namespace doris

0 commit comments

Comments
 (0)