trino-435:prune worker catalogs

一、前言

上一章节我们dynamic catalog restful API开发,其中catalog删除API仅仅在coordinator节点操作就可以了,那么woker几点的catalog是怎么与worker几点保持一致的呢?这一章节就重点介绍prune worker catalogs是如何做到的。

二、coordinator节点CatalogPruneTask类

在该类中存在如下的定时调度任务方法:

@PostConstruct
    public void start()
    {
        if (enabled && !started.getAndSet(true)) {
            executor.scheduleWithFixedDelay(() -> {
                try {
                    pruneWorkerCatalogs();
                }
                catch (Throwable e) {
                    // ignore to avoid getting unscheduled
                    log.warn(e, "Error pruning catalogs");
                }
            }, updateInterval.toMillis(), updateInterval.toMillis(), MILLISECONDS);
        }
    }

下面的方法将coordinator节点中active catalogs发送给worker节点去触发prune,修剪worker节点的catalog调用的接口为:/v1/task/pruneCatalogs&#

你可能感兴趣的:(【trino】,大数据)