SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Comet: An Active
Distributed Key-Value Store

  Roxana Geambasu
  Amit Levy
  Yoshi Kohno
  Arvind Krishnamurthy
  Hank Levy
  University of Washington
Distributed Key/Value Stores
   A simple put/get interface
   Great properties: scalability, availability, reliability
   Increasingly popular both within data centers and in P2P

           Data center                     P2P

         amazon.com



           Dynamo



                                                           2
Distributed Key/Value Stores
   A simple put/get interface
   Great properties: scalability, availability, reliability
   Increasingly popular both within data centers and in P2P

           Data center                     P2P

         amazon.com
           LinkedIn


           Dynamo
           Voldemort



                                                           3
Distributed Key/Value Stores
   A simple put/get interface
   Great properties: scalability, availability, reliability
   Increasingly popular both within data centers and in P2P

           Data center                     P2P

         amazon.com
           LinkedIn
            Facebook


           Dynamo
           Voldemort
            Cassandra


                                                           4
Distributed Key/Value Stores
   A simple put/get interface
   Great properties: scalability, availability, reliability
   Increasingly popular both within data centers and in P2P

           Data center                     P2P

         amazon.com                       Vuze
           LinkedIn
            Facebook


           Dynamo                       Vuze DHT
           Voldemort
            Cassandra


                                                           5
Distributed Key/Value Stores
   A simple put/get interface
   Great properties: scalability, availability, reliability
   Increasingly popular both within data centers and in P2P

           Data center                     P2P

         amazon.com                      Vuze
           LinkedIn                      uTorrent
            Facebook


           Dynamo                       Vuze DHT
           Voldemort                    uTorrent DHT
            Cassandra


                                                           6
Distributed Key/Value Storage Services
   Increasingly, key/value stores are shared by many apps
       Avoids per-app storage system deployment
   However, building apps atop today‟s stores is challenging

              Data center                     P2P
     Photo                  Jungle    Vuze    One-
                Altexa                               Vanish
     Bucket                  Disk     App    Swarm


            Amazon S3                        Vuze DHT




                                                              7
Challenge: Inflexible Key/Value Stores
   Applications have different (even conflicting) needs:
       Availability, security, performance, functionality
   But today‟s key/value stores are one-size-fits-all
   Motivating example: our Vanish experience


                        App 1    App 2      App 3


                                Key/value
                                  store


                                                             8
Motivating Example: Vanish [USENIX Security „09]
   Vanish is a self-destructing data system built on Vuze
   Vuze problems for Vanish:
     Fixed 8-hour data timeout
     Overly aggressive replication, which hurts security

   Changes were simple, but deploying them was difficult:
     Need Vuze engineer
                                     Vuze                   Future
     Long deployment cycle          Vuze       Vanish
                                     App                     app
     Hard to evaluate before
      deployment
                                         Vuze Vuze DHT
                                            Vuze DHT
                                              DHT

                                                                     9
Motivating Example: Vanish [USENIX Security „09]
   Vanish is a self-destructing data system built on Vuze
   Vuze problems for Vanish:
                         Question:
     Fixed 8-hour data timeout
           How can a key/value store support many
     Overly aggressive replication, which hurts security
               applications with different needs?
   Changes were simple, but deploying them was difficult:
     Need Vuze engineer
                                    Vuze                    Future
     Long deployment cycle         Vuze       Vanish
                                    App                      app
     Hard to evaluate before
      deployment
                                        Vuze Vuze DHT
                                           Vuze DHT
                                             DHT

                                                                     10
Extensible Key/Value Stores
   Allow apps to customize store‟s functions
     Different data lifetimes
     Different numbers of replicas
     Different replication intervals

   Allow apps to define new functions
     Tracking popularity: data item counts the number of reads
     Access logging: data item logs readers‟ IPs
     Adapting to context: data item returns different values to
      different requestors



                                                                   11
Design Philosophy
   We want an extensible key/value store
   But we want to keep it simple!
     Allow apps to inject tiny code fragments (10s of lines of code)
     Adding even a tiny amount of programmability into key/value
      stores can be extremely powerful

   This paper shows how to build extensible P2P DHTs
       We leverage our DHT experience to drive our design




                                                                   12
Outline
   Motivation
   Architecture
   Applications
   Conclusions




                   13
Comet
   DHT that supports application-specific customizations
   Applications store active objects instead of passive values
       Active objects contain small code snippets that control their
        behavior in the DHT


                       App 1         App 2     App 3



                                     Comet


                     Active object           Comet node                 14
Comet‟s Goals
   Flexibility
     Support     a wide variety of small, lightweight customizations

   Isolation and safety
       Limited knowledge, resource consumption, communication

   Lightweight
       Low overhead for hosting nodes




                                                                   15
Active Storage Objects (ASOs)
   The ASO consists of data and code
      The data is the value
      The code is a set of handlers that are called on put/get



    App 1   App 2     App 3
                                      ASO
                                      data      function onGet()
                                     code         […]
            Comet                               end




                                                                  16
Simple ASO Example
   Each replica keeps track of number of gets on an object

                  aso.value = “Hello world!”
     ASO
                  aso.getCount = 0
     data
                  function onGet()
     code
                    self.getCount = self.getCount + 1
                    return {self.value, self.getCount}
                  end

   The effect is powerful:
     Difficult to track object popularity in today‟s DHTs
     Trivial to do so in Comet without DHT modifications
                                                             17
Comet Architecture
                                    DHT Node

                                       ASO1
                                       data
                                       code
         Comet



                             ASO Extension API

                      External        Sandbox        Handler
                     Interaction      Policies      Invocation
                                   Active Runtime
       Traditional




                                                  K1 ASO1
                                                  K2 ASO2
          DHT




                                                 Local Store
                              Routing Substrate                  18
The ASO Extension API

        Applications       Customizations

                        Replication
           Vanish       Timeout
                        One-time values
                        Password access
          Adeona
                        Access logging
                        Smart tracker
       P2P File Sharing
                        Recursive gets
                       Publish / subscribe
         P2P Twitter
                       Hierarchical pub/sub
                       Node lifetimes
        Measurement
                       Replica monitoring
The ASO Extension API
     Intercept         Periodic          Host               DHT
     accesses           Tasks         Interaction        Interaction
onPut(caller)       onTimer()     getSystemTime()   get(key, nodes)
onGet(caller)                     getNodeIP()       put(key, data, nodes)
onUpdate(caller)                  getNodeID()       lookup(key)
                                  getASOKey()
                                  deleteSelf()

   Small yet powerful API for a wide variety of applications
        We built over a dozen application customizations
   We have explicitly chosen not to support:
      Sending arbitrary messages on the Internet
      Doing I/O operations
      Customizing routing …                                           20
The ASO Sandbox
1.   Limit ASO‟s knowledge and access
        Use a standard language-based sandbox
        Make the sandbox as small as possible (<5,000 LOC)
            Start with tiny Lua language and remove unneeded functions

2.   Limit ASO‟s resource consumption
        Limit per-handler bytecode instructions and memory
        Rate-limit incoming and outgoing ASO requests

3.   Restrict ASO‟s DHT interaction
        Prevent traffic amplification and DDoS attacks
        ASOs can talk only to their neighbors, no recursive requests

                                                                          21
Comet Prototype
   We built Comet on top of Vuze and Lua
       We deployed experimental nodes on PlanetLab

   In the future, we hope to deploy at a large scale
       Vuze engineer is particularly interested in Comet for
        debugging and experimentation purposes




                                                                22
Outline
   Motivation
   Architecture
   Applications
   Conclusions




                   23
Comet Applications
 Applications                       Customization        Lines of Code
                         Security-enhanced replication        41
      Vanish             Flexible timeout                     15
                         One-time values                      15
                         Password-based access                11
     Adeona
                         Access logging                       22
                         Smart Bittorrent tracker             43
P2P File Sharing
                         Recursive gets*                      9
                         Publish/subscribe                    14
   P2P Twitter
                         Hierarchical pub/sub*                20
                         DHT-internal node lifetimes          41
 Measurement
                         Replica monitoring                   21
                                                                    24
* Require signed ASOs (see paper)
Three Examples
1.   Application-specific DHT customization
2.   Context-aware storage object
3.   Self-monitoring DHT




                                              25
1. Application-Specific DHT Customization
   Example: customize the replication scheme
        function aso:selectReplicas(neighbors)
          [...]
        end
        function aso:onTimer()
          neighbors = comet.lookup()
          replicas = self.selectReplicas(neighbors)
          comet.put(self, replicas)
        end

   We have implemented the Vanish-specific replication
       Code is 41 lines in Lua
                                                          26
2. Context-Aware Storage Object
   Traditional distributed trackers return a randomized
    subset of the nodes
   Comet: a proximity-based distributed tracker
     Peers put their IPs and Vivaldi coordinates at torrentID
     On get, the ASO computes and returns the set of
      closest peers to the requestor

   ASO has 37 lines of Lua code




                                                                 27
Proximity-Based Distributed Tracker


            Comet tracker



                            Random tracker




                                             28
3. Self-Monitoring DHT
   Example: monitor a remote node‟s neighbors
        Put a monitoring ASO that “pings” its neighbors periodically

    aso.neighbors = {}
    function aso:onTimer()
      neighbors = comet.lookup()
      self.neighbors[comet.systemTime()] = neighbors
    end

   Useful for internal measurements of DHTs
        Provides additional visibility over external measurement
         (e.g., NAT/firewall traversal)

                                                                    29
Example Measurement: Vuze Node Lifetimes




                    External measurement
                Comet Internal measurement


                Vuze Node Lifetime (hours)
                                             30
Outline
   Motivation
   Architecture
   Evaluation
   Conclusions




                   31
Conclusions
   Extensibility allows a shared storage system to support
    applications with different needs

   Comet is an extensible DHT that allows per-application
    customizations
     Limited interfaces, language sandboxing, and resource and
      communication limits
     Opens DHTs to a new set of stronger applications


   Extensibility is likely useful in data centers (e.g., S3):
     Assured delete              Storage location awareness
     Logging and forensics       Popularity

                                                                  32

Mais conteúdo relacionado

Mais procurados

9 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 29 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 2Digicomp Academy AG
 
Automating Security for the Cloud - Make it Easy, Make it Safe
Automating Security for the Cloud - Make it Easy, Make it SafeAutomating Security for the Cloud - Make it Easy, Make it Safe
Automating Security for the Cloud - Make it Easy, Make it SafeCloudPassage
 
Serving Media From The Edge - Miles Ward - AWS Summit 2012 Australia
Serving Media From The Edge - Miles Ward - AWS Summit 2012 AustraliaServing Media From The Edge - Miles Ward - AWS Summit 2012 Australia
Serving Media From The Edge - Miles Ward - AWS Summit 2012 AustraliaAmazon Web Services
 
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptxDelivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptxOpenStack Foundation
 
Delivering Secure OpenStack IaaS for SaaS Products
Delivering Secure OpenStack IaaS for SaaS ProductsDelivering Secure OpenStack IaaS for SaaS Products
Delivering Secure OpenStack IaaS for SaaS ProductsCloudPassage
 
Windows Azure: Is Azure right for you?
Windows Azure: Is Azure right for you?Windows Azure: Is Azure right for you?
Windows Azure: Is Azure right for you?Intergen
 
Inaugural address manjusha - Indicthreads cloud computing conference 2011
Inaugural address manjusha -  Indicthreads cloud computing conference 2011Inaugural address manjusha -  Indicthreads cloud computing conference 2011
Inaugural address manjusha - Indicthreads cloud computing conference 2011IndicThreads
 
MAY 6, 2012: Interop Las Vegas "Why Open Clouds Are Winning"
MAY 6, 2012: Interop Las Vegas "Why Open Clouds Are Winning"MAY 6, 2012: Interop Las Vegas "Why Open Clouds Are Winning"
MAY 6, 2012: Interop Las Vegas "Why Open Clouds Are Winning"troyangrignon
 
Cloud Foundry Open Tour Keynote
Cloud Foundry Open Tour KeynoteCloud Foundry Open Tour Keynote
Cloud Foundry Open Tour KeynoteRamnivasLaddad
 
Getting Started Developing with Platform as a Service
Getting Started Developing with Platform as a ServiceGetting Started Developing with Platform as a Service
Getting Started Developing with Platform as a ServiceCloudBees
 
Oracle Cloud Computing Strategy (EMO)
Oracle Cloud Computing Strategy (EMO)Oracle Cloud Computing Strategy (EMO)
Oracle Cloud Computing Strategy (EMO)rachgregs
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseFabian Lange
 
Microsoft Cloud Services Architecture
Microsoft Cloud Services ArchitectureMicrosoft Cloud Services Architecture
Microsoft Cloud Services ArchitectureDavid Chou
 
BOI 2011 - Be what's next
BOI 2011 - Be what's nextBOI 2011 - Be what's next
BOI 2011 - Be what's nextTudor Damian
 
Ga cloud scaling 3 30-2012
Ga cloud scaling 3 30-2012Ga cloud scaling 3 30-2012
Ga cloud scaling 3 30-2012Andy Parsons
 
Softchoice Webinar Series: VMware vSphere 5.1 Changes
Softchoice Webinar Series: VMware vSphere 5.1 ChangesSoftchoice Webinar Series: VMware vSphere 5.1 Changes
Softchoice Webinar Series: VMware vSphere 5.1 ChangesSoftchoice Corporation
 
Joyent Cloud Data Sheet
Joyent Cloud Data SheetJoyent Cloud Data Sheet
Joyent Cloud Data SheetScott Herson
 

Mais procurados (20)

9 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 29 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 2
 
17h30 aws enterprise_app_jvaria
17h30 aws enterprise_app_jvaria17h30 aws enterprise_app_jvaria
17h30 aws enterprise_app_jvaria
 
Automating Security for the Cloud - Make it Easy, Make it Safe
Automating Security for the Cloud - Make it Easy, Make it SafeAutomating Security for the Cloud - Make it Easy, Make it Safe
Automating Security for the Cloud - Make it Easy, Make it Safe
 
Serving Media From The Edge - Miles Ward - AWS Summit 2012 Australia
Serving Media From The Edge - Miles Ward - AWS Summit 2012 AustraliaServing Media From The Edge - Miles Ward - AWS Summit 2012 Australia
Serving Media From The Edge - Miles Ward - AWS Summit 2012 Australia
 
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptxDelivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
Delivering Secure OpenStack IaaS for SaaS Products - OpenStack 2012.pptx
 
Delivering Secure OpenStack IaaS for SaaS Products
Delivering Secure OpenStack IaaS for SaaS ProductsDelivering Secure OpenStack IaaS for SaaS Products
Delivering Secure OpenStack IaaS for SaaS Products
 
Building a Hybrid Cloud
Building a Hybrid CloudBuilding a Hybrid Cloud
Building a Hybrid Cloud
 
Windows Azure: Is Azure right for you?
Windows Azure: Is Azure right for you?Windows Azure: Is Azure right for you?
Windows Azure: Is Azure right for you?
 
Inaugural address manjusha - Indicthreads cloud computing conference 2011
Inaugural address manjusha -  Indicthreads cloud computing conference 2011Inaugural address manjusha -  Indicthreads cloud computing conference 2011
Inaugural address manjusha - Indicthreads cloud computing conference 2011
 
MAY 6, 2012: Interop Las Vegas "Why Open Clouds Are Winning"
MAY 6, 2012: Interop Las Vegas "Why Open Clouds Are Winning"MAY 6, 2012: Interop Las Vegas "Why Open Clouds Are Winning"
MAY 6, 2012: Interop Las Vegas "Why Open Clouds Are Winning"
 
Cloud Foundry Open Tour Keynote
Cloud Foundry Open Tour KeynoteCloud Foundry Open Tour Keynote
Cloud Foundry Open Tour Keynote
 
Getting Started Developing with Platform as a Service
Getting Started Developing with Platform as a ServiceGetting Started Developing with Platform as a Service
Getting Started Developing with Platform as a Service
 
Oracle Cloud Computing Strategy (EMO)
Oracle Cloud Computing Strategy (EMO)Oracle Cloud Computing Strategy (EMO)
Oracle Cloud Computing Strategy (EMO)
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San Jose
 
Microsoft Cloud Services Architecture
Microsoft Cloud Services ArchitectureMicrosoft Cloud Services Architecture
Microsoft Cloud Services Architecture
 
BOI 2011 - Be what's next
BOI 2011 - Be what's nextBOI 2011 - Be what's next
BOI 2011 - Be what's next
 
TechHub pitch
TechHub pitchTechHub pitch
TechHub pitch
 
Ga cloud scaling 3 30-2012
Ga cloud scaling 3 30-2012Ga cloud scaling 3 30-2012
Ga cloud scaling 3 30-2012
 
Softchoice Webinar Series: VMware vSphere 5.1 Changes
Softchoice Webinar Series: VMware vSphere 5.1 ChangesSoftchoice Webinar Series: VMware vSphere 5.1 Changes
Softchoice Webinar Series: VMware vSphere 5.1 Changes
 
Joyent Cloud Data Sheet
Joyent Cloud Data SheetJoyent Cloud Data Sheet
Joyent Cloud Data Sheet
 

Destaque

Flexible bloom abstract
Flexible bloom   abstractFlexible bloom   abstract
Flexible bloom abstractUvaraj Shan
 
Flexible bloom for searching textual content
Flexible bloom for searching textual contentFlexible bloom for searching textual content
Flexible bloom for searching textual contentUvaraj Shan
 
ieee CSE & IT M.tech\BTECH project list
ieee CSE & IT M.tech\BTECH project listieee CSE & IT M.tech\BTECH project list
ieee CSE & IT M.tech\BTECH project listVision Solutions
 
Information Theoretic Co Clustering
Information Theoretic Co ClusteringInformation Theoretic Co Clustering
Information Theoretic Co ClusteringAllenWu
 
Nonnegative Matrix Factorization
Nonnegative Matrix FactorizationNonnegative Matrix Factorization
Nonnegative Matrix FactorizationTatsuya Yokota
 
Beginners Guide to Non-Negative Matrix Factorization
Beginners Guide to Non-Negative Matrix FactorizationBeginners Guide to Non-Negative Matrix Factorization
Beginners Guide to Non-Negative Matrix FactorizationBenjamin Bengfort
 
Latest Seminar Topics for Engineering,MCA,MSc Students
Latest Seminar Topics for Engineering,MCA,MSc StudentsLatest Seminar Topics for Engineering,MCA,MSc Students
Latest Seminar Topics for Engineering,MCA,MSc StudentsArun Kumar
 
Best topics for seminar
Best topics for seminarBest topics for seminar
Best topics for seminarshilpi nagpal
 

Destaque (10)

Flexible bloom abstract
Flexible bloom   abstractFlexible bloom   abstract
Flexible bloom abstract
 
WILF2011 - slides
WILF2011 - slidesWILF2011 - slides
WILF2011 - slides
 
Flexible bloom for searching textual content
Flexible bloom for searching textual contentFlexible bloom for searching textual content
Flexible bloom for searching textual content
 
ieee CSE & IT M.tech\BTECH project list
ieee CSE & IT M.tech\BTECH project listieee CSE & IT M.tech\BTECH project list
ieee CSE & IT M.tech\BTECH project list
 
ICCSA2014 - slides
ICCSA2014 - slidesICCSA2014 - slides
ICCSA2014 - slides
 
Information Theoretic Co Clustering
Information Theoretic Co ClusteringInformation Theoretic Co Clustering
Information Theoretic Co Clustering
 
Nonnegative Matrix Factorization
Nonnegative Matrix FactorizationNonnegative Matrix Factorization
Nonnegative Matrix Factorization
 
Beginners Guide to Non-Negative Matrix Factorization
Beginners Guide to Non-Negative Matrix FactorizationBeginners Guide to Non-Negative Matrix Factorization
Beginners Guide to Non-Negative Matrix Factorization
 
Latest Seminar Topics for Engineering,MCA,MSc Students
Latest Seminar Topics for Engineering,MCA,MSc StudentsLatest Seminar Topics for Engineering,MCA,MSc Students
Latest Seminar Topics for Engineering,MCA,MSc Students
 
Best topics for seminar
Best topics for seminarBest topics for seminar
Best topics for seminar
 

Semelhante a Comet

Cloud Computing: Making the right choice
Cloud Computing: Making the right choiceCloud Computing: Making the right choice
Cloud Computing: Making the right choiceIndicThreads
 
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateAccelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateMichael Elder
 
Becoming a hyperledger aries developer learn things.online
Becoming a hyperledger aries developer   learn things.onlineBecoming a hyperledger aries developer   learn things.online
Becoming a hyperledger aries developer learn things.onlinedjaber3
 
Alex Wade, Digital Library Interoperability
Alex Wade, Digital Library InteroperabilityAlex Wade, Digital Library Interoperability
Alex Wade, Digital Library Interoperabilityparker01
 
AWS & Intel: A Partnership Dedicated to Cloud Innovations
AWS & Intel: A Partnership Dedicated to Cloud InnovationsAWS & Intel: A Partnership Dedicated to Cloud Innovations
AWS & Intel: A Partnership Dedicated to Cloud InnovationsAmazon Web Services
 
Clearing the air on Cloud Computing
Clearing the air on Cloud ComputingClearing the air on Cloud Computing
Clearing the air on Cloud ComputingKarthik Sankar
 
Hadoop and WANdisco: The Future of Big Data
Hadoop and WANdisco: The Future of Big DataHadoop and WANdisco: The Future of Big Data
Hadoop and WANdisco: The Future of Big DataWANdisco Plc
 
When worlds Collide: HTML5 Meets the Cloud
When worlds Collide: HTML5 Meets the CloudWhen worlds Collide: HTML5 Meets the Cloud
When worlds Collide: HTML5 Meets the CloudDavid Pallmann
 
Leapfrogging with legacy
Leapfrogging with legacyLeapfrogging with legacy
Leapfrogging with legacyclive boulton
 
AWS Summit 2011: Architecting in the cloud
AWS Summit 2011: Architecting in the cloudAWS Summit 2011: Architecting in the cloud
AWS Summit 2011: Architecting in the cloudAmazon Web Services
 
Feed Herny developer training : crossplatform and HTML5
Feed Herny developer training : crossplatform and  HTML5Feed Herny developer training : crossplatform and  HTML5
Feed Herny developer training : crossplatform and HTML5Mobile Monday Brussels
 
John Merline - How make your cloud SASE
John Merline - How make your cloud SASE John Merline - How make your cloud SASE
John Merline - How make your cloud SASE AWS Chicago
 
Elastic Caching for a Smarter Planet - Make Every Transaction Count
Elastic Caching for a Smarter Planet - Make Every Transaction CountElastic Caching for a Smarter Planet - Make Every Transaction Count
Elastic Caching for a Smarter Planet - Make Every Transaction CountYakura Coffee
 
[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석
[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석
[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석Amazon Web Services Korea
 
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark LittleKeynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark LittleJAX London
 
Cloud Computing Introduction
Cloud Computing IntroductionCloud Computing Introduction
Cloud Computing IntroductionCraig Dickson
 
FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0 FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0 Mark Hinkle
 
Be My API How to Implement an API Strategy Everyone will Love
Be My API How to Implement an API Strategy Everyone will Love Be My API How to Implement an API Strategy Everyone will Love
Be My API How to Implement an API Strategy Everyone will Love CA API Management
 
Seeing Through the Clouds – the Vision of the CTO Office, Joe Baguley - Chief...
Seeing Through the Clouds – the Vision of the CTO Office, Joe Baguley - Chief...Seeing Through the Clouds – the Vision of the CTO Office, Joe Baguley - Chief...
Seeing Through the Clouds – the Vision of the CTO Office, Joe Baguley - Chief...Arrow ECS UK
 

Semelhante a Comet (20)

DEV-1467 - Darwino
DEV-1467 - DarwinoDEV-1467 - Darwino
DEV-1467 - Darwino
 
Cloud Computing: Making the right choice
Cloud Computing: Making the right choiceCloud Computing: Making the right choice
Cloud Computing: Making the right choice
 
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateAccelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud Private
 
Becoming a hyperledger aries developer learn things.online
Becoming a hyperledger aries developer   learn things.onlineBecoming a hyperledger aries developer   learn things.online
Becoming a hyperledger aries developer learn things.online
 
Alex Wade, Digital Library Interoperability
Alex Wade, Digital Library InteroperabilityAlex Wade, Digital Library Interoperability
Alex Wade, Digital Library Interoperability
 
AWS & Intel: A Partnership Dedicated to Cloud Innovations
AWS & Intel: A Partnership Dedicated to Cloud InnovationsAWS & Intel: A Partnership Dedicated to Cloud Innovations
AWS & Intel: A Partnership Dedicated to Cloud Innovations
 
Clearing the air on Cloud Computing
Clearing the air on Cloud ComputingClearing the air on Cloud Computing
Clearing the air on Cloud Computing
 
Hadoop and WANdisco: The Future of Big Data
Hadoop and WANdisco: The Future of Big DataHadoop and WANdisco: The Future of Big Data
Hadoop and WANdisco: The Future of Big Data
 
When worlds Collide: HTML5 Meets the Cloud
When worlds Collide: HTML5 Meets the CloudWhen worlds Collide: HTML5 Meets the Cloud
When worlds Collide: HTML5 Meets the Cloud
 
Leapfrogging with legacy
Leapfrogging with legacyLeapfrogging with legacy
Leapfrogging with legacy
 
AWS Summit 2011: Architecting in the cloud
AWS Summit 2011: Architecting in the cloudAWS Summit 2011: Architecting in the cloud
AWS Summit 2011: Architecting in the cloud
 
Feed Herny developer training : crossplatform and HTML5
Feed Herny developer training : crossplatform and  HTML5Feed Herny developer training : crossplatform and  HTML5
Feed Herny developer training : crossplatform and HTML5
 
John Merline - How make your cloud SASE
John Merline - How make your cloud SASE John Merline - How make your cloud SASE
John Merline - How make your cloud SASE
 
Elastic Caching for a Smarter Planet - Make Every Transaction Count
Elastic Caching for a Smarter Planet - Make Every Transaction CountElastic Caching for a Smarter Planet - Make Every Transaction Count
Elastic Caching for a Smarter Planet - Make Every Transaction Count
 
[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석
[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석
[AWS Dev Day] 기조연설 – Olivier Klein AWS 신기술 부문 책임자, 정성권 삼성전자 수석
 
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark LittleKeynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
 
Cloud Computing Introduction
Cloud Computing IntroductionCloud Computing Introduction
Cloud Computing Introduction
 
FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0 FLUX - Crash Course in Cloud 2.0
FLUX - Crash Course in Cloud 2.0
 
Be My API How to Implement an API Strategy Everyone will Love
Be My API How to Implement an API Strategy Everyone will Love Be My API How to Implement an API Strategy Everyone will Love
Be My API How to Implement an API Strategy Everyone will Love
 
Seeing Through the Clouds – the Vision of the CTO Office, Joe Baguley - Chief...
Seeing Through the Clouds – the Vision of the CTO Office, Joe Baguley - Chief...Seeing Through the Clouds – the Vision of the CTO Office, Joe Baguley - Chief...
Seeing Through the Clouds – the Vision of the CTO Office, Joe Baguley - Chief...
 

Comet

  • 1. Comet: An Active Distributed Key-Value Store Roxana Geambasu Amit Levy Yoshi Kohno Arvind Krishnamurthy Hank Levy University of Washington
  • 2. Distributed Key/Value Stores  A simple put/get interface  Great properties: scalability, availability, reliability  Increasingly popular both within data centers and in P2P Data center P2P amazon.com Dynamo 2
  • 3. Distributed Key/Value Stores  A simple put/get interface  Great properties: scalability, availability, reliability  Increasingly popular both within data centers and in P2P Data center P2P amazon.com LinkedIn Dynamo Voldemort 3
  • 4. Distributed Key/Value Stores  A simple put/get interface  Great properties: scalability, availability, reliability  Increasingly popular both within data centers and in P2P Data center P2P amazon.com LinkedIn Facebook Dynamo Voldemort Cassandra 4
  • 5. Distributed Key/Value Stores  A simple put/get interface  Great properties: scalability, availability, reliability  Increasingly popular both within data centers and in P2P Data center P2P amazon.com Vuze LinkedIn Facebook Dynamo Vuze DHT Voldemort Cassandra 5
  • 6. Distributed Key/Value Stores  A simple put/get interface  Great properties: scalability, availability, reliability  Increasingly popular both within data centers and in P2P Data center P2P amazon.com Vuze LinkedIn uTorrent Facebook Dynamo Vuze DHT Voldemort uTorrent DHT Cassandra 6
  • 7. Distributed Key/Value Storage Services  Increasingly, key/value stores are shared by many apps  Avoids per-app storage system deployment  However, building apps atop today‟s stores is challenging Data center P2P Photo Jungle Vuze One- Altexa Vanish Bucket Disk App Swarm Amazon S3 Vuze DHT 7
  • 8. Challenge: Inflexible Key/Value Stores  Applications have different (even conflicting) needs:  Availability, security, performance, functionality  But today‟s key/value stores are one-size-fits-all  Motivating example: our Vanish experience App 1 App 2 App 3 Key/value store 8
  • 9. Motivating Example: Vanish [USENIX Security „09]  Vanish is a self-destructing data system built on Vuze  Vuze problems for Vanish:  Fixed 8-hour data timeout  Overly aggressive replication, which hurts security  Changes were simple, but deploying them was difficult:  Need Vuze engineer Vuze Future  Long deployment cycle Vuze Vanish App app  Hard to evaluate before deployment Vuze Vuze DHT Vuze DHT DHT 9
  • 10. Motivating Example: Vanish [USENIX Security „09]  Vanish is a self-destructing data system built on Vuze  Vuze problems for Vanish: Question:  Fixed 8-hour data timeout How can a key/value store support many  Overly aggressive replication, which hurts security applications with different needs?  Changes were simple, but deploying them was difficult:  Need Vuze engineer Vuze Future  Long deployment cycle Vuze Vanish App app  Hard to evaluate before deployment Vuze Vuze DHT Vuze DHT DHT 10
  • 11. Extensible Key/Value Stores  Allow apps to customize store‟s functions  Different data lifetimes  Different numbers of replicas  Different replication intervals  Allow apps to define new functions  Tracking popularity: data item counts the number of reads  Access logging: data item logs readers‟ IPs  Adapting to context: data item returns different values to different requestors 11
  • 12. Design Philosophy  We want an extensible key/value store  But we want to keep it simple!  Allow apps to inject tiny code fragments (10s of lines of code)  Adding even a tiny amount of programmability into key/value stores can be extremely powerful  This paper shows how to build extensible P2P DHTs  We leverage our DHT experience to drive our design 12
  • 13. Outline  Motivation  Architecture  Applications  Conclusions 13
  • 14. Comet  DHT that supports application-specific customizations  Applications store active objects instead of passive values  Active objects contain small code snippets that control their behavior in the DHT App 1 App 2 App 3 Comet Active object Comet node 14
  • 15. Comet‟s Goals  Flexibility  Support a wide variety of small, lightweight customizations  Isolation and safety  Limited knowledge, resource consumption, communication  Lightweight  Low overhead for hosting nodes 15
  • 16. Active Storage Objects (ASOs)  The ASO consists of data and code  The data is the value  The code is a set of handlers that are called on put/get App 1 App 2 App 3 ASO data function onGet() code […] Comet end 16
  • 17. Simple ASO Example  Each replica keeps track of number of gets on an object aso.value = “Hello world!” ASO aso.getCount = 0 data function onGet() code self.getCount = self.getCount + 1 return {self.value, self.getCount} end  The effect is powerful:  Difficult to track object popularity in today‟s DHTs  Trivial to do so in Comet without DHT modifications 17
  • 18. Comet Architecture DHT Node ASO1 data code Comet ASO Extension API External Sandbox Handler Interaction Policies Invocation Active Runtime Traditional K1 ASO1 K2 ASO2 DHT Local Store Routing Substrate 18
  • 19. The ASO Extension API Applications Customizations Replication Vanish Timeout One-time values Password access Adeona Access logging Smart tracker P2P File Sharing Recursive gets Publish / subscribe P2P Twitter Hierarchical pub/sub Node lifetimes Measurement Replica monitoring
  • 20. The ASO Extension API Intercept Periodic Host DHT accesses Tasks Interaction Interaction onPut(caller) onTimer() getSystemTime() get(key, nodes) onGet(caller) getNodeIP() put(key, data, nodes) onUpdate(caller) getNodeID() lookup(key) getASOKey() deleteSelf()  Small yet powerful API for a wide variety of applications  We built over a dozen application customizations  We have explicitly chosen not to support:  Sending arbitrary messages on the Internet  Doing I/O operations  Customizing routing … 20
  • 21. The ASO Sandbox 1. Limit ASO‟s knowledge and access  Use a standard language-based sandbox  Make the sandbox as small as possible (<5,000 LOC)  Start with tiny Lua language and remove unneeded functions 2. Limit ASO‟s resource consumption  Limit per-handler bytecode instructions and memory  Rate-limit incoming and outgoing ASO requests 3. Restrict ASO‟s DHT interaction  Prevent traffic amplification and DDoS attacks  ASOs can talk only to their neighbors, no recursive requests 21
  • 22. Comet Prototype  We built Comet on top of Vuze and Lua  We deployed experimental nodes on PlanetLab  In the future, we hope to deploy at a large scale  Vuze engineer is particularly interested in Comet for debugging and experimentation purposes 22
  • 23. Outline  Motivation  Architecture  Applications  Conclusions 23
  • 24. Comet Applications Applications Customization Lines of Code Security-enhanced replication 41 Vanish Flexible timeout 15 One-time values 15 Password-based access 11 Adeona Access logging 22 Smart Bittorrent tracker 43 P2P File Sharing Recursive gets* 9 Publish/subscribe 14 P2P Twitter Hierarchical pub/sub* 20 DHT-internal node lifetimes 41 Measurement Replica monitoring 21 24 * Require signed ASOs (see paper)
  • 25. Three Examples 1. Application-specific DHT customization 2. Context-aware storage object 3. Self-monitoring DHT 25
  • 26. 1. Application-Specific DHT Customization  Example: customize the replication scheme function aso:selectReplicas(neighbors) [...] end function aso:onTimer() neighbors = comet.lookup() replicas = self.selectReplicas(neighbors) comet.put(self, replicas) end  We have implemented the Vanish-specific replication  Code is 41 lines in Lua 26
  • 27. 2. Context-Aware Storage Object  Traditional distributed trackers return a randomized subset of the nodes  Comet: a proximity-based distributed tracker  Peers put their IPs and Vivaldi coordinates at torrentID  On get, the ASO computes and returns the set of closest peers to the requestor  ASO has 37 lines of Lua code 27
  • 28. Proximity-Based Distributed Tracker Comet tracker Random tracker 28
  • 29. 3. Self-Monitoring DHT  Example: monitor a remote node‟s neighbors  Put a monitoring ASO that “pings” its neighbors periodically aso.neighbors = {} function aso:onTimer() neighbors = comet.lookup() self.neighbors[comet.systemTime()] = neighbors end  Useful for internal measurements of DHTs  Provides additional visibility over external measurement (e.g., NAT/firewall traversal) 29
  • 30. Example Measurement: Vuze Node Lifetimes External measurement Comet Internal measurement Vuze Node Lifetime (hours) 30
  • 31. Outline  Motivation  Architecture  Evaluation  Conclusions 31
  • 32. Conclusions  Extensibility allows a shared storage system to support applications with different needs  Comet is an extensible DHT that allows per-application customizations  Limited interfaces, language sandboxing, and resource and communication limits  Opens DHTs to a new set of stronger applications  Extensibility is likely useful in data centers (e.g., S3):  Assured delete  Storage location awareness  Logging and forensics  Popularity 32