The two-phase commit protocol is widely used in distributed database systems to ensure the atomicity of distributed transaction. The traditional two-phase commit protocol fails to solve the blocking problem when the coordinator is out of service. Three-phase non-blocking commit protocol was designed to solve the blocking problem of two phase commit protocol, but it brought heavy communication and log overhead between sites. In todays distributed database systems, due to the growing large number of sites, the failure of single point become more and more often. The traditional commit protocol has become a bottleneck of the system. In this paper, a new non-blocking two-phase commit protocol is proposed to solve the blocking problem. Compared to the traditional three-phase commit protocol, the proposed protocol reduces the log and communication overhead. Theoretical proof has been given to show that the proposed commit protocol is non-blocking and meet the ACID properties under variety of failure conditions.