A computer-implemented method of managing digital data for a plurality of tenants to software instances, each tenant comprising a group of users who share a common access with a specific set of privileges to a software instance of an application, wherein each of the instances is implemented on at least one of a plurality of instance nodes of a server system in communication with each other, and wherein the managing includes managing multiversion concurrency control of different instances of the digital data which are stored in one or more storage device locations communicatively coupled to the server system as records, each of which is identified by a key (151 to 154; 171 to 178), the key including identification of one or more rows in a table of a database, wherein multiple versions of a record can have identical keys, wherein uncommitted transactions (146 to 149) and record versions (161 to 168) are stored in said one or more storage locations, said uncommitted transactions and record versions including transaction header identifying data wherein setting a transaction counter number in the transaction header identifying data makes the transaction visible and/or recognizable to queries received by the server system and each of the uncommitted transactions includes a key and a value, wherein, when an uncommitted transaction (146 to 149) is committed, the header of the transaction is updated with an assigned transaction counter number and a version of a record is stored with the key and value from the transaction with the record versions (161 to 168) in the one or more storage device locations, the method comprising: when a transaction header identifying data is updated with the assigned transaction counter number at the server system, using the updated transaction header identifying data as an instance of multiversion concurrency control information for identifying the state of the records and/or uncommitted transactions at a particular point in time by a received query; receiving, at the server system, a query regarding a transaction counter number; performing, at the server system, a key lookup in the table of the database based on the received query; when the key lookup encounters an uncommitted row, accessing, at the one or more storage device locations communicatively coupled to the server system, a corresponding transaction header identifying data to identify a data array element in said one or more storage locations to determine whether a transaction number has been assigned to the row, and determine its corresponding transaction counter number; and stamping, at the server system, the transaction counter number on the row version record. wherein uncommitted transactions (146 to 149) and record versions (161 to 168) are stored in said one or more storage locations, said uncommitted transactions and record versions including transaction header identifying data wherein setting a transaction counter number in the transaction header identifying data makes the transaction visible and/or recognizable to queries received by the server system and each of the uncommitted transactions includes a key and a value, wherein, when an uncommitted transaction (146 to 149) is committed, the header of the transaction is updated with an assigned transaction counter number and a version of a record is stored with the key and value from the transaction with the record versions (161 to 168) in the one or more storage device locations, the method comprising: when a transaction header identifying data is updated with the assigned transaction counter number at the server system, using the updated transaction header identifying data as an instance of multiversion concurrency control information for identifying the state of the records and/or uncommitted transactions at a particular point in time by a received query; receiving, at the server system, a query regarding a transaction counter number; performing, at the server system, a key lookup in the table of the database based on the received query; when the key lookup encounters an uncommitted row, accessing, at the one or more storage device locations communicatively coupled to the server system, a corresponding transaction header identifying data to identify a data array element in said one or more storage locations to determine whether a transaction number has been assigned to the row, and determine its corresponding transaction counter number; and stamping, at the server system, the transaction counter number on the row version record. when a transaction header identifying data is updated with the assigned transaction counter number at the server system, using the updated transaction header identifying data as an instance of multiversion concurrency control information for identifying the state of the records and/or uncommitted transactions at a particular point in time by a received query; receiving, at the server system, a query regarding a transaction counter number; performing, at the server system, a key lookup in the table of the database based on the received query; when the key lookup encounters an uncommitted row, accessing, at the one or more storage device locations communicatively coupled to the server system, a corresponding transaction header identifying data to identify a data array element in said one or more storage locations to determine whether a transaction number has been assigned to the row, and determine its corresponding transaction counter number; and stamping, at the server system, the transaction counter number on the row version record.