Abstract. In traditional client-server databases, a transaction and its requisite data have to be colocated at a single site for the operation to proceed. This has usually been achieved by moving either the data or the transaction. However, the availability of high-bandwidth networking options has led users of today's systems to expect realtime guarantees about the completion time of their tasks. In order to offer such guarantees in a client-server database system, a transaction should be processed by any means that allows it to meet its deadline. To this end, we explore the option of moving both transactions and data to the most promising sites for successful completion. We propose a load-sharing framework that oversees the shipment of data and transactions so as to increase the efficiency of a cluster consisting of a server and a number of clients. Here, efficiency is defined as the percentage of transactions successfully completed within their deadlines by the cluster. The suitability of a client for processing a transaction is measured with respect to the availability of the transaction's required data in its local cache. In addition to the load-sharing algorithm, we use the concept of grouped locks, along with transaction deadline information, in order to schedule the movement of data objects in the cluster in a more efficient manner. We evaluate the real-time processing performance of the client-server architecture using detailed experimental testbeds. Our evaluation indicates that it is possible, in many situations, to achieve better performance than a centralized system.