US 12,229,011 B2
Scalable log-based continuous data protection for distributed databases
Akshat Vig, Seattle, WA (US); Parikshit Shivajirao Pol, Seattle, WA (US); Subramanian Sankara Subramanian, Seattle, WA (US); Rama Krishna Sandeep Pokkunuri, Seattle, WA (US); Rajaprabhu Thiruchi Loganathan, Issaquah, WA (US); and Harini Chandrasekharan, Seattle, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Sep. 18, 2019, as Appl. No. 16/575,296.
Application 16/575,296 is a continuation of application No. 14/977,472, filed on Dec. 21, 2015, granted, now 10,423,493.
Prior Publication US 2020/0012568 A1, Jan. 9, 2020
Int. Cl. G06F 11/14 (2006.01); G06F 16/18 (2019.01); G06F 16/23 (2019.01)
CPC G06F 11/1451 (2013.01) [G06F 16/1815 (2019.01); G06F 16/2322 (2019.01)] 17 Claims
OG exemplary drawing
 
1. A method, comprising:
performing, at one or more computing devices:
updating a data object as a portion of a committed storage state at a network-accessible service, wherein the network-accessible service provides configurable data protection for individual data objects of the committed storage state, wherein the data protection for a particular data object, when enabled, stores a plurality of versions, including a current version and one or more previous versions, of the particular data object as part of the committed storage state, and wherein, subsequent to updating the data object, the current version of the data object is accessible to one or more clients of the network-accessible service and data protection for the data object is disabled;
receiving a request specifying that data protection for the data object, currently disabled, is to be enabled to provide for a restore of the data object; and
in response to receiving the request, enabling data protection for the data object, comprising initiating:
(a) insertion, into a journal, of one or more records indicating respective writes directed to the data object; and
(b) creation of one or more snapshots of the data object;
wherein a particular record of the one or more records inserted into the journal indicating a particular write of the respective writes comprises both:
one or more before-values for the data object modified by the particular write; and
one or more after-values for the data object modified by the particular write, in the same particular record.