@Override
    public long getFirstLogIndex() {
        this.readLock.lock();
        try {
            if (this.hasLoadFirstLogIndex) {
                return this.firstLogIndex;
            }
            checkState();
            try (Cursor cursor = this.defaultTable.openCursor(null, new CursorConfig());) {
                DatabaseEntry key = new DatabaseEntry();
                DatabaseEntry data = new DatabaseEntry();
                OperationStatus operationStatus = cursor.getFirst(key, data, LockMode.DEFAULT);
                if (OperationStatus.SUCCESS.equals(operationStatus)) {
                    final long firstLogIndex = Bits.getLong(key.getData(), 0);
                    saveFirstLogIndex(firstLogIndex);
                    setFirstLogIndex(firstLogIndex);
                    return firstLogIndex;
                }
            }
        } finally {
            this.readLock.unlock();
        }
        return 1L;
    }
First log index and last log index key in configuration column family.
jraft-extension/bdb-log-storage-impl/src/main/java/com/alipay/sofa/jraft/storage/impl/BDBLogStorage.java