Skip to content

Commit

Permalink
ci
Browse files Browse the repository at this point in the history
  • Loading branch information
zhangyongxiang.alpha committed Feb 6, 2025
1 parent 8e60617 commit c5f3204
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
import java.util.Deque;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedDeque;
import java.util.concurrent.Executors;
Expand Down Expand Up @@ -90,8 +91,12 @@ public OverviewManager(int maxRecordCount, Duration refreshInterval) {
.setNameFormat("overview-updater-scheduler-%d")
.setDaemon(true)
.build());
overviewUpdaterScheduler.scheduleAtFixedRate(
this::refresh, 1000L, refreshInterval.toMillis(), TimeUnit.MILLISECONDS);
resetStatusMap();

if (refreshInterval.toMillis() > 0) {
overviewUpdaterScheduler.scheduleAtFixedRate(
this::refresh, 1000L, refreshInterval.toMillis(), TimeUnit.MILLISECONDS);
}
}

public List<OverviewTopTableItem> getAllTopTableItem() {
Expand Down Expand Up @@ -160,17 +165,13 @@ private void refreshTableCache(long ts) {
Map<String, OverviewTopTableItem> topTableItemMap = Maps.newHashMap();
Map<String, Long> optimizingStatusMap = Maps.newHashMap();
for (TableRuntimeMeta meta : metas) {
String tableName = fullTableName(meta);
OverviewTopTableItem tableItem =
topTableItemMap.computeIfAbsent(tableName, ignore -> new OverviewTopTableItem(tableName));
tableItem.setTableSize(meta.getPendingInput().getTotalFileSize());
tableItem.setFileCount(meta.getPendingInput().getTotalFileCount());
tableItem.setAverageFileSize(
tableItem.getFileCount() == 0 ? 0 : tableItem.getTableSize() / tableItem.getFileCount());
tableItem.setHealthScore(meta.getPendingInput().getHealthScore());
totalDataSize.addAndGet(tableItem.getTableSize());
totalFileCounts.addAndGet(tableItem.getFileCount());

Optional<OverviewTopTableItem> optItem = toTopTableItem(meta);
optItem.ifPresent(
tableItem -> {
topTableItemMap.put(tableItem.getTableName(), tableItem);
totalDataSize.addAndGet(tableItem.getTableSize());
totalFileCounts.addAndGet(tableItem.getFileCount());
});
String status = statusToMetricString(meta.getTableStatus());
if (StringUtils.isNotEmpty(status)) {
optimizingStatusMap.computeIfAbsent(status, ignore -> 0L);
Expand All @@ -179,15 +180,30 @@ private void refreshTableCache(long ts) {
}

this.totalCatalog.set(totalCatalogs);
this.totalTableCount.set(totalFileCounts.get());
this.totalTableCount.set(topTableItemMap.size());
this.totalDataSize.set(totalDataSize.get());
this.allTopTableItem.clear();
this.allTopTableItem.addAll(topTableItemMap.values());
addAndCheck(new OverviewDataSizeItem(ts, this.totalDataSize.get()));
this.optimizingStatusCountMap.clear();
resetStatusMap();
this.optimizingStatusCountMap.putAll(optimizingStatusMap);
}

private Optional<OverviewTopTableItem> toTopTableItem(TableRuntimeMeta meta) {
if (meta == null) {
return Optional.empty();
}
OverviewTopTableItem tableItem = new OverviewTopTableItem(fullTableName(meta));
if (meta.getPendingInput() != null) {
tableItem.setTableSize(meta.getPendingInput().getTotalFileSize());
tableItem.setFileCount(meta.getPendingInput().getTotalFileCount());
tableItem.setHealthScore(meta.getPendingInput().getHealthScore());
}
tableItem.setAverageFileSize(
tableItem.getFileCount() == 0 ? 0 : tableItem.getTableSize() / tableItem.getFileCount());
return Optional.of(tableItem);
}

private String statusToMetricString(OptimizingStatus status) {
if (status == null) {
return null;
Expand All @@ -210,6 +226,15 @@ private String statusToMetricString(OptimizingStatus status) {
}
}

private void resetStatusMap() {
optimizingStatusCountMap.clear();
optimizingStatusCountMap.put(STATUS_PENDING, 0L);
optimizingStatusCountMap.put(STATUS_PLANING, 0L);
optimizingStatusCountMap.put(STATUS_EXECUTING, 0L);
optimizingStatusCountMap.put(STATUS_IDLE, 0L);
optimizingStatusCountMap.put(STATUS_COMMITTING, 0L);
}

private void refreshResourceUsage(long ts) {
List<OptimizerInstance> instances = getAs(OptimizerMapper.class, OptimizerMapper::selectAll);
AtomicInteger cpuCount = new AtomicInteger();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public class OverviewTopTableItem {
private long tableSize;
private int fileCount;
private long averageFileSize;
private int healthScore;
private int healthScore = -1;

public OverviewTopTableItem() {}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public TestOverviewManager(CatalogTestHelper catalogTestHelper, TableTestHelper
public void prepare() {
createDatabase();
createTable();
this.overviewManager = new OverviewManager(10, Duration.ofMinutes(3));
this.overviewManager = new OverviewManager(10, Duration.ofMinutes(0));
this.overviewManager.refresh();
}

Expand Down

0 comments on commit c5f3204

Please sign in to comment.