Replication at the partition level is a promising approach for increasing availability in a shared nothing architecture.we propose an algorithm for maintaining replicas with little overhead during normal failure-free processing. our mechanism update the secondary replica in an asynchronous manner: entire dirty pages are sent to the secondary at some time before they are discarded from primary's buffer. a log server node (hardened aginst failures) maintains the log for each node. if a primary node fails, the secondary fetches the log from the log server, applies it to its replica, and brings itself to the primary's last transaction-consistent state. we study the performance of various policies for sending pages to secondary and the corresponding trade-offs between recovery time and overhead during failure-free processing.