Recently I've learned *zookeeper* standalone server souce code, now I know each request will process by *PrepRequestProcessor* -> *SyncRequestProcessor* -> *FinalRequestProcessor*, I found that *PrepRequestProcessor* will create a *changeRecord* and put it into *outstandingChanges* and *outstandingChangesForPath* datastructure, then after *FinalRequestProcessor* process this request it will remove the *changeRecord* from the two datastructures。
When process multi request, zk will gets *pendingRecord* from these datastructures but do nothing with this. Other than this, I can't find any code to operate the two datastructures. What confused me is why *zookeeper* developer add this datastructures, I think if remove datastructures everything will be ok.
