Partial compensation and complete compensation are two common failure recovery methods for transactional workflows.For complex-structured long running transactional workflows
the compensation cost may be unacceptable since the workflow must be reversed to a previously defined activity or even to the start point to ensure semantic atomicity.We presented a conceptual model for transactional workflow.Based on the model
we proposed a hierarchical failure recovery algorithm.Different from traditional methods
it supports both transactional and non-transactional sub processes
and sub processes of a workflow are nestedly structured.The algorithm determines the end compensation point dynamically in a hierarchical bottom-up manner
so the compensation sphere is confined and compensation costs are reduced.We proved the correctness of the proposed algorithm.Performance analyses showed that it is more preferable than non-hierarchical methods.The algorithm has been applied into InforFlow
a workflow management system prototype.The implementation issues were illustrated.