Hi,

The Quota stats are updated by calling updateQuotaStat() API in the
FinalRequestProcessor. However, the updateQuotaStat() API only updates the
in-memory data tree.

In the scenario that a ZK server crashed right before the updateQuotaStat
is called or a snapshot was taken, are we going to have the following data
inconsistency issue?

1. the quota stats is  inaccurate in the crashed server as the
write transaction has been logged by  the SyncRequestProcessor but the
quota stats update was lost?

2. the quota stats will be inconsistent across different servers as the
quota stats persisted in other servers via snapshot but not the crashed one


updateQuotaStat() code snippet
========================
synchronized (statNode) {
            updatedStat = new StatsTrack(statNode.data);
            updatedStat.setCount(updatedStat.getCount() + countDiff);
            updatedStat.setBytes(updatedStat.getBytes() + bytesDiff);

            statNode.data = updatedStat.getStatsBytes();
        }

Any thoughts?

Thanks,

Li

Reply via email to