SlideShare uma empresa Scribd logo
1 de 31
CLOUD TYPES FOR
EVENTUAL
CONSISTENCY
Class: CS 519 – Software Evolution for Mobility
Presenter: Sergii Shmarkatiuk
Date: 10/09/2013
MOTIVATION
2
Today there are more mobile applications
available for download and usage than
desktop applications.
MOTIVATION
3
And number of mobile applications does
not go down
MOTIVATION
4
It goes up!
MOTIVATION
5
Mobile applications need to communicate
with online services and with each other
6
MOTIVATION: WHY MOBILE APPS
COMMUNICATE?
Personal
Publishing
Games
Data
Collection
Collaboration
Sync and
Backup
Transactions
Blog
Facebook Wall
Website
Music
Video
SkyDrive
Surveys
High Scores
Shared Lists
Shared Calendar
Shared Spreadsheet
Real-time
Turn-based
Store
Auction
Matchmaking
Remote
Control
Home Control
Robotics
Media Player
MOTIVATION
7
Increased need of communication means
more data
MOTIVATION
8
One of the most effective ways of storing
data for mobile devices is a cloud
MOTIVATION
9
Being effective way of storage, cloud data
manipulation poses some challenges for
developers
MOTIVATION
10
Developers usually have responsibility of
managing different aspects of cloud data
manipulation
Cloud
data
Storage
Synchroni
zation
Caching
Manipulati
on
Conflicts
resolution
MOTIVATION
11
Cloud data manipulation should be
simplified for more convenient use
PROPOSED SOLUTION
12
Implementation of eventually consistent
storage at the programming language level
using cloud data types.
WHAT IS EVENTUAL CONSISTENCY?
 Weak consistency model of storing shared data in a
distributed system that allows clients to perform
updates against any replica at any time.
 One of the approaches to the CAP (consistency,
availability, partition tolerance) problem
 Guarantee that all updates are eventually delivered
to all replicas, and that they are applied in a
consistent order
 Transactional model providing basic requirements
of atomicity and isolation without possibility of
transactions serialization
13
14
TRANSACTIONS: PICK ANY TWO
Atomicity
Isolation
Serializability
15
TRANSACTIONS: CHOICE OF EVENTUAL
CONSISTENCY MODEL
Atomicity
Isolation
Serializability
Revisions
REVISION DIAGRAMS
BURCKHARDT’2011: SEMANTICS OF CONCURRENT REVISIONS
16Data propagate
only along edges
18
Node
Storage
Compute
Node
Storage
Compute
Node
Storage
Compute
Basic (peer-to-peer) Using Cloud Infrastructure
Storage Storage
Compute Compute Compute
Storage Storage
Client
Client
Client
Client
Client
Client
DISTRIBUTED SYSTEMS
HOW TO PROGRAM USING CLOUD
CONCEPTS?
19
Layer
Storage Storage
Compute Compute Compute
Storage Storage
Client
Client
Client
Client
Client
Client
Client
Not physically secure
Unreliable
Cannot detect failures
Potentially many
Cloud Compute
Physically secure, not so many
Not reliable: no persistent state
Can detect failures somewhat
Relatively Expensive
Cloud Storage
Secure
Reliable
Can be very cheap
MOTIVATING EXAMPLE:
GROCERY LIST
20
milk
bread
eggs
cilantro
sardines
guava
DATA MANAGEMENT MODEL
21
device 1 device 2cloud• Client code:
 Declare data types
 read/update data
 yield (=polite
sync)
 flush (=forced
sync)
• Under the hood:
 Revision diagram
rules
22
device 1 device 2cloud
IMPLICIT TRANSACTIONS
• At yield
Runtime has permission
to send or receive
updates. Call this
frequently, e.g.
automatically “on
idle”.
• In between yields
Runtime is not allowed
to send or receive
updates
• Implies: all client code
executes in a
(eventually consistent)
transaction
…
…
…
…
…
…
…
yield
yield
yield
yieldyield
yield
yield
yield
STRONG CONSISTENCY ON-
DEMAND
 flush primitive
blocks until local
state has reached
main revision and
result has come
back to device
 Sufficient to
implement strong
consistency
 Flush blocks –times
out if server
connection is not
available.
flush
(blocks)
(continue)
YIELD/FLUSH EXAMPLE
24
yield (=polite sync)
flush(=forced sync)
FORK-JOIN AUTOMATON (FJA)
25
 Data set is copied on forking
 Data is manipulated in
isolation after fork
 When data is joined, changes
are merged.
 The merge is fully defined by
the data type declarations.
 some types may include custom
merge functions
 there is no failure, rollback, or
retry
B
D
CA
fork
fork
fork
join
join
PAPER CONTRIBUTIONS
 Cloud types definition (CInt, CString, CSet)
 Formal description of language constructs (big-step
notation)
 Fork-join automaton operations formalization
(create, delete, propagate, fork, join, …)
 Formalization of distribution operations (yield-pull,
yield-flush, sync-pull, sync-flush, …)
 Formalization of language constructs used by
developers in client applications (new, delete,
entries, all, yield, flush)
26
PAPER CONTRIBUTIONS
27
No evaluation
Reference/specification for
developers implementing eventual
consistency with cloud types
PITFALLS
28
Last writer wins!
Subtle difference between cloud
type methods set and add
RELATED WORK
 CRDT (commutative replicated data types)
 Cloud types allow non-commutative operations
 No integration with fork-join automaton
 Concurrent revisions approach
 Necessity of explicit merge (rfork, rjoin, …)
 Persistent data types
 Do not take into account transactions or distribution
 Operational transformations
 Very similar to eventual consistency with cloud types, but
difficult to implement
 More focused on correctness checks
 OLAP/OLTP
 Not distributed
 Google's Drive's Realtime API, Dropbox Sync API,
Firebase
 Complicated, too many things to care of
29
QUESTIONS TO DISCUSS
 Sergii: Is model of eventual consistency with cloud
types really suitable for users data management?
 Sergii: How does eventual consistency with cloud
types ensure that there are no clones entities?
 Sergii: How could developers use yield/flush
operations effectively in their code? What is the
typical case/example of flush or yield statement
usage?
 Sergii: How does data actually become eventually
consistent? What mechanism does ensure that
data distribution model is correct?
30
QUESTIONS TO DISCUSS
 Michael: Since the development of cloud types
make the functionality of cloud synchronization
available to the user as a type, how will that affect
tools such as debugging? Will the debugging tools
show the users the revision diagrams and expose
the underling cloud functionality to the users, or will
it hide it from them? Will this cloud functionality
confuse users as to how these types are behaving?
 Michael: How scalable is the solution? At what
point will it start to break down because there are
too many users hitting it? Will it start to break down
with 10 users accessing the same data? 1000?
1M? 31
FOLLOW-UP RESEARCH SUGGESTIONS
 Sergii: Research on how existing types could be
mapped to cloud types
 Sergii: Study model limitations (silent conflict
resolution)
 Michael: While auto-synchronizing primitive cloud
types are great for certain applications, it would be
interesting to research ways to give users the
power of eventual constancy while still providing a
way for them to have finer grained control over the
data. One use case would be to allow users to
choose which other user's changes they would like
to become constant with, or someone who's
changes they chose to ignore 32

Mais conteúdo relacionado

Destaque

Destaque (8)

Clouds A Weather Predictor
Clouds A Weather PredictorClouds A Weather Predictor
Clouds A Weather Predictor
 
Weather assciated with different types clouds
Weather assciated with different types cloudsWeather assciated with different types clouds
Weather assciated with different types clouds
 
07 Sec 1 Weather And Climate 08
07   Sec 1 Weather And Climate 0807   Sec 1 Weather And Climate 08
07 Sec 1 Weather And Climate 08
 
Cloud types
Cloud typesCloud types
Cloud types
 
Public Cloud services delivered to your Datacenter
Public Cloud services delivered to your DatacenterPublic Cloud services delivered to your Datacenter
Public Cloud services delivered to your Datacenter
 
Types of Clouds
Types of CloudsTypes of Clouds
Types of Clouds
 
Clouds lesson powerpoint
Clouds lesson powerpointClouds lesson powerpoint
Clouds lesson powerpoint
 
Types of Cloud
Types of CloudTypes of Cloud
Types of Cloud
 

Semelhante a CS519 - Cloud Types for Eventual Consistency

IT 8003 Cloud ComputingFor this activi.docx
IT 8003 Cloud ComputingFor this activi.docxIT 8003 Cloud ComputingFor this activi.docx
IT 8003 Cloud ComputingFor this activi.docxvrickens
 
"Going Offline", one of the hottest mobile app trends
"Going Offline", one of the hottest mobile app trends"Going Offline", one of the hottest mobile app trends
"Going Offline", one of the hottest mobile app trendsDerek Baron
 
Reactive Architecture
Reactive ArchitectureReactive Architecture
Reactive ArchitectureKnoldus Inc.
 
Melbourne Virtual MuleSoft Meetup April 2022
Melbourne Virtual MuleSoft Meetup April 2022Melbourne Virtual MuleSoft Meetup April 2022
Melbourne Virtual MuleSoft Meetup April 2022Daniel Soffner
 
stackArmor - Security MicroSummit - McAfee
stackArmor - Security MicroSummit - McAfeestackArmor - Security MicroSummit - McAfee
stackArmor - Security MicroSummit - McAfeeGaurav "GP" Pal
 
Migrating to cloud-native_app_architectures_pivotal
Migrating to cloud-native_app_architectures_pivotalMigrating to cloud-native_app_architectures_pivotal
Migrating to cloud-native_app_architectures_pivotalkkdlavak3
 
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)Tim Kirby
 
Migrating_to_Cloud-Native_App_Architectures_Pivotal
Migrating_to_Cloud-Native_App_Architectures_PivotalMigrating_to_Cloud-Native_App_Architectures_Pivotal
Migrating_to_Cloud-Native_App_Architectures_PivotalEstevan McCalley
 
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)Dean Bruckman
 
International Conference on Advances in Computing, Communicati.docx
International Conference on Advances in Computing, Communicati.docxInternational Conference on Advances in Computing, Communicati.docx
International Conference on Advances in Computing, Communicati.docxvrickens
 
Configurability for Cloud-Native Applications: Observability and Control
Configurability for Cloud-Native Applications: Observability and ControlConfigurability for Cloud-Native Applications: Observability and Control
Configurability for Cloud-Native Applications: Observability and ControlCognizant
 
Why Cloud Management Makes $ense
Why Cloud Management Makes $enseWhy Cloud Management Makes $ense
Why Cloud Management Makes $enseRightScale
 
MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021Nicholas Bowman
 
Twelve Factor - Designing for Change
Twelve Factor - Designing for ChangeTwelve Factor - Designing for Change
Twelve Factor - Designing for ChangeEric Wyles
 
APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?
APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?
APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?FABERNOVEL TECHNOLOGIES
 
Why Cloud Management Makes Sense
Why Cloud Management Makes SenseWhy Cloud Management Makes Sense
Why Cloud Management Makes SenseRightScale
 
Linuxcon 2011 Crash Course in Open Source Cloud Computing
Linuxcon 2011   Crash Course in Open Source Cloud ComputingLinuxcon 2011   Crash Course in Open Source Cloud Computing
Linuxcon 2011 Crash Course in Open Source Cloud ComputingMark Hinkle
 
Opportunities and Challenges for Running Scientific Workflows on the Cloud
Opportunities and Challenges for Running Scientific Workflows on the Cloud Opportunities and Challenges for Running Scientific Workflows on the Cloud
Opportunities and Challenges for Running Scientific Workflows on the Cloud lyingcom
 
DZone’s 2016 Guide To Building And Deploying Applications In The Cloud
DZone’s 2016 Guide To Building And Deploying Applications In The CloudDZone’s 2016 Guide To Building And Deploying Applications In The Cloud
DZone’s 2016 Guide To Building And Deploying Applications In The CloudSingaram Subramanian
 
Ohio LinuxFest: Crash Course in Open Source Cloud Computing
Ohio LinuxFest:  Crash Course in Open Source Cloud ComputingOhio LinuxFest:  Crash Course in Open Source Cloud Computing
Ohio LinuxFest: Crash Course in Open Source Cloud ComputingMark Hinkle
 

Semelhante a CS519 - Cloud Types for Eventual Consistency (20)

IT 8003 Cloud ComputingFor this activi.docx
IT 8003 Cloud ComputingFor this activi.docxIT 8003 Cloud ComputingFor this activi.docx
IT 8003 Cloud ComputingFor this activi.docx
 
"Going Offline", one of the hottest mobile app trends
"Going Offline", one of the hottest mobile app trends"Going Offline", one of the hottest mobile app trends
"Going Offline", one of the hottest mobile app trends
 
Reactive Architecture
Reactive ArchitectureReactive Architecture
Reactive Architecture
 
Melbourne Virtual MuleSoft Meetup April 2022
Melbourne Virtual MuleSoft Meetup April 2022Melbourne Virtual MuleSoft Meetup April 2022
Melbourne Virtual MuleSoft Meetup April 2022
 
stackArmor - Security MicroSummit - McAfee
stackArmor - Security MicroSummit - McAfeestackArmor - Security MicroSummit - McAfee
stackArmor - Security MicroSummit - McAfee
 
Migrating to cloud-native_app_architectures_pivotal
Migrating to cloud-native_app_architectures_pivotalMigrating to cloud-native_app_architectures_pivotal
Migrating to cloud-native_app_architectures_pivotal
 
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
 
Migrating_to_Cloud-Native_App_Architectures_Pivotal
Migrating_to_Cloud-Native_App_Architectures_PivotalMigrating_to_Cloud-Native_App_Architectures_Pivotal
Migrating_to_Cloud-Native_App_Architectures_Pivotal
 
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
 
International Conference on Advances in Computing, Communicati.docx
International Conference on Advances in Computing, Communicati.docxInternational Conference on Advances in Computing, Communicati.docx
International Conference on Advances in Computing, Communicati.docx
 
Configurability for Cloud-Native Applications: Observability and Control
Configurability for Cloud-Native Applications: Observability and ControlConfigurability for Cloud-Native Applications: Observability and Control
Configurability for Cloud-Native Applications: Observability and Control
 
Why Cloud Management Makes $ense
Why Cloud Management Makes $enseWhy Cloud Management Makes $ense
Why Cloud Management Makes $ense
 
MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021
 
Twelve Factor - Designing for Change
Twelve Factor - Designing for ChangeTwelve Factor - Designing for Change
Twelve Factor - Designing for Change
 
APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?
APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?
APIDays 2018 - APIOps & Microservices - What is MICRO by the Way ?
 
Why Cloud Management Makes Sense
Why Cloud Management Makes SenseWhy Cloud Management Makes Sense
Why Cloud Management Makes Sense
 
Linuxcon 2011 Crash Course in Open Source Cloud Computing
Linuxcon 2011   Crash Course in Open Source Cloud ComputingLinuxcon 2011   Crash Course in Open Source Cloud Computing
Linuxcon 2011 Crash Course in Open Source Cloud Computing
 
Opportunities and Challenges for Running Scientific Workflows on the Cloud
Opportunities and Challenges for Running Scientific Workflows on the Cloud Opportunities and Challenges for Running Scientific Workflows on the Cloud
Opportunities and Challenges for Running Scientific Workflows on the Cloud
 
DZone’s 2016 Guide To Building And Deploying Applications In The Cloud
DZone’s 2016 Guide To Building And Deploying Applications In The CloudDZone’s 2016 Guide To Building And Deploying Applications In The Cloud
DZone’s 2016 Guide To Building And Deploying Applications In The Cloud
 
Ohio LinuxFest: Crash Course in Open Source Cloud Computing
Ohio LinuxFest:  Crash Course in Open Source Cloud ComputingOhio LinuxFest:  Crash Course in Open Source Cloud Computing
Ohio LinuxFest: Crash Course in Open Source Cloud Computing
 

Mais de Sergii Shmarkatiuk

CS589 paper presentation - What is in unison? A formal specification and refe...
CS589 paper presentation - What is in unison? A formal specification and refe...CS589 paper presentation - What is in unison? A formal specification and refe...
CS589 paper presentation - What is in unison? A formal specification and refe...Sergii Shmarkatiuk
 
CS519 - Visual Software Evolution Reconstruction
CS519 - Visual Software Evolution ReconstructionCS519 - Visual Software Evolution Reconstruction
CS519 - Visual Software Evolution ReconstructionSergii Shmarkatiuk
 
Software version numbering - DSL of change
Software version numbering - DSL of changeSoftware version numbering - DSL of change
Software version numbering - DSL of changeSergii Shmarkatiuk
 
Continuous integration for se group meeting
Continuous integration for se group meetingContinuous integration for se group meeting
Continuous integration for se group meetingSergii Shmarkatiuk
 
CS519 - Cloud Twin: Native Execution of Android Applications on the Windows P...
CS519 - Cloud Twin: Native Execution of Android Applications on the Windows P...CS519 - Cloud Twin: Native Execution of Android Applications on the Windows P...
CS519 - Cloud Twin: Native Execution of Android Applications on the Windows P...Sergii Shmarkatiuk
 
CS 584 - Aligning development tools with the way programmers think about code...
CS 584 - Aligning development tools with the way programmers think about code...CS 584 - Aligning development tools with the way programmers think about code...
CS 584 - Aligning development tools with the way programmers think about code...Sergii Shmarkatiuk
 
CS519 - homework project presentation
CS519 - homework project presentationCS519 - homework project presentation
CS519 - homework project presentationSergii Shmarkatiuk
 
CS519 - project idea presentation
CS519 - project idea presentationCS519 - project idea presentation
CS519 - project idea presentationSergii Shmarkatiuk
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment ManagementSergii Shmarkatiuk
 
01 - Introduction to Version Control
01 - Introduction to Version Control01 - Introduction to Version Control
01 - Introduction to Version ControlSergii Shmarkatiuk
 
1.2 introduction to scm - what does version number tell us
1.2   introduction to scm - what does version number tell us1.2   introduction to scm - what does version number tell us
1.2 introduction to scm - what does version number tell usSergii Shmarkatiuk
 
1.1 introduction to scm - xp and cm are chicken-and-egg
1.1   introduction to scm - xp and cm are chicken-and-egg1.1   introduction to scm - xp and cm are chicken-and-egg
1.1 introduction to scm - xp and cm are chicken-and-eggSergii Shmarkatiuk
 
1.0 about software configuration management trainings
1.0   about software configuration management trainings1.0   about software configuration management trainings
1.0 about software configuration management trainingsSergii Shmarkatiuk
 
04 - Agile Software Configuration Management
04 - Agile Software Configuration Management04 - Agile Software Configuration Management
04 - Agile Software Configuration ManagementSergii Shmarkatiuk
 
Agile software configuration management
Agile software configuration managementAgile software configuration management
Agile software configuration managementSergii Shmarkatiuk
 
управление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийуправление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийSergii Shmarkatiuk
 
Организуй свой репозиторий
Организуй свой репозиторийОрганизуй свой репозиторий
Организуй свой репозиторийSergii Shmarkatiuk
 

Mais de Sergii Shmarkatiuk (20)

CS589 paper presentation - What is in unison? A formal specification and refe...
CS589 paper presentation - What is in unison? A formal specification and refe...CS589 paper presentation - What is in unison? A formal specification and refe...
CS589 paper presentation - What is in unison? A formal specification and refe...
 
CS519 - Visual Software Evolution Reconstruction
CS519 - Visual Software Evolution ReconstructionCS519 - Visual Software Evolution Reconstruction
CS519 - Visual Software Evolution Reconstruction
 
Software version numbering - DSL of change
Software version numbering - DSL of changeSoftware version numbering - DSL of change
Software version numbering - DSL of change
 
Continuous integration for se group meeting
Continuous integration for se group meetingContinuous integration for se group meeting
Continuous integration for se group meeting
 
CS519 - Cloud Twin: Native Execution of Android Applications on the Windows P...
CS519 - Cloud Twin: Native Execution of Android Applications on the Windows P...CS519 - Cloud Twin: Native Execution of Android Applications on the Windows P...
CS519 - Cloud Twin: Native Execution of Android Applications on the Windows P...
 
CS 584 - Aligning development tools with the way programmers think about code...
CS 584 - Aligning development tools with the way programmers think about code...CS 584 - Aligning development tools with the way programmers think about code...
CS 584 - Aligning development tools with the way programmers think about code...
 
CS519 - homework project presentation
CS519 - homework project presentationCS519 - homework project presentation
CS519 - homework project presentation
 
CS519 - project idea presentation
CS519 - project idea presentationCS519 - project idea presentation
CS519 - project idea presentation
 
05 - Merge Management
05 - Merge Management05 - Merge Management
05 - Merge Management
 
03 - Continuous Integration
03 - Continuous Integration03 - Continuous Integration
03 - Continuous Integration
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment Management
 
01 - Introduction to Version Control
01 - Introduction to Version Control01 - Introduction to Version Control
01 - Introduction to Version Control
 
1.2 introduction to scm - what does version number tell us
1.2   introduction to scm - what does version number tell us1.2   introduction to scm - what does version number tell us
1.2 introduction to scm - what does version number tell us
 
1.1 introduction to scm - xp and cm are chicken-and-egg
1.1   introduction to scm - xp and cm are chicken-and-egg1.1   introduction to scm - xp and cm are chicken-and-egg
1.1 introduction to scm - xp and cm are chicken-and-egg
 
1.0 about software configuration management trainings
1.0   about software configuration management trainings1.0   about software configuration management trainings
1.0 about software configuration management trainings
 
04 - Agile Software Configuration Management
04 - Agile Software Configuration Management04 - Agile Software Configuration Management
04 - Agile Software Configuration Management
 
Breath of life
Breath of lifeBreath of life
Breath of life
 
Agile software configuration management
Agile software configuration managementAgile software configuration management
Agile software configuration management
 
управление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложенийуправление сборками и развертыванием веб приложений
управление сборками и развертыванием веб приложений
 
Организуй свой репозиторий
Организуй свой репозиторийОрганизуй свой репозиторий
Организуй свой репозиторий
 

Último

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

CS519 - Cloud Types for Eventual Consistency

  • 1. CLOUD TYPES FOR EVENTUAL CONSISTENCY Class: CS 519 – Software Evolution for Mobility Presenter: Sergii Shmarkatiuk Date: 10/09/2013
  • 2. MOTIVATION 2 Today there are more mobile applications available for download and usage than desktop applications.
  • 3. MOTIVATION 3 And number of mobile applications does not go down
  • 5. MOTIVATION 5 Mobile applications need to communicate with online services and with each other
  • 6. 6 MOTIVATION: WHY MOBILE APPS COMMUNICATE? Personal Publishing Games Data Collection Collaboration Sync and Backup Transactions Blog Facebook Wall Website Music Video SkyDrive Surveys High Scores Shared Lists Shared Calendar Shared Spreadsheet Real-time Turn-based Store Auction Matchmaking Remote Control Home Control Robotics Media Player
  • 7. MOTIVATION 7 Increased need of communication means more data
  • 8. MOTIVATION 8 One of the most effective ways of storing data for mobile devices is a cloud
  • 9. MOTIVATION 9 Being effective way of storage, cloud data manipulation poses some challenges for developers
  • 10. MOTIVATION 10 Developers usually have responsibility of managing different aspects of cloud data manipulation Cloud data Storage Synchroni zation Caching Manipulati on Conflicts resolution
  • 11. MOTIVATION 11 Cloud data manipulation should be simplified for more convenient use
  • 12. PROPOSED SOLUTION 12 Implementation of eventually consistent storage at the programming language level using cloud data types.
  • 13. WHAT IS EVENTUAL CONSISTENCY?  Weak consistency model of storing shared data in a distributed system that allows clients to perform updates against any replica at any time.  One of the approaches to the CAP (consistency, availability, partition tolerance) problem  Guarantee that all updates are eventually delivered to all replicas, and that they are applied in a consistent order  Transactional model providing basic requirements of atomicity and isolation without possibility of transactions serialization 13
  • 14. 14 TRANSACTIONS: PICK ANY TWO Atomicity Isolation Serializability
  • 15. 15 TRANSACTIONS: CHOICE OF EVENTUAL CONSISTENCY MODEL Atomicity Isolation Serializability Revisions
  • 16. REVISION DIAGRAMS BURCKHARDT’2011: SEMANTICS OF CONCURRENT REVISIONS 16Data propagate only along edges
  • 17. 18 Node Storage Compute Node Storage Compute Node Storage Compute Basic (peer-to-peer) Using Cloud Infrastructure Storage Storage Compute Compute Compute Storage Storage Client Client Client Client Client Client DISTRIBUTED SYSTEMS
  • 18. HOW TO PROGRAM USING CLOUD CONCEPTS? 19 Layer Storage Storage Compute Compute Compute Storage Storage Client Client Client Client Client Client Client Not physically secure Unreliable Cannot detect failures Potentially many Cloud Compute Physically secure, not so many Not reliable: no persistent state Can detect failures somewhat Relatively Expensive Cloud Storage Secure Reliable Can be very cheap
  • 20. DATA MANAGEMENT MODEL 21 device 1 device 2cloud• Client code:  Declare data types  read/update data  yield (=polite sync)  flush (=forced sync) • Under the hood:  Revision diagram rules
  • 21. 22 device 1 device 2cloud IMPLICIT TRANSACTIONS • At yield Runtime has permission to send or receive updates. Call this frequently, e.g. automatically “on idle”. • In between yields Runtime is not allowed to send or receive updates • Implies: all client code executes in a (eventually consistent) transaction … … … … … … … yield yield yield yieldyield yield yield yield
  • 22. STRONG CONSISTENCY ON- DEMAND  flush primitive blocks until local state has reached main revision and result has come back to device  Sufficient to implement strong consistency  Flush blocks –times out if server connection is not available. flush (blocks) (continue)
  • 23. YIELD/FLUSH EXAMPLE 24 yield (=polite sync) flush(=forced sync)
  • 24. FORK-JOIN AUTOMATON (FJA) 25  Data set is copied on forking  Data is manipulated in isolation after fork  When data is joined, changes are merged.  The merge is fully defined by the data type declarations.  some types may include custom merge functions  there is no failure, rollback, or retry B D CA fork fork fork join join
  • 25. PAPER CONTRIBUTIONS  Cloud types definition (CInt, CString, CSet)  Formal description of language constructs (big-step notation)  Fork-join automaton operations formalization (create, delete, propagate, fork, join, …)  Formalization of distribution operations (yield-pull, yield-flush, sync-pull, sync-flush, …)  Formalization of language constructs used by developers in client applications (new, delete, entries, all, yield, flush) 26
  • 26. PAPER CONTRIBUTIONS 27 No evaluation Reference/specification for developers implementing eventual consistency with cloud types
  • 27. PITFALLS 28 Last writer wins! Subtle difference between cloud type methods set and add
  • 28. RELATED WORK  CRDT (commutative replicated data types)  Cloud types allow non-commutative operations  No integration with fork-join automaton  Concurrent revisions approach  Necessity of explicit merge (rfork, rjoin, …)  Persistent data types  Do not take into account transactions or distribution  Operational transformations  Very similar to eventual consistency with cloud types, but difficult to implement  More focused on correctness checks  OLAP/OLTP  Not distributed  Google's Drive's Realtime API, Dropbox Sync API, Firebase  Complicated, too many things to care of 29
  • 29. QUESTIONS TO DISCUSS  Sergii: Is model of eventual consistency with cloud types really suitable for users data management?  Sergii: How does eventual consistency with cloud types ensure that there are no clones entities?  Sergii: How could developers use yield/flush operations effectively in their code? What is the typical case/example of flush or yield statement usage?  Sergii: How does data actually become eventually consistent? What mechanism does ensure that data distribution model is correct? 30
  • 30. QUESTIONS TO DISCUSS  Michael: Since the development of cloud types make the functionality of cloud synchronization available to the user as a type, how will that affect tools such as debugging? Will the debugging tools show the users the revision diagrams and expose the underling cloud functionality to the users, or will it hide it from them? Will this cloud functionality confuse users as to how these types are behaving?  Michael: How scalable is the solution? At what point will it start to break down because there are too many users hitting it? Will it start to break down with 10 users accessing the same data? 1000? 1M? 31
  • 31. FOLLOW-UP RESEARCH SUGGESTIONS  Sergii: Research on how existing types could be mapped to cloud types  Sergii: Study model limitations (silent conflict resolution)  Michael: While auto-synchronizing primitive cloud types are great for certain applications, it would be interesting to research ways to give users the power of eventual constancy while still providing a way for them to have finer grained control over the data. One use case would be to allow users to choose which other user's changes they would like to become constant with, or someone who's changes they chose to ignore 32

Notas do Editor

  1. a transaction schedule is serializable if its outcome (e.g., the resulting database state) is equal to the outcome of its transactions executed serially, i.e., sequentially without overlapping in time