private void refreshSchema() throws Exception {
        logger.debug("refresh table schema. [table: {}]", name);
        byte[] bytes = zkClient.getData().forPath(zkTablePath);
        if (bytes == null) {
            throw new IllegalStateException(String.format("Table [%s] schema not found", name));
        }
        TableSchema newSchema = JsonUtil.fromJson(bytes, TableSchema.class);
        if (schema == null || !schema.equals(newSchema)) {
            schema = newSchema;
            if (realtimeSegmentPool != null) {
                realtimeSegmentPool.updateSchema(newSchema);
            }
        }
    }
A table combines realtime segments and history segments.
indexr-server/src/main/java/io/indexr/server/HybridTable.java