1. A method for recovering a resource after a failure of a first cache that holds a dirty copy of said resource, the method comprising the steps of: retaining a first copy of the resource in said first cache while transferring a second copy of the resource from said first cache to a second cache without first durably storing said resource from said first cache to a persistent storage; determining whether the failed cache held the latest version of the resource; if the failed cache held the latest version of the resource, applying a recovery log of the failed cache to a previous version of the resource to reconstruct the latest version of the resource.