Abstract:
A selective data restoration technique is disclosed. A request to recover data in a dataset is received along with an identifier of a particular portion of the data to be recovered. The request may specify a time that indicates a desired recovery state (e.g., recover the values as they were at the time). Change data is determined for the specified time. For example, data stream filters generate recovery data by applying filters (e.g., keys) to a time window batch of the stream data. The stream data may correspond to changes to a data set, and the recovery data may correspond to only a portion of the dataset (e.g., a portion of a table). The system performs a recovery action, based on the recovery data, using the recovery data to automatically restore data in a data store, or providing the recovery date to the requesting entity, for example.
Abstract:
Various systems and methods to efficiently store backups of partitions of a database are disclosed. An indication to take a current snapshot of a partition of the database is received. A log size and operation type statistics are determined for a portion of the change log for the partition. A snapshot type is determined for the partition based at least in part on the log size and the operation type statistics, where the snapshot type specifies a log-based snapshot or a full snapshot. The snapshot is stored as metadata indicating a point in the change log if the determined snapshot type is log-based snapshot or stored as complete data of the partition if the determined snapshot type is full snapshot.
Abstract:
Customers of a shared-resource environment can provision resources in a fine-grained manner that meets specific performance requirements. A customer can provision a data volume with a committed rate of Input/Output Operations Per Second (IOPS) and pay only for that commitment (plus any overage), and the amount of storage requested. The customer will then at any time be able to complete at least the committed rate of IOPS. If the customer generates submissions at a rate that exceeds the committed rate, the resource can still process at the higher rate when the system is not under pressure. Even under pressure, the system will deliver at least the committed rate. Multiple customers can be provisioned on the same resource, and more than one customer can have a committed rate on that resource. Customers without committed or guaranteed rates can utilize the uncommitted portion, or committed portions that are not being used.
Abstract:
A geographically distributed system using a hybrid, multi-master design is disclosed. The system may use global tables, for which both reads and writes may be performed locally, but with a single region serving as a master region. All strongly consistent reads and writes may be sent to the master region, whereas eventually consistent reads and writes may be performed in any region with a replica. The master region may not be statically assigned but may move from region to region. The master region may be assigned manually by client preference or may be assigned and updated automatically based on the time of day or workload characteristics.
Abstract:
A forking coordinator of a journal-based multi-data-store database determines that a forking criterion for a first journal has been met. The coordinator stores an indication that processing of transaction requests directed to a particular subset of the database is suspended. The coordinator instantiates a second journal for storing committed transaction entries for the particular subset. Metadata of the second journal indicates that transaction entries with sequence numbers in a particular range are stored in the first journal. The coordinator stores an indication that transaction processing associated with the particular subset of the system is to be resumed using the second journal.
Abstract:
A journal manager of a multi-data-store storage appends a committed transaction entry to a journal, indicating a state change which has been approved for commit using an optimistic concurrency control algorithm. A first representation of the state change is generated and stored at one materialization node. A different representation of the same state change, comprising at least one attribute for which a value is not included in the first representation, is generated and stored at a different materialization node.
Abstract:
A request to copy at least a portion of a first network that includes a first set of devices is received, the request including one or more filtering criteria, with at least one of the one or more filtering criteria specifying a tag assigned to a device of the first set of devices. At least the portion of the first network is copied by causing the system to create, according to the one or more filtering criteria, a second network by causing a second set of devices to be configured to be duplicative of devices of the first set of devices that are assigned the tag specified by the filtering criteria.
Abstract:
Systems, methods, and computer-readable media for network routing metering are disclosed. In some embodiments, various changes to the routes, and other actions requested by a computer system, physical or virtual, can be metered. Those actions may be performed and later rated in order to determine what amount, if any, to charge an account associated with the requesting network participant system. The network participant system can be billed based on the activities performed on its behalf. Therefore, even if a network is performing poorly and requires more resources that would normally be allowed by a neighboring router, if the network owner pays to have these requests performed, then the embodiments herein can allocate more resources to supporting the network's rapidly changing network.
Abstract:
Techniques are described for managing access of executing programs to non-local block data storage. In some situations, a block data storage service uses multiple server storage systems to reliably store copies of network-accessible block data storage volumes that may be used by programs executing on other physical computing systems, and snapshot copies of some volumes may also be stored (e.g., on remote archival storage systems). A group of multiple server block data storage systems that store block data volumes may in some situations be co-located at a data center, and programs that use volumes stored there may execute on other computing systems at that data center, while the archival storage systems may be located outside the data center. The snapshot copies of volumes may be used in various ways, including to allow users to obtain their own copies of other users' volumes (e.g., for a fee).
Abstract:
An opportunistic throttling approach can be used for customers of shared resources in a multi-tenant environment. Each customer can have a respective token bucket with a guaranteed fill rate. When a request is received for an amount of work to be performed by a resource, the corresponding number of tokens are obtained from, or charged against, a global token bucket. If the global bucket has enough tokens, and if the customer has not exceeded a maximum work rate or other such metric, the customer can charge less than the full number of tokens against the customer's token bucket, in order to reduce the number of tokens that need to be taken from the customer bucket. Such an approach can enable the customer to do more work and enable the customer's bucket to fill more quickly as fewer tokens are charged against the customer bucket for the same amount of work.