Method and apparatus of distributing data in partioned databases operating on a shared-nothing architecture
View Patent ↗The invention relates to a method and apparatus of distributing data in portioned databases operating on a shared-nothing architecture. The invention provides two independent streams of data, where a first stream sends table data, and the second stream sends LOB data, to a receiving partition. The receiving partition re-couples the LOB data with the table data. Using two independent streams to distribute LOB data can increase data redistribution since large amounts of input/output is not performed to handle the sending of LOB data in a coupled fashion.
1. A method of distributing data in partitioned databases operating on a shared-nothing architecture, the method comprising:
assigning an identifier to a large-object (LOB) data, the identifier including a partition ID, a list ID, a record number, and a LOB row value ID;
transmitting the LOB data and the identifier to a receiving database through a first data stream;
transmitting a table data to the receiving database through a second data stream, the second data stream independent from the first data stream and parallel with the first data stream;
receiving the LOB data, the identifier, and the table data at the receiving database;
checking a mapping table at the receiving database to determine if the identifier is present in the mapping table;
coupling the LOB data with a row data associated with the identifier if the identifier is present in the mapping table;
creating an entry in the mapping table associated with the identifier if the identifier is not present in the mapping table; and
allocating memory space to each LOB value associated with each data record on the list ID;
wherein the first data stream and the second data streams are transmitted substantially simultaneously and wherein the identifier is used to re-couple transmitted data.