A method to operate a transaction in a massively parallel processing, MPP, database comprising a coordinator, a global transaction manager and a plurality of data nodes, the method comprising the following steps: transmitting a reader timestamp request and a global transaction identification number, GXID, request from the coordinator to the global transaction manager, GTM; generating a reader timestamp and a GXID with the global transaction manager and transmitting the reader timestamp and the GXID to the coordinator, wherein the reader timestamp indicates a first time; transmitting a plurality of transaction requests from the coordinator to a plurality of data nodes, wherein a first transaction request of the plurality of transaction requests comprises the reader timestamp; entering the GXID and the reader timestamp in a local transaction table of each data node to produce a transaction entry; performing a transaction with each data node in accordance with the transaction request, producing a transaction result and transmitting the transaction result to the coordinator; wherein the method further comprises: transmitting a plurality of prepare commit requests from the coordinator to the plurality of data nodes; transmitting a plurality of prepare commit responses from the plurality of data nodes to the coordinator; transmitting a commit timestamp request from the coordinator to the GTM in response to the reception of the plurality of prepare commit responses; generating a commit timestamp with the GTM, wherein the commit timestamp indicates a second time associated with the transaction result, wherein the second time is after the first time and transmitting the commit timestamp to the coordinator; transmitting a plurality of data node commit requests from the coordinator to the plurality of data nodes, wherein a first commit request of the plurality of commit requests comprises the commit timestamp; replacing the reader timestamp in the transaction entry in each data node with the commit timestamp, storing the commit timestamp in a log record; and transmitting a commit response to the coordinator; transmitting a commit report from the coordinator to the GTM. transmitting a reader timestamp request and a global transaction identification number, GXID, request from the coordinator to the global transaction manager, GTM; generating a reader timestamp and a GXID with the global transaction manager and transmitting the reader timestamp and the GXID to the coordinator, wherein the reader timestamp indicates a first time; transmitting a plurality of transaction requests from the coordinator to a plurality of data nodes, wherein a first transaction request of the plurality of transaction requests comprises the reader timestamp; entering the GXID and the reader timestamp in a local transaction table of each data node to produce a transaction entry; performing a transaction with each data node in accordance with the transaction request, producing a transaction result and transmitting the transaction result to the coordinator; wherein the method further comprises: transmitting a plurality of prepare commit requests from the coordinator to the plurality of data nodes; transmitting a plurality of prepare commit responses from the plurality of data nodes to the coordinator; transmitting a commit timestamp request from the coordinator to the GTM in response to the reception of the plurality of prepare commit responses; generating a commit timestamp with the GTM, wherein the commit timestamp indicates a second time associated with the transaction result, wherein the second time is after the first time and transmitting the commit timestamp to the coordinator; transmitting a plurality of data node commit requests from the coordinator to the plurality of data nodes, wherein a first commit request of the plurality of commit requests comprises the commit timestamp; replacing the reader timestamp in the transaction entry in each data node with the commit timestamp, storing the commit timestamp in a log record; and transmitting a commit response to the coordinator; transmitting a commit report from the coordinator to the GTM. transmitting a plurality of prepare commit requests from the coordinator to the plurality of data nodes; transmitting a plurality of prepare commit responses from the plurality of data nodes to the coordinator; transmitting a commit timestamp request from the coordinator to the GTM in response to the reception of the plurality of prepare commit responses; generating a commit timestamp with the GTM, wherein the commit timestamp indicates a second time associated with the transaction result, wherein the second time is after the first time and transmitting the commit timestamp to the coordinator; transmitting a plurality of data node commit requests from the coordinator to the plurality of data nodes, wherein a first commit request of the plurality of commit requests comprises the commit timestamp; replacing the reader timestamp in the transaction entry in each data node with the commit timestamp, storing the commit timestamp in a log record; and transmitting a commit response to the coordinator; transmitting a commit report from the coordinator to the GTM.