19) Clarification of flush command behavior.
SunJiangDong asks: A flush command to a RA is received while the last operation of the same RA is not finished yet. How to deal with this situation? flush at once or flush until the last operation is finished? Now the choice is: execute "flush" operation until the last operation is finished.
AndrewBeekhof points out that since the LocalResourceManager is single threaded, this should not be an issue as (with the exception of monitor()) it will have always finished the current action before it gets the flush operation. If other asynchronous operations (from the point-of-view of the LocalResourceManager) are added, we should readdress this issue at that time.
AlanRobertson begs to both disagree and clarify. Although the LocalResourceManager is not threaded, it can have many operations going on at once in child processes for different ResourceInstances, and several queued for a given ResourceInstance. From the point of view of the user interface to the LocalResourceManager, almost all operations are asynchronous. So, the question is not moot. However, there are probably only two operations which can be safely interrupted. Those are status and monitor. All other interruptions risk damaging the integrity of the resource. Therefore the LRM should either not interrupt any operations at all, or only interrupt status and monitor operations.
AlanRobertson also suggests that other issues get separate issue files, so we can move this one to closed status, if there are no disagreements. The other cases where we had several sub-issues came out as a result of the flow of the discussion, not by intention from the beginning.
AndrewBeekhof, while possibly choosing a sub-optimal way to express it, agrees with AlanRobertson that the LRM should either not interrupt any operations at all, or only interrupt status and monitor operations.