SlideShare a Scribd company logo
Consistency-Based
Service Level Agreements
for Cloud Storage
Douglas B. Terry, Vijayan Prabhakaran, Ramakrishna Kotla, Mahesh Balakrishnan, Marcos K.
Aguilera, Hussam Abu-Libdeh†
Microsoft Research Silicon Valley †Cornell University
ACM SOSP 2013
Presented by Yongrae Jo, System software lab. at POSTECH
Motivation
2
Single ideal consistency
(weak ~ strong)
Multiple alternative consistency
(depending on app demand)
Cloud service provider
Guaranteed
by SLA
Guaranteed
by system design(DB)
Consistency vs Availability / Performance Single & Fixed consistency
to developer
Multiple & alternative
consistency to developer
Pileus
• Storage system for cloud
• Replicated key/value store with consistency-based SLAs
• Provides a broad set of consistency choices
• that lie between strong and eventual consistency
• avoiding single-ideal consistency
• Satisfies application-specific consistency /
latency demand
• Latency-favoring applications (e.g., shopping cart)
• Consistency-favoring applications (e.g., bank)
• Exports system APIs to application 3
Consistency Levels
Strong
consistency
Eventual
consistency
Latency-favoring applications
• Shopping app
• Real-time Multiplayer games
• Computer-supported collaborative work
• Data analytics
Consistency-favoring applications
• Bank
• Calendar
• web-based e-mail
Applications with Trade-offs
• Web-browser
• Display local cache first,
and then load accurate
data as it arrives
4
System API
Interface with traditional
key-value cloud storage
(e.g., Table op., Get, Put)
Consistency Guarantees
• Consistency choices
• Service level agreements
Default
sla
condition code
(Consistency + SLA met?)
5
System API
Interface with traditional
key-value cloud storage
(e.g., Table op., Get, Put)
Consistency Guarantees
• Consistency choices
• Service level agreements
Default
sla
condition code
(Consistency + SLA met?)
6
Consistency Guarantees
on Get(s, key, sla)
Types Return value of Get(key)
Strong Consistency
Return value of last preceding Put(key)
performed by any client
Casual Consistency
Return value of latest casually preceding
Put(key)
Bounded Staleness(t) Return value that is stale at most t seconds
Read My Writes
Return value of latest Put(key) in client session
or a later value
Monotonic Reads
Return same or later value as earlier Get(key)
in client session
Eventual Consistency
Return value written by any Put(key)
(but, expected to return the latest value later)
7
Example evaluation on different
consistency guarantees
8
one client in each
country
(Secondary) (Secondary) (N/A)
Service Level Agreement
• An ordered list of subSLAs
• subSLA
• A pair of Consistency / Latency target with application-specific
utility
Most preferable
Relative
importance
Less preferable
9
Other SLA Examples
10
SLA Failure & Checking
• Satisfying SLA can fail due to
• configuration of replicas and network conditions
• poor decision based on inaccurate information
• Checking SLA Failure from the return value(i.e.,
condition code) of Get
• Application can take different actions based on the
consistency of the returned data.
Def. Unavailability of Pileus
The inability to retrieve the desired data with acceptable consistency
and latency as defined by the SLA
11
Design and Implementation
• Architecture
• Client-side
• Consistency-specific node selection
• Monitoring storage nodes
• Client-side SLA enforcement
• Choosing a target subSLA
• Determining which subSLA was met
12
Pileus system
API
BeginSession (SLA)
BeginTx (SLA)
Put (key, value)
Get (key, SLA)
returns value,
consistency
EndTx ()
EndSession ()
13
Components
• Storage Node (or Secondary Node)
• Periodically fetches update results from primary node
• Primary Node
• One or some of storage node
• Holds master data(i.e., up-to-date data)
• Run replication protocol (e.g., consensus)
• (Client-side) Monitor
• Tracks the amount that storage nodes lag behind the primary node
• Measures roundtrip latencies between clients and storage nodes
• Client library
• Exports Pilleus APIs to application
14
Consistency-specific node selection
• How to select a node which a Get operation should be
sent?
• For desired consistency guarantee (Is it sufficiently up-to-date?)
• Minimum acceptable read timestamp
• Serves as a decision point between consistency guarantees
• Indicates an amount of lag of each node
15
Previous Object Versions
(in current session)
Key
(being read)
Minimum Acceptable
Read Timestamp
Consistency
guarantee
(Per) Node
high timestamp
Node Selection
Consistency-specific node selection
16
Types Minimum Acceptable Read Timestamp
Strong Consistency
At least as large as the update timestamp of
the latest Put to the key that is being Get
Casual Consistency
the maximum timestamp of any object that was
previously read or written in this session
(already casual-ordered by primary)
Bounded Staleness(t) Current time – bound time t
Read My Writes
Maximum timestamp of any previous Puts to
the key being accessed in current session
Monotonic Reads
The recorded timestamp for the key being
accessed in the Get of current session
Eventual Consistency 0
Consistency-specific node selection
: Example
17
This node can provide all
consistency guarantee except
strong and casual
consistency
Read-my-writes vs. Monotonic Reads
18
Read-my-writes
(client session)
Monotonic reads
(client session)
Put(k), t1 Get(k), t2 Put(k), t3 Get(k), t4 Get(k), t5
Put(k), t1 Get(k), t2 Put(k), t3 Get(k), t4 Get(k), t5
Minimum Acceptable
Read Timestamp
Minimum Acceptable
Read Timestamp
Monitoring Storage Nodes
• (client-side) Monitor probes latency / timestamp of
each node
• Monitor
• collects measurements in a sliding window (last few minutes)
• returns three probability estimates based on the recorded
information
PNodeCons (node, consistency, key)
Return probability that a node follows a
sufficiently up-to-date value
PNodeLat (node, latency)
Return probability that a node responds
within a given time
PNodeSla (node, consistency, latency,
key)
Return probability that a node satisfy
SLA (=PNodeCons * PNodeLat
19
Client-side SLA Enforcement
• How can we satisfy SLA effectively?
• Simple, but flawed method for SLA enforcement
• Broadcast Get op. to all replicas
• Incurs high cost (e.g., network resource, charging per byte)
• SLA Enforcement by Client Library
• Chooses a node group that can meet SLA
• Responsible for maximizing the expected utility
• Methods
• Choosing a target subSLA
• Determining which subSLA was met
20
// Choosing a target SLA and nodes
// subSLA that maximizes the expected utility
// Node group that clients will contact
21
Find targetSLA and node
group that best satisfies
SLA with maximum utility
// subSLA that maximizes the expected utility
// Node group that clients will contact
// Choosing a target SLA and nodes
22
// Node group that clients will contact
Find a node with
minimum latency
// subSLA that maximizes the expected utility
// Choosing a target SLA and nodes
23
Evaluation:
Experimental Setup
• Goal
• Evaluate Pileus in a globally distributed datacenter
environment
• Verify that adapting consistency is better than a fixed
consistency
• Measure how well the client’s Get operations meet a given consistency-
based SLA
• Evaluation
• Shopping cart SLA (weak consistency)
• Password checking SLA (strong consistency)
• Adaptability to network delays
• Sensitivity to utility values
24
Evaluation:
Experimental Setup
• YCSB benchmark with one client in each country
• Total 10,000 Put / Get, 400 Put / Get per session (20) by a client
• U.S West(Secondary), England(Primary), India(Secondary),
China(N/A)
• Comparisons with Pileus (different selection method)
• Primary
• always performs Gets at the primary node
• Random
• performs each Get at a randomly selected node
• Closest
• always performs Gets at the node with the lowest average latency
25
Evaluation:
Experimental Setup
26
Avg. RTT
Evaluation:
Shopping Cart SLA
27
• Weak consistency preferred
Evaluation:
Password Checking SLA
• Strong consistency preferred
28
Evaluation:
Adaptability to network delays
• Injecting artificial delays into Get op in Password
checking SLA experiment
client (in the U.S.)
primary (in England)
Injecting 300ms delay
to primary
29
Evaluation:
Adaptability to network delays
• Injecting artificial delays into Get op in Password
checking SLA experiment
client (in the U.S.)
primary (in England)
Client -> (Primary, Rank1-SLA)
Clienit learns primary is far away,
switching to second subSLA with U.S node
; Client -> (U.S node, Rank2-SLA)
Client realizes that first subSLA is
cannot be met, switching to third one
; Client -> (Primary, Rank3-SLA)
Injecting 300ms delay
to primary
30
Evaluation:
Adaptability to network delays
• Injecting artificial delays into Get op in Password
checking SLA experiment
client (in the U.S.)
primary (in England)
Adding additional latency,
no SLA can be met
Client realized that only the third SLA
can be met, switching to primary
; Client -> (Primary, Rank3-SLA)
Injecting 300ms delay
to U.S. node(local node)
31
Evaluation:
Adaptability to network delays
• Injecting artificial delays into Get op in Password
checking SLA experiment
client (in the U.S.)
primary (in England)
Client discovers, through periodic
probes, that it can regularly access its
local site with low delay
switching back to local node
; Client -> (U.S. Node, Rank2-SLA)
Reducing delay(a millesecond)
in U.S. node(local node)
32
Evaluation:
Adaptability to network delays
• Injecting artificial delays into Get op in Password
checking SLA experiment
client (in the U.S.)
primary (in England)
Client figures primary is
normal,
switching back to primary
; Client ->
(Primary, Rank1-SLA)
Restoring the avg. latency to the
primary to the usual (149ms)
33
Extensions and future work
• Enhanced monitoring
• Sharing monitoring information between clients for accurate
decision
• (i.e., client-centric distributed monitoring service)
• SLA-driven reconfiguration
• Reconfiguring replicas according to SLA
• (e.g., moving primary replica nearby client)
• Parallel Gets
• Multi-site Puts
34
Conclusion
• Pilieus is a storage system with consistency-based SLA
• Consistency-based SLAs allow applications that were
written to tolerate eventual consistency to benefit
from increased consistency
• Adaptive to varying system condition
• (e.g., nodes fail, overloaded, performance variation)
• Avoiding single ideal consistency
• Pileus can improve application-specific consistency
levels of service
• application’s SLA indicates how best to adapt
35
Research Implications
• Structural similarities to Hyperledger/Fabric
• SLA ?= Endorsement policy
• Primary node ?= Ordering Service
• Storage node ?= Peer
• Simple monitoring & decision technique
• Defining a sliding window and prob. functions
• Collect metrics -> Calculate prob. -> Decision an action
• Quorum based SLA
• 2f+1 <= Q <= (2/3)n
• From low importance to high importance
36
Many form of consistency
Consistency models in distributed systems: A survey on definitions, disciplines, challenges and applications (2019)
37
Casual precedence relationship
op1 < op2 if either,
• (a) op1 occurs before op2 in the same session
• (b) op1 is a Put(key) and op2 is a Get(key) that returns the
version put in op1
• (c) for some op3, op1 < op3 and op3 < op2.
38
Evaluation:
Sensitivity to utility values
39

More Related Content

What's hot

Multi-Cluster and Failover for Apache Kafka - Kafka Summit SF 17
Multi-Cluster and Failover for Apache Kafka - Kafka Summit SF 17Multi-Cluster and Failover for Apache Kafka - Kafka Summit SF 17
Multi-Cluster and Failover for Apache Kafka - Kafka Summit SF 17
Gwen (Chen) Shapira
 
Apache Kafka - Messaging System Overview
Apache Kafka - Messaging System OverviewApache Kafka - Messaging System Overview
Apache Kafka - Messaging System Overview
Dmitry Tolpeko
 
Concurrency Learning From Jdk Source
Concurrency Learning From Jdk SourceConcurrency Learning From Jdk Source
Concurrency Learning From Jdk SourceKaniska Mandal
 
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
HostedbyConfluent
 
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
mumrah
 
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
Rick Hightower
 
KafkaConsumer - Decoupling Consumption and Processing for Better Resource Uti...
KafkaConsumer - Decoupling Consumption and Processing for Better Resource Uti...KafkaConsumer - Decoupling Consumption and Processing for Better Resource Uti...
KafkaConsumer - Decoupling Consumption and Processing for Better Resource Uti...
confluent
 
APACHE KAFKA / Kafka Connect / Kafka Streams
APACHE KAFKA / Kafka Connect / Kafka StreamsAPACHE KAFKA / Kafka Connect / Kafka Streams
APACHE KAFKA / Kafka Connect / Kafka Streams
Ketan Gote
 
Messaging queue - Kafka
Messaging queue - KafkaMessaging queue - Kafka
Messaging queue - Kafka
Mayank Bansal
 
Strata+Hadoop 2017 San Jose: Lessons from a year of supporting Apache Kafka
Strata+Hadoop 2017 San Jose: Lessons from a year of supporting Apache KafkaStrata+Hadoop 2017 San Jose: Lessons from a year of supporting Apache Kafka
Strata+Hadoop 2017 San Jose: Lessons from a year of supporting Apache Kafka
confluent
 
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
StreamNative
 
Data Pipelines with Apache Kafka
Data Pipelines with Apache KafkaData Pipelines with Apache Kafka
Data Pipelines with Apache Kafka
Ben Stopford
 
RabbitMQ vs Apache Kafka - Part 1
RabbitMQ vs Apache Kafka - Part 1RabbitMQ vs Apache Kafka - Part 1
RabbitMQ vs Apache Kafka - Part 1
Erlang Solutions
 
Apache Kafka Demo
Apache Kafka DemoApache Kafka Demo
Apache Kafka Demo
Edward Capriolo
 
Thoughts on kafka capacity planning
Thoughts on kafka capacity planningThoughts on kafka capacity planning
Thoughts on kafka capacity planning
JamieAlquiza
 
Apache Kafka
Apache Kafka Apache Kafka
Kerberos Survival Guide - St. Louis Day of .Net
Kerberos Survival Guide - St. Louis Day of .NetKerberos Survival Guide - St. Louis Day of .Net
Kerberos Survival Guide - St. Louis Day of .NetJ.D. Wade
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
Srikrishna k
 
What to consider when monitoring microservices
What to consider when monitoring microservicesWhat to consider when monitoring microservices
What to consider when monitoring microservices
Particular Software
 

What's hot (20)

Multi-Cluster and Failover for Apache Kafka - Kafka Summit SF 17
Multi-Cluster and Failover for Apache Kafka - Kafka Summit SF 17Multi-Cluster and Failover for Apache Kafka - Kafka Summit SF 17
Multi-Cluster and Failover for Apache Kafka - Kafka Summit SF 17
 
Apache Kafka - Messaging System Overview
Apache Kafka - Messaging System OverviewApache Kafka - Messaging System Overview
Apache Kafka - Messaging System Overview
 
Concurrency Learning From Jdk Source
Concurrency Learning From Jdk SourceConcurrency Learning From Jdk Source
Concurrency Learning From Jdk Source
 
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
Real-time Data Ingestion from Kafka to ClickHouse with Deterministic Re-tries...
 
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
 
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)Reactive Java: Promises and Streams with Reakt  (JavaOne talk 2016)
Reactive Java: Promises and Streams with Reakt (JavaOne talk 2016)
 
KafkaConsumer - Decoupling Consumption and Processing for Better Resource Uti...
KafkaConsumer - Decoupling Consumption and Processing for Better Resource Uti...KafkaConsumer - Decoupling Consumption and Processing for Better Resource Uti...
KafkaConsumer - Decoupling Consumption and Processing for Better Resource Uti...
 
APACHE KAFKA / Kafka Connect / Kafka Streams
APACHE KAFKA / Kafka Connect / Kafka StreamsAPACHE KAFKA / Kafka Connect / Kafka Streams
APACHE KAFKA / Kafka Connect / Kafka Streams
 
Messaging queue - Kafka
Messaging queue - KafkaMessaging queue - Kafka
Messaging queue - Kafka
 
Strata+Hadoop 2017 San Jose: Lessons from a year of supporting Apache Kafka
Strata+Hadoop 2017 San Jose: Lessons from a year of supporting Apache KafkaStrata+Hadoop 2017 San Jose: Lessons from a year of supporting Apache Kafka
Strata+Hadoop 2017 San Jose: Lessons from a year of supporting Apache Kafka
 
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
Deep Dive into the Pulsar Binary Protocol - Pulsar Virtual Summit Europe 2021
 
Data Pipelines with Apache Kafka
Data Pipelines with Apache KafkaData Pipelines with Apache Kafka
Data Pipelines with Apache Kafka
 
RabbitMQ vs Apache Kafka - Part 1
RabbitMQ vs Apache Kafka - Part 1RabbitMQ vs Apache Kafka - Part 1
RabbitMQ vs Apache Kafka - Part 1
 
Apache Kafka Demo
Apache Kafka DemoApache Kafka Demo
Apache Kafka Demo
 
Kafka basics
Kafka basicsKafka basics
Kafka basics
 
Thoughts on kafka capacity planning
Thoughts on kafka capacity planningThoughts on kafka capacity planning
Thoughts on kafka capacity planning
 
Apache Kafka
Apache Kafka Apache Kafka
Apache Kafka
 
Kerberos Survival Guide - St. Louis Day of .Net
Kerberos Survival Guide - St. Louis Day of .NetKerberos Survival Guide - St. Louis Day of .Net
Kerberos Survival Guide - St. Louis Day of .Net
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
What to consider when monitoring microservices
What to consider when monitoring microservicesWhat to consider when monitoring microservices
What to consider when monitoring microservices
 

Similar to Pileus

Tokyo AK Meetup Speedtest - Share.pdf
Tokyo AK Meetup Speedtest - Share.pdfTokyo AK Meetup Speedtest - Share.pdf
Tokyo AK Meetup Speedtest - Share.pdf
ssuser2ae721
 
Hierarchical SLA-based Service Selection for Multi-Cloud Environments
Hierarchical SLA-based Service Selection for Multi-Cloud EnvironmentsHierarchical SLA-based Service Selection for Multi-Cloud Environments
Hierarchical SLA-based Service Selection for Multi-Cloud Environments
Soodeh Farokhi
 
Adaptable SLA-Aware Consistency_Ayantu Debebe Ejeta.pdf
Adaptable SLA-Aware Consistency_Ayantu Debebe Ejeta.pdfAdaptable SLA-Aware Consistency_Ayantu Debebe Ejeta.pdf
Adaptable SLA-Aware Consistency_Ayantu Debebe Ejeta.pdf
tadeseguchi
 
Semantic Validation: Enforcing Kafka Data Quality Through Schema-Driven Verif...
Semantic Validation: Enforcing Kafka Data Quality Through Schema-Driven Verif...Semantic Validation: Enforcing Kafka Data Quality Through Schema-Driven Verif...
Semantic Validation: Enforcing Kafka Data Quality Through Schema-Driven Verif...
HostedbyConfluent
 
Cloud_Testing_The_future_of_softwareV1.04
Cloud_Testing_The_future_of_softwareV1.04Cloud_Testing_The_future_of_softwareV1.04
Cloud_Testing_The_future_of_softwareV1.04Mrityunjaya Hikkalgutti
 
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
HostedbyConfluent
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
C4Media
 
TechTalk_Cloud Performance Testing_0.6
TechTalk_Cloud Performance Testing_0.6TechTalk_Cloud Performance Testing_0.6
TechTalk_Cloud Performance Testing_0.6Sravanthi N
 
In Flux Limiting for a multi-tenant logging service
In Flux Limiting for a multi-tenant logging serviceIn Flux Limiting for a multi-tenant logging service
In Flux Limiting for a multi-tenant logging service
DataWorks Summit/Hadoop Summit
 
sla nptl.pptx
sla nptl.pptxsla nptl.pptx
sla nptl.pptx
MunmunSaha7
 
AWS re:Invent 2016: Beeswax: Building a Real-Time Streaming Data Platform on ...
AWS re:Invent 2016: Beeswax: Building a Real-Time Streaming Data Platform on ...AWS re:Invent 2016: Beeswax: Building a Real-Time Streaming Data Platform on ...
AWS re:Invent 2016: Beeswax: Building a Real-Time Streaming Data Platform on ...
Amazon Web Services
 
Blockchain testing strategy
Blockchain testing strategyBlockchain testing strategy
Blockchain testing strategy
rajni singh
 
Everything You Need to Know About Sharding
Everything You Need to Know About ShardingEverything You Need to Know About Sharding
Everything You Need to Know About Sharding
MongoDB
 
QoS, QoS Baby
QoS, QoS BabyQoS, QoS Baby
Quality of service
Quality of serviceQuality of service
Quality of service
Yasser El Harbili
 
IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0
Matt Lucas
 
DevDay: Corda Enterprise: Journey to 1000 TPS per node, Rick Parker
DevDay: Corda Enterprise: Journey to 1000 TPS per node, Rick ParkerDevDay: Corda Enterprise: Journey to 1000 TPS per node, Rick Parker
DevDay: Corda Enterprise: Journey to 1000 TPS per node, Rick Parker
R3
 
Assessing Network Readiness
Assessing Network ReadinessAssessing Network Readiness
Assessing Network ReadinessrAVe [PUBS]
 
Week 3 lecture material cc
Week 3 lecture material ccWeek 3 lecture material cc
Week 3 lecture material cc
Ankit Gupta
 

Similar to Pileus (20)

Tokyo AK Meetup Speedtest - Share.pdf
Tokyo AK Meetup Speedtest - Share.pdfTokyo AK Meetup Speedtest - Share.pdf
Tokyo AK Meetup Speedtest - Share.pdf
 
Hierarchical SLA-based Service Selection for Multi-Cloud Environments
Hierarchical SLA-based Service Selection for Multi-Cloud EnvironmentsHierarchical SLA-based Service Selection for Multi-Cloud Environments
Hierarchical SLA-based Service Selection for Multi-Cloud Environments
 
Adaptable SLA-Aware Consistency_Ayantu Debebe Ejeta.pdf
Adaptable SLA-Aware Consistency_Ayantu Debebe Ejeta.pdfAdaptable SLA-Aware Consistency_Ayantu Debebe Ejeta.pdf
Adaptable SLA-Aware Consistency_Ayantu Debebe Ejeta.pdf
 
slides
slidesslides
slides
 
Semantic Validation: Enforcing Kafka Data Quality Through Schema-Driven Verif...
Semantic Validation: Enforcing Kafka Data Quality Through Schema-Driven Verif...Semantic Validation: Enforcing Kafka Data Quality Through Schema-Driven Verif...
Semantic Validation: Enforcing Kafka Data Quality Through Schema-Driven Verif...
 
Cloud_Testing_The_future_of_softwareV1.04
Cloud_Testing_The_future_of_softwareV1.04Cloud_Testing_The_future_of_softwareV1.04
Cloud_Testing_The_future_of_softwareV1.04
 
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
 
TechTalk_Cloud Performance Testing_0.6
TechTalk_Cloud Performance Testing_0.6TechTalk_Cloud Performance Testing_0.6
TechTalk_Cloud Performance Testing_0.6
 
In Flux Limiting for a multi-tenant logging service
In Flux Limiting for a multi-tenant logging serviceIn Flux Limiting for a multi-tenant logging service
In Flux Limiting for a multi-tenant logging service
 
sla nptl.pptx
sla nptl.pptxsla nptl.pptx
sla nptl.pptx
 
AWS re:Invent 2016: Beeswax: Building a Real-Time Streaming Data Platform on ...
AWS re:Invent 2016: Beeswax: Building a Real-Time Streaming Data Platform on ...AWS re:Invent 2016: Beeswax: Building a Real-Time Streaming Data Platform on ...
AWS re:Invent 2016: Beeswax: Building a Real-Time Streaming Data Platform on ...
 
Blockchain testing strategy
Blockchain testing strategyBlockchain testing strategy
Blockchain testing strategy
 
Everything You Need to Know About Sharding
Everything You Need to Know About ShardingEverything You Need to Know About Sharding
Everything You Need to Know About Sharding
 
QoS, QoS Baby
QoS, QoS BabyQoS, QoS Baby
QoS, QoS Baby
 
Quality of service
Quality of serviceQuality of service
Quality of service
 
IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0
 
DevDay: Corda Enterprise: Journey to 1000 TPS per node, Rick Parker
DevDay: Corda Enterprise: Journey to 1000 TPS per node, Rick ParkerDevDay: Corda Enterprise: Journey to 1000 TPS per node, Rick Parker
DevDay: Corda Enterprise: Journey to 1000 TPS per node, Rick Parker
 
Assessing Network Readiness
Assessing Network ReadinessAssessing Network Readiness
Assessing Network Readiness
 
Week 3 lecture material cc
Week 3 lecture material ccWeek 3 lecture material cc
Week 3 lecture material cc
 

More from YongraeJo

Enhancing Ethereum PoA Clique Network with DAG-based BFT Consensus
Enhancing Ethereum PoA Clique Network with DAG-based BFT ConsensusEnhancing Ethereum PoA Clique Network with DAG-based BFT Consensus
Enhancing Ethereum PoA Clique Network with DAG-based BFT Consensus
YongraeJo
 
Zeus Locality aware distributed transaction upload.pptx
Zeus Locality aware distributed transaction upload.pptxZeus Locality aware distributed transaction upload.pptx
Zeus Locality aware distributed transaction upload.pptx
YongraeJo
 
basil.pptx
basil.pptxbasil.pptx
basil.pptx
YongraeJo
 
HotStuff
HotStuff HotStuff
HotStuff
YongraeJo
 
Fbft
FbftFbft
Fbft
YongraeJo
 
blockchain-and-trusted-computing
blockchain-and-trusted-computingblockchain-and-trusted-computing
blockchain-and-trusted-computing
YongraeJo
 
Blockchain meets database
Blockchain meets databaseBlockchain meets database
Blockchain meets database
YongraeJo
 
Beat
BeatBeat
Beat
YongraeJo
 
Byzantine ordered consensus
Byzantine ordered consensusByzantine ordered consensus
Byzantine ordered consensus
YongraeJo
 
BlockLot: Blockchain-based verifiable lottery
BlockLot: Blockchain-based verifiable lotteryBlockLot: Blockchain-based verifiable lottery
BlockLot: Blockchain-based verifiable lottery
YongraeJo
 
Simple robot pets with three emotions (uC/OS III)
Simple robot pets with three emotions (uC/OS III)Simple robot pets with three emotions (uC/OS III)
Simple robot pets with three emotions (uC/OS III)
YongraeJo
 
FlexSC
FlexSCFlexSC
FlexSC
YongraeJo
 
Honeybadger of BFT Protocols
Honeybadger of BFT ProtocolsHoneybadger of BFT Protocols
Honeybadger of BFT Protocols
YongraeJo
 
Cheapbft
Cheapbft Cheapbft
Cheapbft
YongraeJo
 
Practical Byzantine Fault Tolernace
Practical Byzantine Fault TolernacePractical Byzantine Fault Tolernace
Practical Byzantine Fault Tolernace
YongraeJo
 
Making BFT Protocols Really Adaptive
Making BFT Protocols Really AdaptiveMaking BFT Protocols Really Adaptive
Making BFT Protocols Really Adaptive
YongraeJo
 
Vft
VftVft

More from YongraeJo (20)

Enhancing Ethereum PoA Clique Network with DAG-based BFT Consensus
Enhancing Ethereum PoA Clique Network with DAG-based BFT ConsensusEnhancing Ethereum PoA Clique Network with DAG-based BFT Consensus
Enhancing Ethereum PoA Clique Network with DAG-based BFT Consensus
 
Zeus Locality aware distributed transaction upload.pptx
Zeus Locality aware distributed transaction upload.pptxZeus Locality aware distributed transaction upload.pptx
Zeus Locality aware distributed transaction upload.pptx
 
basil.pptx
basil.pptxbasil.pptx
basil.pptx
 
HotStuff
HotStuff HotStuff
HotStuff
 
Fbft
FbftFbft
Fbft
 
blockchain-and-trusted-computing
blockchain-and-trusted-computingblockchain-and-trusted-computing
blockchain-and-trusted-computing
 
Blockchain meets database
Blockchain meets databaseBlockchain meets database
Blockchain meets database
 
Beat
BeatBeat
Beat
 
Byzantine ordered consensus
Byzantine ordered consensusByzantine ordered consensus
Byzantine ordered consensus
 
Stellar
StellarStellar
Stellar
 
Ledgerdb
LedgerdbLedgerdb
Ledgerdb
 
Blockene
BlockeneBlockene
Blockene
 
BlockLot: Blockchain-based verifiable lottery
BlockLot: Blockchain-based verifiable lotteryBlockLot: Blockchain-based verifiable lottery
BlockLot: Blockchain-based verifiable lottery
 
Simple robot pets with three emotions (uC/OS III)
Simple robot pets with three emotions (uC/OS III)Simple robot pets with three emotions (uC/OS III)
Simple robot pets with three emotions (uC/OS III)
 
FlexSC
FlexSCFlexSC
FlexSC
 
Honeybadger of BFT Protocols
Honeybadger of BFT ProtocolsHoneybadger of BFT Protocols
Honeybadger of BFT Protocols
 
Cheapbft
Cheapbft Cheapbft
Cheapbft
 
Practical Byzantine Fault Tolernace
Practical Byzantine Fault TolernacePractical Byzantine Fault Tolernace
Practical Byzantine Fault Tolernace
 
Making BFT Protocols Really Adaptive
Making BFT Protocols Really AdaptiveMaking BFT Protocols Really Adaptive
Making BFT Protocols Really Adaptive
 
Vft
VftVft
Vft
 

Recently uploaded

Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 

Recently uploaded (20)

Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 

Pileus

  • 1. Consistency-Based Service Level Agreements for Cloud Storage Douglas B. Terry, Vijayan Prabhakaran, Ramakrishna Kotla, Mahesh Balakrishnan, Marcos K. Aguilera, Hussam Abu-Libdeh† Microsoft Research Silicon Valley †Cornell University ACM SOSP 2013 Presented by Yongrae Jo, System software lab. at POSTECH
  • 2. Motivation 2 Single ideal consistency (weak ~ strong) Multiple alternative consistency (depending on app demand) Cloud service provider Guaranteed by SLA Guaranteed by system design(DB) Consistency vs Availability / Performance Single & Fixed consistency to developer Multiple & alternative consistency to developer
  • 3. Pileus • Storage system for cloud • Replicated key/value store with consistency-based SLAs • Provides a broad set of consistency choices • that lie between strong and eventual consistency • avoiding single-ideal consistency • Satisfies application-specific consistency / latency demand • Latency-favoring applications (e.g., shopping cart) • Consistency-favoring applications (e.g., bank) • Exports system APIs to application 3
  • 4. Consistency Levels Strong consistency Eventual consistency Latency-favoring applications • Shopping app • Real-time Multiplayer games • Computer-supported collaborative work • Data analytics Consistency-favoring applications • Bank • Calendar • web-based e-mail Applications with Trade-offs • Web-browser • Display local cache first, and then load accurate data as it arrives 4
  • 5. System API Interface with traditional key-value cloud storage (e.g., Table op., Get, Put) Consistency Guarantees • Consistency choices • Service level agreements Default sla condition code (Consistency + SLA met?) 5
  • 6. System API Interface with traditional key-value cloud storage (e.g., Table op., Get, Put) Consistency Guarantees • Consistency choices • Service level agreements Default sla condition code (Consistency + SLA met?) 6
  • 7. Consistency Guarantees on Get(s, key, sla) Types Return value of Get(key) Strong Consistency Return value of last preceding Put(key) performed by any client Casual Consistency Return value of latest casually preceding Put(key) Bounded Staleness(t) Return value that is stale at most t seconds Read My Writes Return value of latest Put(key) in client session or a later value Monotonic Reads Return same or later value as earlier Get(key) in client session Eventual Consistency Return value written by any Put(key) (but, expected to return the latest value later) 7
  • 8. Example evaluation on different consistency guarantees 8 one client in each country (Secondary) (Secondary) (N/A)
  • 9. Service Level Agreement • An ordered list of subSLAs • subSLA • A pair of Consistency / Latency target with application-specific utility Most preferable Relative importance Less preferable 9
  • 11. SLA Failure & Checking • Satisfying SLA can fail due to • configuration of replicas and network conditions • poor decision based on inaccurate information • Checking SLA Failure from the return value(i.e., condition code) of Get • Application can take different actions based on the consistency of the returned data. Def. Unavailability of Pileus The inability to retrieve the desired data with acceptable consistency and latency as defined by the SLA 11
  • 12. Design and Implementation • Architecture • Client-side • Consistency-specific node selection • Monitoring storage nodes • Client-side SLA enforcement • Choosing a target subSLA • Determining which subSLA was met 12
  • 13. Pileus system API BeginSession (SLA) BeginTx (SLA) Put (key, value) Get (key, SLA) returns value, consistency EndTx () EndSession () 13
  • 14. Components • Storage Node (or Secondary Node) • Periodically fetches update results from primary node • Primary Node • One or some of storage node • Holds master data(i.e., up-to-date data) • Run replication protocol (e.g., consensus) • (Client-side) Monitor • Tracks the amount that storage nodes lag behind the primary node • Measures roundtrip latencies between clients and storage nodes • Client library • Exports Pilleus APIs to application 14
  • 15. Consistency-specific node selection • How to select a node which a Get operation should be sent? • For desired consistency guarantee (Is it sufficiently up-to-date?) • Minimum acceptable read timestamp • Serves as a decision point between consistency guarantees • Indicates an amount of lag of each node 15 Previous Object Versions (in current session) Key (being read) Minimum Acceptable Read Timestamp Consistency guarantee (Per) Node high timestamp Node Selection
  • 16. Consistency-specific node selection 16 Types Minimum Acceptable Read Timestamp Strong Consistency At least as large as the update timestamp of the latest Put to the key that is being Get Casual Consistency the maximum timestamp of any object that was previously read or written in this session (already casual-ordered by primary) Bounded Staleness(t) Current time – bound time t Read My Writes Maximum timestamp of any previous Puts to the key being accessed in current session Monotonic Reads The recorded timestamp for the key being accessed in the Get of current session Eventual Consistency 0
  • 17. Consistency-specific node selection : Example 17 This node can provide all consistency guarantee except strong and casual consistency
  • 18. Read-my-writes vs. Monotonic Reads 18 Read-my-writes (client session) Monotonic reads (client session) Put(k), t1 Get(k), t2 Put(k), t3 Get(k), t4 Get(k), t5 Put(k), t1 Get(k), t2 Put(k), t3 Get(k), t4 Get(k), t5 Minimum Acceptable Read Timestamp Minimum Acceptable Read Timestamp
  • 19. Monitoring Storage Nodes • (client-side) Monitor probes latency / timestamp of each node • Monitor • collects measurements in a sliding window (last few minutes) • returns three probability estimates based on the recorded information PNodeCons (node, consistency, key) Return probability that a node follows a sufficiently up-to-date value PNodeLat (node, latency) Return probability that a node responds within a given time PNodeSla (node, consistency, latency, key) Return probability that a node satisfy SLA (=PNodeCons * PNodeLat 19
  • 20. Client-side SLA Enforcement • How can we satisfy SLA effectively? • Simple, but flawed method for SLA enforcement • Broadcast Get op. to all replicas • Incurs high cost (e.g., network resource, charging per byte) • SLA Enforcement by Client Library • Chooses a node group that can meet SLA • Responsible for maximizing the expected utility • Methods • Choosing a target subSLA • Determining which subSLA was met 20
  • 21. // Choosing a target SLA and nodes // subSLA that maximizes the expected utility // Node group that clients will contact 21
  • 22. Find targetSLA and node group that best satisfies SLA with maximum utility // subSLA that maximizes the expected utility // Node group that clients will contact // Choosing a target SLA and nodes 22
  • 23. // Node group that clients will contact Find a node with minimum latency // subSLA that maximizes the expected utility // Choosing a target SLA and nodes 23
  • 24. Evaluation: Experimental Setup • Goal • Evaluate Pileus in a globally distributed datacenter environment • Verify that adapting consistency is better than a fixed consistency • Measure how well the client’s Get operations meet a given consistency- based SLA • Evaluation • Shopping cart SLA (weak consistency) • Password checking SLA (strong consistency) • Adaptability to network delays • Sensitivity to utility values 24
  • 25. Evaluation: Experimental Setup • YCSB benchmark with one client in each country • Total 10,000 Put / Get, 400 Put / Get per session (20) by a client • U.S West(Secondary), England(Primary), India(Secondary), China(N/A) • Comparisons with Pileus (different selection method) • Primary • always performs Gets at the primary node • Random • performs each Get at a randomly selected node • Closest • always performs Gets at the node with the lowest average latency 25
  • 27. Evaluation: Shopping Cart SLA 27 • Weak consistency preferred
  • 28. Evaluation: Password Checking SLA • Strong consistency preferred 28
  • 29. Evaluation: Adaptability to network delays • Injecting artificial delays into Get op in Password checking SLA experiment client (in the U.S.) primary (in England) Injecting 300ms delay to primary 29
  • 30. Evaluation: Adaptability to network delays • Injecting artificial delays into Get op in Password checking SLA experiment client (in the U.S.) primary (in England) Client -> (Primary, Rank1-SLA) Clienit learns primary is far away, switching to second subSLA with U.S node ; Client -> (U.S node, Rank2-SLA) Client realizes that first subSLA is cannot be met, switching to third one ; Client -> (Primary, Rank3-SLA) Injecting 300ms delay to primary 30
  • 31. Evaluation: Adaptability to network delays • Injecting artificial delays into Get op in Password checking SLA experiment client (in the U.S.) primary (in England) Adding additional latency, no SLA can be met Client realized that only the third SLA can be met, switching to primary ; Client -> (Primary, Rank3-SLA) Injecting 300ms delay to U.S. node(local node) 31
  • 32. Evaluation: Adaptability to network delays • Injecting artificial delays into Get op in Password checking SLA experiment client (in the U.S.) primary (in England) Client discovers, through periodic probes, that it can regularly access its local site with low delay switching back to local node ; Client -> (U.S. Node, Rank2-SLA) Reducing delay(a millesecond) in U.S. node(local node) 32
  • 33. Evaluation: Adaptability to network delays • Injecting artificial delays into Get op in Password checking SLA experiment client (in the U.S.) primary (in England) Client figures primary is normal, switching back to primary ; Client -> (Primary, Rank1-SLA) Restoring the avg. latency to the primary to the usual (149ms) 33
  • 34. Extensions and future work • Enhanced monitoring • Sharing monitoring information between clients for accurate decision • (i.e., client-centric distributed monitoring service) • SLA-driven reconfiguration • Reconfiguring replicas according to SLA • (e.g., moving primary replica nearby client) • Parallel Gets • Multi-site Puts 34
  • 35. Conclusion • Pilieus is a storage system with consistency-based SLA • Consistency-based SLAs allow applications that were written to tolerate eventual consistency to benefit from increased consistency • Adaptive to varying system condition • (e.g., nodes fail, overloaded, performance variation) • Avoiding single ideal consistency • Pileus can improve application-specific consistency levels of service • application’s SLA indicates how best to adapt 35
  • 36. Research Implications • Structural similarities to Hyperledger/Fabric • SLA ?= Endorsement policy • Primary node ?= Ordering Service • Storage node ?= Peer • Simple monitoring & decision technique • Defining a sliding window and prob. functions • Collect metrics -> Calculate prob. -> Decision an action • Quorum based SLA • 2f+1 <= Q <= (2/3)n • From low importance to high importance 36
  • 37. Many form of consistency Consistency models in distributed systems: A survey on definitions, disciplines, challenges and applications (2019) 37
  • 38. Casual precedence relationship op1 < op2 if either, • (a) op1 occurs before op2 in the same session • (b) op1 is a Put(key) and op2 is a Get(key) that returns the version put in op1 • (c) for some op3, op1 < op3 and op3 < op2. 38