| CPC G06F 16/221 (2019.01) [G06F 16/2282 (2019.01); G06F 16/24549 (2019.01)] | 17 Claims |

|
1. A computer-implemented method of updating data, the method comprising:
obtaining a columnstore comprising a plurality of columns and a plurality of rows, wherein the columnstore is segmented into a plurality of segments and each of the plurality of columns is segmented into a plurality of column segments, wherein each segment of the columnstore comprises a plurality of column segments of the respective columns and each column segment of a respective column comprises a plurality of rows;
receiving a query comprising a parameter;
determining a key corresponding to the parameter;
identifying a mapping structure, from a plurality of mapping structures, relating to said key, wherein the identified mapping structure corresponds to a respective segment of the columnstore;
interrogating the identified mapping structure to determine a value corresponding to the key, wherein the value identifies an entry of an index table of a plurality of index tables that corresponds to a first said respective segment of the columnstore, wherein the identified entry of the index table identifies a row of a first column segment of the first said respective segment of the columnstore that contains a first entry containing data matching a value of the parameter of the query and the row having other entries in different one or more column segments, respectively;
moving the identified row to a rowstore;
manipulating the data of the first entry in the rowstore based upon an update request;
activating an access lock on an identifier of the row whilst the data of the first entry is manipulated in the rowstore, whereby rows other than the identified row for which the access lock has been activated are available for access such that other concurrent queries are allowed to access data within entries of other rows in the segment of the columnstore from which the identified row was moved;
releasing the access lock after the manipulating is completed; and
in response to the manipulating, updating a status of the identified row to indicate that updates to the retrieved data of the first entry of the identified row are located in the rowstore.
|