Patent ID: 9742860
Date: 2017-08-22
CPC Classifications: H04L

Claim:
1. A method for providing a bi-temporal key value cache system, comprising: storing a key directory having a plurality of key elements, wherein each key element points to a data object; receiving a query request having an associated system time for one of said plurality of data objects, said data object being stored in a key value cache comprising bi-temporal data stored in a current table and a historical table and wherein said current table stores current versions of a plurality of data objects and said historical table stores historical versions of the plurality of data objects, each version having an associated input time, wherein the associated input time of the data objects within the current table comprise a start time and are sorted by start time and wherein the associated input time of the data objects within the historical table comprise an end time and are sorted by the end time; responsive to receiving said query request having an associated system time, searching said key directory for at least one key element pointing to said data object, wherein said at least one key element comprises a hash chain element comprising two pointers which point, respectively, to a current version of said data object and at least one historical version of said data object; responsive to finding said at least one key element, searching said current table and said historical table for said data object requested and finding both said current version of said data object and said at least one historical version of said data object; determining from said current version and said at least one historical version of said data object which version is to be returned, wherein said determining comprises identifying a version from said current version and said at least one historical version where the input time associated with the version matches the system time associated with the query request; reading said determined version of said data object having an input time matching the system time from said key value cache using a pointer to said determined version of said data object; and returning said determined version of said data object having an input time matching the system time in response to said query request.