Many cloud providers have multiple data centers (DCs) in multiple locations and they offer a range of storage services, each of these offers different tradeoffs between cost, performance, and durability. Application developers typically need to write code for a data placement policy in multiple DCs and multiple storage tiers based on their desired goals. However, writing code for diverse data placement policies is not an easy task because (of)
Wiera is a policy driven key-value storage system for geo-distributed cloud environment built upon our storage system called Tiera. A Tiera instance is used as a local Instance to handle multiple storage tiers within a DC and a Wiera instance logically contains multiple local instances on multiple DCs. Wiera enables an application to specify flexible storage instances that comprise of different kinds of storage in different DCs (e.g., Amazon S3 in US East, Windows Azure storage in US West, Edge Storage etc.) and data placement policy achieve the desired tradeoff between cost, durability, and performance. Wiera also enables an application to handle dynamics from cloud infrastructure and applications by changing data placement policy at run-time.
The Wiera User Interface (WUI) provides an API to applications to manage Wiera instances. The API allows applications to: launch multiple local instances as part of a Wiera instance with a global policy specification, stop instances, and get the list of currently running instances.
Global Policy Manager (GPM) creates a new policy for a Wiera instance. It stores metadata for the policy and executes a Local Instance Manager (LIM) to manage the local instances which belong to the Wiera instance.
Local Server Manager (TSM) manages local servers at different locations, which spawn and remove local instances based on application requests. For instance, if the application calls startInstances through WUI to start local instances at Region 1 and Region 2, LSM will direct the local servers in Region 1 and Region 2 to each spawn a new local instance.
Data Placement Manager (TripS) finds the optimized data placement (DC locations and storage tiers) with given inputs e.g., applications' goals, cost information, workload information and latency information to relax application developers' burdens to find optimized data placement in a multi-cloud environment. Please visit TripS project page for more detail.