deardeng commented on code in PR #28082:
URL: https://github.com/apache/doris/pull/28082#discussion_r1418874124
##########
be/src/olap/olap_common.h:
##########
@@ -511,4 +513,23 @@ struct RidAndPos {
using PartialUpdateReadPlan = std::map<RowsetId, std::map<uint32_t,
std::vector<RidAndPos>>>;
+// used for controll compaction
Review Comment:
control
##########
be/src/olap/tablet.cpp:
##########
@@ -1316,12 +1308,46 @@ std::vector<RowsetSharedPtr>
Tablet::pick_candidate_rowsets_to_single_replica_co
}
std::vector<RowsetSharedPtr>
Tablet::pick_candidate_rowsets_to_base_compaction() {
+ return
_pick_visible_rowsets_to_compaction(std::numeric_limits<int64_t>::min(),
+ _cumulative_point - 1);
+}
+
+std::vector<RowsetSharedPtr>
Tablet::pick_candidate_rowsets_to_full_compaction() {
+ return pick_candidate_rowsets_to_single_replica_compaction();
+}
+
+std::vector<RowsetSharedPtr> Tablet::_pick_visible_rowsets_to_compaction(
+ int64_t min_start_version, int64_t max_start_version) {
+ int64_t visible_version = std::numeric_limits<int64_t>::max();
+ int32_t keep_invisible_version_limit =
config::compaction_keep_invisible_version_max_count;
+ if (auto version_info = std::atomic_load_explicit(&_visible_version,
std::memory_order_relaxed);
+ version_info != nullptr) {
+ visible_version =
version_info->version.load(std::memory_order_relaxed);
+ bool invisible_timeout = (MonotonicMillis() - version_info->update_ts)
>
+
config::compaction_keep_invisible_version_timeout_sec * 1000L;
+ if (invisible_timeout) {
+ keep_invisible_version_limit =
config::compaction_keep_invisible_version_min_count;
+ }
+ }
+
std::vector<RowsetSharedPtr> candidate_rowsets;
{
std::shared_lock rlock(_meta_lock);
+ int64_t tablet_max_version = max_version_unlocked().second;
for (const auto& [version, rs] : _rs_version_map) {
- // Do compaction on local rowsets only.
- if (version.first < _cumulative_point && rs->is_local()) {
+ int64_t version_start = version.first;
+ // rowset is remote or rowset is not in given range
+ if (!rs->is_local() || version_start < min_start_version ||
+ version_start > max_start_version) {
+ continue;
+ }
+
+ // can compact, met one of the conditions:
Review Comment:
meet?
##########
fe/fe-core/src/main/java/org/apache/doris/catalog/MetadataViewer.java:
##########
@@ -107,7 +107,7 @@ private static List<List<String>> getTabletStatus(String
dbName, String tblName,
row.add(String.valueOf(replica.getLastSuccessVersion()));
row.add(String.valueOf(visibleVersion));
row.add(String.valueOf(replica.getSchemaHash()));
- row.add(String.valueOf(replica.getVersionCount()));
+
row.add(String.valueOf(replica.getTotalVersionCount()));
Review Comment:
visible version count 不用加么?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]