A modification of the classic Kung-Robinson timestamp-based concurrency control algorithm is described. The algorithm is based on two innovative techniques: query killing notes and weak serializability of transactions. In particular, it prefers long transactions over short queries and thus reduces considerably the number of transaction rollbacks required. In order to test the validity and evaluate the performance of the proposed algorithm, a simulation program was written and run using a realistic set of transactions. The simulation was performed using Flat Concurrent Prolog (FCP). The advantages of FCP for specifying and implementing parallel algorithms include its refined granularity of parallelism, its declarativeness and conciseness, and its powerful communication and synchronization primitives. Results of algorithm performance are presented.