@Override
    public int appendEntries(List<LogEntry> entries) {
        if (entries == null || entries.isEmpty()) {
            return 0;
        }
        final int entriesCount = entries.size();
        this.readLock.lock();
        Transaction txn = null;
        try {
            checkState();
            txn = beginTransaction();
            for (int i = 0; i < entriesCount; i++) {
                final LogEntry entry = entries.get(i);
                DatabaseEntry key = getKeyDatabaseEntry(entry.getId().getIndex());
                DatabaseEntry value = toDatabaseEntry(entry);
                if (entry.getType() == EntryType.ENTRY_TYPE_CONFIGURATION) {
                    this.confTable.put(txn, key, value);
                }
                this.defaultTable.put(txn, key, value);
            }
            txn.commit();
            syncIfNeed();
            return entriesCount;
        } catch (DatabaseException e) {
            LOG.error("Fail to appendEntries. first one = {}, entries count = {}", entries.get(0), entriesCount, e);
            if (txn != null) {
                txn.abort();
            }
        } finally {
            this.readLock.unlock();
        }
        return 0;
    }
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