public void start() {
        super.start();
        this.lock.write(() -> {
            if (this.running.compareAndSet(false, true)) {
                Path path = this.path;
                if (path == null) {
                    throw new IllegalStateException("FileDatabaseHistory must be configured before it is started");
                }

                try {
                    if (!this.storageExists()) {
                        if (path.getParent() != null && !Files.exists(path.getParent(), new LinkOption[0])) {
                            Files.createDirectories(path.getParent());
                        }

                        try {
                            Files.createFile(path);
                        } catch (FileAlreadyExistsException var3) {
                            // do nothing
                        }
                    }
                } catch (IOException var4) {
                    throw new DatabaseHistoryException(
                            "Unable to create history file at " + path + ": " + var4.getMessage(), var4);
                }
            }

        });
    }
A {@link DatabaseHistory} implementation that stores the schema history in a local file.
inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/utils/InLongDatabaseHistory.java