A data processing system configured to store a plurality of data entities in volatile memories of multiple computing devices, the data processing system comprising: a first computing device having a first volatile memory configured to store a first data entity, the first data entity associated with a first identifier; and a second computing device, different from and communicatively coupled to the first computing device, having a second volatile memory configured to store a second data entity which is a copy of the first data entity associated with a second identifier, wherein the first computing device is configured to perform: receiving an indication to update the first data entity; after receiving the indication, updating the first data entity in the first volatile memory, and providing to the second computing device an indication to update the copy of the first data entity; and providing an indication that the first data entity has been updated, after receiving information from the second computing device indicating that the copy of the first data entity has been updated in the second volatile memory, wherein: the first data entity is primary data and the second data entity is backup data; and the first volatile memory comprises a first on-heap volatile memory portion and a first off-heap volatile memory portion, and wherein the first computing device is configured to store the primary data in the first on-heap volatile memory portion, and wherein: the first on-heap volatile memory portion is managed using automatic garbage collection; and the first off-heap volatile memory portion is managed using contiguous blocks of memory and without use of automatic garbage collection. a first computing device having a first volatile memory configured to store a first data entity, the first data entity associated with a first identifier; and a second computing device, different from and communicatively coupled to the first computing device, having a second volatile memory configured to store a second data entity which is a copy of the first data entity associated with a second identifier, wherein the first computing device is configured to perform: receiving an indication to update the first data entity; after receiving the indication, updating the first data entity in the first volatile memory, and providing to the second computing device an indication to update the copy of the first data entity; and providing an indication that the first data entity has been updated, after receiving information from the second computing device indicating that the copy of the first data entity has been updated in the second volatile memory, wherein: the first data entity is primary data and the second data entity is backup data; and the first volatile memory comprises a first on-heap volatile memory portion and a first off-heap volatile memory portion, and wherein the first computing device is configured to store the primary data in the first on-heap volatile memory portion, and wherein: the first on-heap volatile memory portion is managed using automatic garbage collection; and the first off-heap volatile memory portion is managed using contiguous blocks of memory and without use of automatic garbage collection. receiving an indication to update the first data entity; after receiving the indication, updating the first data entity in the first volatile memory, and providing to the second computing device an indication to update the copy of the first data entity; and updating the first data entity in the first volatile memory, and providing to the second computing device an indication to update the copy of the first data entity; and providing an indication that the first data entity has been updated, after receiving information from the second computing device indicating that the copy of the first data entity has been updated in the second volatile memory, wherein: the first data entity is primary data and the second data entity is backup data; and the first volatile memory comprises a first on-heap volatile memory portion and a first off-heap volatile memory portion, and wherein the first computing device is configured to store the primary data in the first on-heap volatile memory portion, and wherein: the first on-heap volatile memory portion is managed using automatic garbage collection; and the first off-heap volatile memory portion is managed using contiguous blocks of memory and without use of automatic garbage collection. the first on-heap volatile memory portion is managed using automatic garbage collection; and the first off-heap volatile memory portion is managed using contiguous blocks of memory and without use of automatic garbage collection.