SlideShare a Scribd company logo
Valhalla at Pantheon
     A Distributed File System Built
on Cassandra, Twisted Python, and FUSE
Pantheon's Requirements
● Density
  ○ Over 50K volumes in a single cluster
  ○ Over 1000 clients on a single application server
● Storage volume
  ○ Over 10TB in a single cluster
  ○ De-duplication of redundant data
● Throughput
  ○ Peaks during the U.S. business day and during site
    imports and backups
● Performance
  ○ Back-end for Drupal web applications; access
    has to be fast enough to not burden a web request
  ○ The applications won't be adapted from running on
    local disk to running on Valhalla
Why not off-the-shelf?
● NFS
  ○ UID mapping requires trusted clients and networks
  ○ Standard Kerberos implementations have no HA
  ○ No cloud HA for client/server communication
● GlusterFS
  ○ Cannot scale volume density (though HekaFS can)
  ○ Cannot de-duplicate data
● Ceph
  ○ Security model relies on trusted clients
● MooseFS
  ○ Only primitive security
Valhalla's Design Manifesto
● Drupal applications read and write whole
  files between 10KB and 10MB
   ○ And most reads hit the edge proxy cache
● Drupal tracks files in its database and has
  little need for fstat() or directory listings
● POSIX compliance for locking and
  permissions is unimportant
   ○ But volume-level access control is critical
● Volumes may contain up to 1MM files
● Availability and performance trump
  consistency
volumes                                               content_by_file


       /d1/      /d1/f1.txt         /d1/d3/    /d1/d3/f2.txt                 content
vol1                                                       ...   ade12...
                 ade12...                      c12bea...                     binary



        /dir1/     /dir1/file.txt       /dir1/f2.txt                         content
vol2                                                       ...   c12bea...
                   ade12...             c12bea...                            binary



        /dir3/     /dir3/f3.txt         /dir3/f2.txt                         content
vol3                                                       ...   13a8cd...
                   13a8cd...            c12bea...                            binary

                              ...                                                      ...




                                                       Valhalla 1.0
Valhalla 1.0 Retrospective
● What worked
  ○ Efficient volume cloning
● What didn't
  ○ Slow computation of directory content when a
    directory is small but contains a large subdirectory
    ■ Fix: Depth prefix for entries
  ○ Slow computation of file size
    ■ Fix: Denormalize metadata into directory entries
  ○ Problems replicating large files
    ■ Fix: Split files into chunks
volumes                                                            content_by_file


       1:/d1/      1:/d1/f1.txt              1:/d1/d3/     2:/d1/d3/f2.txt                        0           1
vol1               {"size": 1243,                          {"size": 111,
                                                                                ...   ade12...
                    "hash": ade12...                        "hash": c12bea...
                                                                                                  binary      binary



        1:/dir1/      1:/dir1/file.txt           1:/dir1/f2.txt                                   0
vol2                                                                            ...   c12bea...
                      {"size": 1243,             {"size": 111,                                    binary
                      "hash": ade12...            "hash": c12bea...




        1:/dir3/        1:/dir3/f3.txt            1:/dir3/f2.txt                                  0           1        2
vol3                                                                            ...   13a8cd...
                        {"size": 5243,            {"size": 111,                                   binary      binary   binary
                        "hash": 13a8cd...          "hash": c12bea...


                                       ...                                                              ...




                                                             Valhalla 2.0
Valhalla 2.0 Retrospective
● What worked
  ○ Version 1.0 issues fixed
● Problems to solve
  ○ Directory listings iterate over many columns
    ■ Fix: Cache complete PROPFIND responses
  ○ Single-threaded client bottlenecks
    ■ Fix: "Fast path" with direct HTTP from PHP and
        proxied by Nginx
  ○ File content compaction eats up too much disk
    ■ Fix: "Offloading" cold and large content to S3
        using iterative scripts and real-time decisions
listing_cache                               Unchanged

                                                  content_by_file
       /dir1/         /dir2/
vol1
       binary         binary
                                                        ...


       /dir1/                                        volumes
vol2
       binary
                                                        ...

       /d1/           /d1/d2/   /d3/
vol3
       binary         binary    binary

                ...




                                   Valhalla 3.0
Valhalla 3.0 Retrospective
● What worked
  ○ Version 2.0 issues fixed
● Problems to solve
  ○ Changes invalidate cached PROPFINDs, and then
    clients do a PROPFIND
    ■ Fix: Extend schema and API to support volume
        and directory event propagation
  ○ Single-threaded client still bottlenecks
    ■ Fix: New, multithreaded client
  ○ Client uses a write-invalidate cache
    ■ Fix: Move to a write-through/write-back model
Meanwhile, in backups
● Stopped using davfs2 file mounts
● New backup preparation algorithm
  a. Backup builder downloads volume manifest
  b. Iterates through each file and goes directly from S3
     to the tarball
  c. Any files not yet on S3 get pushed there by
     requesting an "offload"
● Lower client overhead
● Lower server overhead
● Longer backup preparation time
events                                       Unchanged

                                                                                       content_by_file
               t=1                                  t=2
vol1:/dir1/
               {"path": "/dir2/","event":           {"path": "/dir2/f2.txt","event":
               "CREATED"...                         "CREATED"...
                                                                                             ...


               t=5                                  t=6                                   volumes
vol1:/dir2/
               {"path": "/dir5/","event":           {"path": "/dir6/","event":
               "CREATED"...                         "CREATED"...
                                                                                             ...

               t=5                                  t=6
                                                                                        listing_cache
vol3:/d1/d2/
               {"path": "f3.txt","event":           {"path": "f3.txt","event":
               "CREATED"...                         "DESTROYED"...


                                              ...                                            ...




                                                      Valhalla 4.0
Valhalla 4.0 Retrospective
● What worked
  ○ Version 3.0 issues fixed
● Problems to solve
  ○ Cloning volumes breaks the event stream
     ■ Fix: Invalidate events from before the volume
        clone request
  ○ Clients receiving earlier copies of their own events
     ■ Fix: Only send clients events published by other
        clients
  ○ Clients write a file and then have to re-download it
    because of ETag limitations
     ■ Fix: Extend PUT to send ETag on response
  ○ Iteration through file content items times out
     ■ Fix: Iterate through local sstable keys
volume_metadata              Unchanged

                                              content_by_file
       rewritten
vol1
       t=3
                                                    ...

                                                 volumes
vol2

                                                    ...

       rewritten
                                               listing_cache
vol3
       t=2

                         ...                        ...

                                                  events



                                                    ...
                               Valhalla 4.5
Implementing the Client Side
● Ditched davfs2
  ○ Single-threaded with only experimental patches to
    multi-thread
  ○ Crufty code base designed to abstract FUSE versus
    Coda
● Based code off of fusedav
  ○ Already multithreaded
  ○ Uses proven Neon WebDAV client
● Gutted cache
  ○ Needed fine-grained update capability for write-
    through and write-back
  ○ Replaced with LevelDB
● Added in high-level FUSE operations
  ○ Atomic open+truncate, atomic create+open, etc.
Caching model
● LevelDB
  ○   Embeddable with low overhead
  ○   Iteratation without allocation management
  ○   Data model identical to single Cassandra row
  ○   Storage model similar to Cassandra sstables
  ○   Similar atomicity to row changes in Cassandra 1.1+
● Mirrored volume row locally
  ○ Including prefixes and metadata
  ○ May move to Merkel-based replication later
Benchmarks versus Local and Older Models
Benchmarks versus Local and Older Models
What's Next at Pantheon
● Move more toward a pNFS model
  ○ No file content storage in Cassandra (all in S3)
  ○ Peer-to-peer or other non-Cassandra file content
    coordination between clients
● Peer-to-peer cache advisories between
  clients
  ○ Less chatty server communication to poll events
  ○ Smaller window of incoherence (3s to <1s)
● Dropping the "fast path"
  ○ Client is already multithreaded
  ○ Client cache is smarter than direct Valhalla access
  ○ Minimizes incompatibility with Drupal
What's Next for the Community
● Finalize GPL-licensed FuseDAV client
  ○ Already public on GitHub
  ○ Public test suite with bundled server
  ○ Coordinate with existing FuseDAV users to make the
    Pantheon version the official successor
● Publish WebDAV extensions and seek
  standards acceptance
  ○ Progressive PROPFIND
  ○ ETag on PUT
David Strauss
● My groups
  ○ Drupal Association
  ○ Pantheon Systems
  ○ systemd/udev
● Get in touch
  ○ david@davidstrauss.net
  ○ @davidstrauss
  ○ facebook.com/warpforge
● Learn more about Pantheon
  ○   Developer Open House
  ○   Presented by Kyle Mathews and Josh Koenig
  ○   Thursday, February 14th, 12PM PST
  ○   Sign up: http://tinyurl.com/a3ofpc2

More Related Content

PDF
JDO 2019: Kubernetes logging techniques with a touch of LogSense - Marcin Stożek
PROIDEA
 
PPTX
Linux tech talk
Prince Raj
 
PPT
Extending ns
yogiinmood
 
ODP
Cassandra-Powered Distributed DNS
David Timothy Strauss
 
PPTX
Planificación clase a clase
Daniella Saavedra
 
PDF
How we cooked Elasticsearch, Consul, HAproxy and DNS-recursor
Oleg Tokarev
 
PDF
Intro to apache spark stand ford
Thu Hiền
 
PDF
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Cosimo Streppone
 
JDO 2019: Kubernetes logging techniques with a touch of LogSense - Marcin Stożek
PROIDEA
 
Linux tech talk
Prince Raj
 
Extending ns
yogiinmood
 
Cassandra-Powered Distributed DNS
David Timothy Strauss
 
Planificación clase a clase
Daniella Saavedra
 
How we cooked Elasticsearch, Consul, HAproxy and DNS-recursor
Oleg Tokarev
 
Intro to apache spark stand ford
Thu Hiền
 
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Cosimo Streppone
 

Similar to Valhalla at Pantheon (20)

PPTX
Troubleshooting containerized triple o deployment
Sadique Puthen
 
PDF
ContainerDayVietnam2016: Django Development with Docker
Docker-Hanoi
 
PDF
Rooting Out Root: User namespaces in Docker
Phil Estes
 
PDF
Taking Control of Chaos with Docker and Puppet
Puppet
 
PDF
Docker puppetcamp london 2013
Tomas Doran
 
PDF
dh-make-perl
Alex Muntada Duran
 
PDF
Docker4Drupal 2.1 for Development
Websolutions Agency
 
PDF
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Zabbix
 
PDF
Introduction to Docker and Monitoring with InfluxData
InfluxData
 
PDF
The whale, the container, and the ocean
Nick Palenchar
 
PPTX
Balena: a Moby-based container engine for IoT
Balena
 
PDF
State of Containers and the Convergence of HPC and BigData
inside-BigData.com
 
PDF
The internals and the latest trends of container runtimes
Akihiro Suda
 
PDF
Inside Docker for Fedora20/RHEL7
Etsuji Nakai
 
PPTX
Real World Experience of Running Docker in Development and Production
Ben Hall
 
PDF
Take care of hundred containers and not go crazy
Honza Horák
 
PDF
Demo 0.9.4
eTimeline, LLC
 
PDF
Be a Happier Developer with Docker: Tricks of the Trade
Docker, Inc.
 
PDF
Orchestrating Docker with OpenStack
Erica Windisch
 
PDF
OSDC 2015: Roland Kammerer | DRBD9: Managing High-Available Storage in Many-N...
NETWAYS
 
Troubleshooting containerized triple o deployment
Sadique Puthen
 
ContainerDayVietnam2016: Django Development with Docker
Docker-Hanoi
 
Rooting Out Root: User namespaces in Docker
Phil Estes
 
Taking Control of Chaos with Docker and Puppet
Puppet
 
Docker puppetcamp london 2013
Tomas Doran
 
dh-make-perl
Alex Muntada Duran
 
Docker4Drupal 2.1 for Development
Websolutions Agency
 
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Zabbix
 
Introduction to Docker and Monitoring with InfluxData
InfluxData
 
The whale, the container, and the ocean
Nick Palenchar
 
Balena: a Moby-based container engine for IoT
Balena
 
State of Containers and the Convergence of HPC and BigData
inside-BigData.com
 
The internals and the latest trends of container runtimes
Akihiro Suda
 
Inside Docker for Fedora20/RHEL7
Etsuji Nakai
 
Real World Experience of Running Docker in Development and Production
Ben Hall
 
Take care of hundred containers and not go crazy
Honza Horák
 
Demo 0.9.4
eTimeline, LLC
 
Be a Happier Developer with Docker: Tricks of the Trade
Docker, Inc.
 
Orchestrating Docker with OpenStack
Erica Windisch
 
OSDC 2015: Roland Kammerer | DRBD9: Managing High-Available Storage in Many-N...
NETWAYS
 
Ad

More from David Timothy Strauss (13)

PDF
Advanced Drupal 8 Caching
David Timothy Strauss
 
PDF
LCache DrupalCon Dublin 2016
David Timothy Strauss
 
PDF
Container Security via Monitoring and Orchestration - Container Security Summit
David Timothy Strauss
 
PDF
Don't Build "Death Star" Security - O'Reilly Software Architecture Conference...
David Timothy Strauss
 
PDF
Effective service and resource management with systemd
David Timothy Strauss
 
PDF
Containers > VMs
David Timothy Strauss
 
PDF
PHP at Density and Scale (Lone Star PHP 2014)
David Timothy Strauss
 
PDF
PHP at Density and Scale
David Timothy Strauss
 
PDF
PHP at Density and Scale
David Timothy Strauss
 
PDF
Scalable Drupal Infrastructure
David Timothy Strauss
 
PDF
Planning LAMP infrastructure
David Timothy Strauss
 
PDF
Is Drupal Secure?
David Timothy Strauss
 
ODP
Cassandra queuing
David Timothy Strauss
 
Advanced Drupal 8 Caching
David Timothy Strauss
 
LCache DrupalCon Dublin 2016
David Timothy Strauss
 
Container Security via Monitoring and Orchestration - Container Security Summit
David Timothy Strauss
 
Don't Build "Death Star" Security - O'Reilly Software Architecture Conference...
David Timothy Strauss
 
Effective service and resource management with systemd
David Timothy Strauss
 
Containers > VMs
David Timothy Strauss
 
PHP at Density and Scale (Lone Star PHP 2014)
David Timothy Strauss
 
PHP at Density and Scale
David Timothy Strauss
 
PHP at Density and Scale
David Timothy Strauss
 
Scalable Drupal Infrastructure
David Timothy Strauss
 
Planning LAMP infrastructure
David Timothy Strauss
 
Is Drupal Secure?
David Timothy Strauss
 
Cassandra queuing
David Timothy Strauss
 
Ad

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
Software Development Methodologies in 2025
KodekX
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
Software Development Methodologies in 2025
KodekX
 

Valhalla at Pantheon

  • 1. Valhalla at Pantheon A Distributed File System Built on Cassandra, Twisted Python, and FUSE
  • 2. Pantheon's Requirements ● Density ○ Over 50K volumes in a single cluster ○ Over 1000 clients on a single application server ● Storage volume ○ Over 10TB in a single cluster ○ De-duplication of redundant data ● Throughput ○ Peaks during the U.S. business day and during site imports and backups ● Performance ○ Back-end for Drupal web applications; access has to be fast enough to not burden a web request ○ The applications won't be adapted from running on local disk to running on Valhalla
  • 3. Why not off-the-shelf? ● NFS ○ UID mapping requires trusted clients and networks ○ Standard Kerberos implementations have no HA ○ No cloud HA for client/server communication ● GlusterFS ○ Cannot scale volume density (though HekaFS can) ○ Cannot de-duplicate data ● Ceph ○ Security model relies on trusted clients ● MooseFS ○ Only primitive security
  • 4. Valhalla's Design Manifesto ● Drupal applications read and write whole files between 10KB and 10MB ○ And most reads hit the edge proxy cache ● Drupal tracks files in its database and has little need for fstat() or directory listings ● POSIX compliance for locking and permissions is unimportant ○ But volume-level access control is critical ● Volumes may contain up to 1MM files ● Availability and performance trump consistency
  • 5. volumes content_by_file /d1/ /d1/f1.txt /d1/d3/ /d1/d3/f2.txt content vol1 ... ade12... ade12... c12bea... binary /dir1/ /dir1/file.txt /dir1/f2.txt content vol2 ... c12bea... ade12... c12bea... binary /dir3/ /dir3/f3.txt /dir3/f2.txt content vol3 ... 13a8cd... 13a8cd... c12bea... binary ... ... Valhalla 1.0
  • 6. Valhalla 1.0 Retrospective ● What worked ○ Efficient volume cloning ● What didn't ○ Slow computation of directory content when a directory is small but contains a large subdirectory ■ Fix: Depth prefix for entries ○ Slow computation of file size ■ Fix: Denormalize metadata into directory entries ○ Problems replicating large files ■ Fix: Split files into chunks
  • 7. volumes content_by_file 1:/d1/ 1:/d1/f1.txt 1:/d1/d3/ 2:/d1/d3/f2.txt 0 1 vol1 {"size": 1243, {"size": 111, ... ade12... "hash": ade12... "hash": c12bea... binary binary 1:/dir1/ 1:/dir1/file.txt 1:/dir1/f2.txt 0 vol2 ... c12bea... {"size": 1243, {"size": 111, binary "hash": ade12... "hash": c12bea... 1:/dir3/ 1:/dir3/f3.txt 1:/dir3/f2.txt 0 1 2 vol3 ... 13a8cd... {"size": 5243, {"size": 111, binary binary binary "hash": 13a8cd... "hash": c12bea... ... ... Valhalla 2.0
  • 8. Valhalla 2.0 Retrospective ● What worked ○ Version 1.0 issues fixed ● Problems to solve ○ Directory listings iterate over many columns ■ Fix: Cache complete PROPFIND responses ○ Single-threaded client bottlenecks ■ Fix: "Fast path" with direct HTTP from PHP and proxied by Nginx ○ File content compaction eats up too much disk ■ Fix: "Offloading" cold and large content to S3 using iterative scripts and real-time decisions
  • 9. listing_cache Unchanged content_by_file /dir1/ /dir2/ vol1 binary binary ... /dir1/ volumes vol2 binary ... /d1/ /d1/d2/ /d3/ vol3 binary binary binary ... Valhalla 3.0
  • 10. Valhalla 3.0 Retrospective ● What worked ○ Version 2.0 issues fixed ● Problems to solve ○ Changes invalidate cached PROPFINDs, and then clients do a PROPFIND ■ Fix: Extend schema and API to support volume and directory event propagation ○ Single-threaded client still bottlenecks ■ Fix: New, multithreaded client ○ Client uses a write-invalidate cache ■ Fix: Move to a write-through/write-back model
  • 11. Meanwhile, in backups ● Stopped using davfs2 file mounts ● New backup preparation algorithm a. Backup builder downloads volume manifest b. Iterates through each file and goes directly from S3 to the tarball c. Any files not yet on S3 get pushed there by requesting an "offload" ● Lower client overhead ● Lower server overhead ● Longer backup preparation time
  • 12. events Unchanged content_by_file t=1 t=2 vol1:/dir1/ {"path": "/dir2/","event": {"path": "/dir2/f2.txt","event": "CREATED"... "CREATED"... ... t=5 t=6 volumes vol1:/dir2/ {"path": "/dir5/","event": {"path": "/dir6/","event": "CREATED"... "CREATED"... ... t=5 t=6 listing_cache vol3:/d1/d2/ {"path": "f3.txt","event": {"path": "f3.txt","event": "CREATED"... "DESTROYED"... ... ... Valhalla 4.0
  • 13. Valhalla 4.0 Retrospective ● What worked ○ Version 3.0 issues fixed ● Problems to solve ○ Cloning volumes breaks the event stream ■ Fix: Invalidate events from before the volume clone request ○ Clients receiving earlier copies of their own events ■ Fix: Only send clients events published by other clients ○ Clients write a file and then have to re-download it because of ETag limitations ■ Fix: Extend PUT to send ETag on response ○ Iteration through file content items times out ■ Fix: Iterate through local sstable keys
  • 14. volume_metadata Unchanged content_by_file rewritten vol1 t=3 ... volumes vol2 ... rewritten listing_cache vol3 t=2 ... ... events ... Valhalla 4.5
  • 15. Implementing the Client Side ● Ditched davfs2 ○ Single-threaded with only experimental patches to multi-thread ○ Crufty code base designed to abstract FUSE versus Coda ● Based code off of fusedav ○ Already multithreaded ○ Uses proven Neon WebDAV client ● Gutted cache ○ Needed fine-grained update capability for write- through and write-back ○ Replaced with LevelDB ● Added in high-level FUSE operations ○ Atomic open+truncate, atomic create+open, etc.
  • 16. Caching model ● LevelDB ○ Embeddable with low overhead ○ Iteratation without allocation management ○ Data model identical to single Cassandra row ○ Storage model similar to Cassandra sstables ○ Similar atomicity to row changes in Cassandra 1.1+ ● Mirrored volume row locally ○ Including prefixes and metadata ○ May move to Merkel-based replication later
  • 17. Benchmarks versus Local and Older Models
  • 18. Benchmarks versus Local and Older Models
  • 19. What's Next at Pantheon ● Move more toward a pNFS model ○ No file content storage in Cassandra (all in S3) ○ Peer-to-peer or other non-Cassandra file content coordination between clients ● Peer-to-peer cache advisories between clients ○ Less chatty server communication to poll events ○ Smaller window of incoherence (3s to <1s) ● Dropping the "fast path" ○ Client is already multithreaded ○ Client cache is smarter than direct Valhalla access ○ Minimizes incompatibility with Drupal
  • 20. What's Next for the Community ● Finalize GPL-licensed FuseDAV client ○ Already public on GitHub ○ Public test suite with bundled server ○ Coordinate with existing FuseDAV users to make the Pantheon version the official successor ● Publish WebDAV extensions and seek standards acceptance ○ Progressive PROPFIND ○ ETag on PUT
  • 21. David Strauss ● My groups ○ Drupal Association ○ Pantheon Systems ○ systemd/udev ● Get in touch ○ [email protected] ○ @davidstrauss ○ facebook.com/warpforge ● Learn more about Pantheon ○ Developer Open House ○ Presented by Kyle Mathews and Josh Koenig ○ Thursday, February 14th, 12PM PST ○ Sign up: http://tinyurl.com/a3ofpc2