1. A method for retrieving consistent datasets, comprising: collecting a first batch of data by a server from one or more tenant applications and associated with a first period of time, wherein the first batch of data includes one or more datasets; updating the first batch of data in a batch log, wherein the updating occurs during and after the collection of the first batch of data; storing the first batch of data in memory; marking the first batch of data as the current batch of data in the batch log; collecting a second batch of data by the server from the one or more tenant applications and associated with a second period of time subsequent to the first period of time, wherein the second batch of data includes one or more datasets, and wherein one or more the datasets of the second batch of data are distinct from the datasets of the first batch of data; updating the second batch of data in the batch log, wherein the updating occurs during and after the collection of the second batch of data; storing the second batch of data in memory; marking the second batch of data as the current batch of data in the batch log; detecting a rollback event indicating that a current dataset or a current batch of data should not be used; marking the first batch of data as the current batch of data after the rollback event; retrieving the first batch of data from memory using the batch log; and overwriting the current batch of data corresponding to the second batch of data that should not be used with the retrieved first batch of data from memory.