silentbalanceyh/vertx-zero

View on GitHub
vertx-gaia/vertx-ams/src/main/qas/io/horizon/specification/storage/HBS.java

Summary

Maintainability
A
0 mins
Test Coverage
package io.horizon.specification.storage;

import io.horizon.annotations.reference.One2One;
import io.horizon.specification.app.HUri;

import java.util.List;
import java.util.UUID;
import java.util.concurrent.ConcurrentMap;

/**
 * 「抽象块存储接口」Block Store
 * <hr/>
 * 可搭载不同的块存储器,实现完整的块存储服务,主要服务于分布式文件系统,该接口负责:
 * <pre><code>
 *     1. 分布式块存储
 *     2. 基于底层硬件的块存储
 * </code></pre>
 *
 * @author lang : 2023-05-21
 */
public interface HBS extends HStore {
    /**
     * 块是有序的,所以直接使用 List 类型布局
     *
     * @return {@link List}
     */
    List<HBlock> blocks();

    /**
     * 当前节点的网络标识(分布式专用)
     *
     * @return {@link HUri}
     */
    @One2One
    HUri uri();

    /**
     * 父类
     *
     * @return {@link HBS}
     */
    HBS node();

    /**
     * 块可以支持父子级结构
     *
     * @return {@link ConcurrentMap}
     */
    ConcurrentMap<UUID, HBS> nodes();
}