A system, comprising: a server, the server adapted to communicate with other servers and clients in a distributed computing environment, each server (810, 870) and each client having a local clock, the server comprising a processor, wherein the processor is configured to: receive a request to write data; obtain a lock to protect access to the data being written; write the data to a memory in the distributed computing environment; and while the data being written is being committed to the memory, assign a timestamp to the written data, the timestamp being a current time reflected by a local clock at the server when the server assigns the timestamp to the written data plus an interval ε that bounds a difference between all local clocks in the distributed computing environment; release the lock on the server after assigning the timestamp; and impose a commit wait time on at least one of a client library, the other servers, or the clients, wherein the commit wait time is a period of time during which the client library, the client, or the other servers must wait before reading the data written by the server until the assigned time is in the past, wherein the assigned time is in the past when the local clock at the client or one of the other servers reading the data reflects a current time that is later than the assigned timestamp. a server, the server adapted to communicate with other servers and clients in a distributed computing environment, each server (810, 870) and each client having a local clock, the server comprising a processor, wherein the processor is configured to: receive a request to write data; obtain a lock to protect access to the data being written; write the data to a memory in the distributed computing environment; and while the data being written is being committed to the memory, assign a timestamp to the written data, the timestamp being a current time reflected by a local clock at the server when the server assigns the timestamp to the written data plus an interval ε that bounds a difference between all local clocks in the distributed computing environment; release the lock on the server after assigning the timestamp; and impose a commit wait time on at least one of a client library, the other servers, or the clients, wherein the commit wait time is a period of time during which the client library, the client, or the other servers must wait before reading the data written by the server until the assigned time is in the past, wherein the assigned time is in the past when the receive a request to write data; obtain a lock to protect access to the data being written; write the data to a memory in the distributed computing environment; and while the data being written is being committed to the memory, assign a timestamp to the written data, the timestamp being a current time reflected by a local clock at the server when the server assigns the timestamp to the written data plus an interval ε that bounds a difference between all local clocks in the distributed computing environment; release the lock on the server after assigning the timestamp; and impose a commit wait time on at least one of a client library, the other servers, or the clients, wherein the commit wait time is a period of time during which the client library, the client, or the other servers must wait before assign a timestamp to the written data, the timestamp being a current time reflected by a local clock at the server when the server assigns the timestamp to the written data plus an interval ε that bounds a difference between all local clocks in the distributed computing environment; release the lock on the server after assigning the timestamp; and impose a commit wait time on at least one of a client library, the other servers, or the clients, wherein the commit wait time is a period of time during which the client library, the client, or the other servers must wait before reading the data written by the server until the assigned time is in the past, wherein the assigned time is in the past when the local clock at the client or one of the other servers reading the data reflects a current time that is later than the assigned timestamp.