Patent ID: 7421440

Claim:
A method of transferring batches of data to a target database in an environment of multiple processors, the method comprising: receiving ordered rows for insertion into a database; loading the ordered rows into batch tables located in cache, the batch tables organized as parent tables, child tables, and tables without a dependency; entering the parent batch tables and the tables without a dependency into a ready queue; entering the child batch tables into a waiting pool; queuing the parent batch tables and the tables without a dependency in the ready queue for transfer to the database; notifying an available processor among the multiple processors that tables in the ready queue are ready for transfer; transferring the parent batch tables and the tables without a dependency in the ready queue to the database; moving the child batch tables from the waiting pool to the ready queue when the child batch tables in the waiting pool have no corresponding parent present in the ready queue; transferring the child batch tables from the ready queue to the database, wherein any batch table moved to the ready queue is available for transfer to the database; wherein transferring the parent batch tables and the child batch tables in the ready queue comprises simultaneously transferring at least two batch tables to the database using multiple processors and multiple threads, and wherein the transfer of the parent batch tables and the transfer of the child batch tables is accomplished using a database manipulator that encapsulates the logic of deciding which database command to use for each individual table, and wherein the database manipulator provides feedback concerning a status of a transferred batch table such that the child batch tables are moved from the waiting pool to the ready queue during a transfer.