Implementing Transaction Processing using Undo Logs