Patent ID: 8719254

Claim:
At a computer system including at least one processor and a memory, in a computer networking environment including a plurality of computing systems, a computer-implemented method for replicating database tables for efficient data querying, the method comprising: an act of accessing an existing, original time-based database table that includes a plurality of rows and one or more columns, each row being assigned a corresponding time stamp, the plurality of rows being sorted within the time-based database table according the corresponding time stamp of each row; an act of receiving an indication that an index table, corresponding to the time-based database table, is to be indexed according to a user-specified index column selected from among the one or more columns; and an act of copying at least a portion of each of the plurality of rows of the time-based database table into the index table, the index table including a plurality of index table rows that are each assigned a corresponding partition key, the plurality of index table rows being sorted according to partition key, wherein copying the plurality of rows of the time-based database table into the index table includes, for each of the plurality of rows of the time-based database table: concatenating the corresponding time stamp of each row with a value of the corresponding user-specified index column that corresponds to the row; and storing at least a portion of data of the row within a corresponding index table row of the plurality of index table rows, the corresponding index table row having a value comprising the corresponding partition key for the index table row that comprises the concatenation of the corresponding time stamp of the row with the value of the corresponding user-specified index column that corresponds to the row, wherein storing at least a portion of data of the row within a corresponding index table row of the plurality of index table rows includes: determining that two or more rows of the plurality of rows of the time-based database table have the same column value for the user-specified index column; generating a serialized string for the two or more rows that have the same column value for the user-specified index column; compressing the serialized string to generate a binary chunk for the two or more rows that have the same column value for the user-specified index column; and storing the binary chunk within a column entry of the corresponding index table row.