Movatterモバイル変換


[0]ホーム

URL:


Uploaded bybcantrill
PDF, PPTX5,996 views

Bringing the Unix Philosophy to Big Data

The document summarizes the Unix philosophy of building systems out of small, single-purpose programs and how this approach can be applied to big data problems. It describes how Joyent's Manta object storage system brings this philosophy to big data by combining ZFS for scalable storage with OS-level virtualization using zones to allow Unix tools and approaches to be used on large datasets. Manta allows computations to be run directly on stored data rather than requiring data movement, enabling terse Unix-style one-liners to solve problems like word counting on big data.

In this document
Powered by AI

Introduction to Unix, its minimalist philosophy, and how it revolutionized systems thinking.

Comparison of Unix solutions and traditional programming approaches to word frequency challenges.

Connection of Big Data problems to earlier Unix challenges, highlighting the lack of Unix philosophy.

Challenges of scaling for Big Data, including multi-tenancy and the need to leverage Unix philosophies.

Overview of scalable storage protocols: block, file, and object, emphasizing their pros and cons.

Discussion on OS-level virtualization vs hardware virtualization, introducing lightweight containers.

Combining ZFS and Zones for an efficient object store that leverages Unix for Big Data applications.

Introduction of Manta, a scalable system utilizing Unix philosophy for processing large data efficiently.

Manta's design principles including consistency preferences, hierarchical storage, and SDK support.

Prospects of compute/data convergence and Manta's role as a pioneering system in future Big Data solutions.

Information on Manta, including product details, documentation, and community engagement opportunities.

Embed presentation

Download as PDF, PPTX
Bringing the UnixPhilosophy to Big DataBryan CantrillSVP, Engineeringbryan@joyent.com@bcantrill
Unix•When Unix appeared in the early 1970s, it was not just anew system, but a new way of thinking about systems•Instead of a sealed monolith, the operating system wasa collection of small, easily understood programs•First Edition Unix (1971) contained many programs thatwe still use today (ls, rm, cat, mv)•Its very name conveyed this minimalist aesthetic: Unix isa homophone of “eunuchs” — a castrated MulticsWe were a bit oppressed by the big system mentality. Kenwanted to do something simple. — Dennis Ritchie
Unix: Let there be light•In 1969, Doug McIlroy had the idea of connectingdifferent components:At the same time that Thompson and Ritchie were sketchingout a file system, I was sketching out how to do dataprocessing on the blackboard by connecting togethercascades of processes•This was the primordial pipe, but it took three years topersuade Thompson to adopt it:And one day I came up with a syntax for the shell that wentalong with the piping, and Ken said, “I’m going to do it!”
Unix: ...and there was lightAnd the next morning we had thisorgy of one-liners. — Doug McIlroy
The Unix philosophy•The pipe — coupled with the small-system aesthetic —gave rise to the Unix philosophy, as articulated by DougMcIlroy:••Write programs to work together••Write programs that do one thing and do it wellWrite programs that handle text streams, becausethat is a universal interfaceFour decades later, this philosophy remains the singlemost important revolution in software systems thinking!
Doug McIlroy v. Don Knuth: FIGHT!•In 1986, Jon Bentley posed the challenge that becamethe Epic Rap Battle of computer science history:Read a file of text, determine the n most frequently usedwords, and print out a sorted list of those words along withtheir frequencies.•Don Knuth’s solution: an elaborate program in WEB, aPascal-like literate programming system of his owninvention, using a purpose-built algorithm•Doug McIlroy’s solution shows the power of the Unixphilosophy:tr -cs A-Za-z 'n' | tr A-Z a-z | sort | uniq -c | sort -rn | sed ${1}q
Big Data: History repeats itself?•The original Google MapReduce paper (Dean et al.,OSDI ’04) poses a problem disturbingly similar toBentley’s challenge nearly two decades prior:Count of URL Access Frequency: The function processeslogs of web page requests and outputs ⟨URL, 1⟩. Thereduce function adds together all values for the same URLand emits a ⟨URL, total count⟩ pair••But the solutions do not adhere to the Unix philosophy...•e.g., Appendix A of the OSDI ’04 paper has a 71 lineword count in C++ — with nary a wc in sight...and nor do they make use of the substantial Unixfoundation for data processing
Big Data: Challenges•Must be able to scale storage to allow for “big data” —quantities of data that dwarf a single machine•••Must allow for massively parallel executionMust allow for multi-tenancyTo make use of both the Unix philosophy and its toolset,must be able to virtualize the operating system
Scaling storage•There are essentially three protocols for scalablestorage: block, file and object•Block (i.e., a SAN) is far too low an abstraction — andnotoriously expensive to scale•File (i.e., NAS) is too permissive an abstraction — itimplies a coherent store for arbitrary (partial) writes,trying (and failing) to be both C and A in CAP•Object (e.g., S3) is similar “enough” to a file-basedabstraction, but by not allowing partial writes, allows forproper CAP tradeoffs
Object storage••Object storage systems do not allow for partial updates•A different approach is to have a highly reliable local filesystem that erasure encodes across local spindles —with entire objects duplicated across nodes foravailability•ZFS pioneered both reliability and efficiency of thismodel with RAID-Z — and has refined it over the pastdecade of production use•ZFS is one of the four foundational technologies inJoyent’s open source SmartOSFor both durability and availability, objects are generallyerasure encoded across spindles on different nodes
Virtualizing the operating system?•Historically — since the 1960s — systems have beenvirtualized at the level of hardware•Hardware virtualization has its advantages, but it’sheavyweight: operating systems are not designed toshare resources like DRAM, CPU, I/O devices, etc.•One can instead virtualize at the level of the operatingsystem: a single OS kernel that creates lightweightcontainers — on the metal, but securely partitioned•Pioneered by BSD’s jails; taken to a logical extreme byzones found in Joyent’s SmartOS
Idea: ZFS + Zones?•Can we combine the efficiency and reliability of ZFSwith the abstraction provided by zones to develop anobject store that has compute as a first-class citizen?•ZFS rollback allows for zones to be trashed — simplyrollback the zone after compute completes on an object•Add a job scheduling system that allows for both mapand reduce phases of distributed work•Would allow for the Unix toolset to be used on arbitrarylarge amounts of data — unlocking big data one-liners•If it perhaps seems obvious now, it wasn’t at the time...
Idea: ZFS + Zones?
Manta: ZFS + Zones!•Building a sophisticated distributed system on top ofZFS and zones, we have built Manta, an internet-facingobject storage system offering in situ compute•That is, the description of compute can be brought towhere objects reside instead of having to backhaulobjects to transient compute•The abstractions made available for computation areanything that can run on the OS...•...and as a reminder, the OS — Unix — was built aroundthe notion of ad hoc unstructured data processing, andallows for remarkably terse expressions of computation
Manta: Unix for Big Data•Manta allows for an arbitrarily scalable variant ofMcIlroy’s solution to Bentley’s challenge:mfind -t o /bcantrill/public/v7/usr/man | mjob create -o -m "tr -cs A-Za-z 'n' | tr A-Z a-z | sort | uniq -c" -r "awk '{ x[$2] += $1 }END { for (w in x) { print x[w] " " w } }' | sort -rn | sed ${1}q"•This description not only terse, it is high performing: datais left at rest — with the “map” phase doing heavyreduction of the data stream•As such, Manta — like Unix — is not merely syntacticsugar; it converges compute and data in a new way
Manta: CAP tradeoffs•Eventual consistency represents the wrong CAPtradeoffs for most; we prefer consistency overavailability for writes (but still availability for reads)•Many more details:http://dtrace.org/blogs/dap/2013/07/03/fault-tolerance-in-manta/•Celebrity endorsement:
Manta: Other design principles•Hierarchical storage is an excellent idea (ht: Multics);Manta implements proper directories, delimited with aforward slash•Manta implements a snapshot/link hybrid dubbed asnaplink; can be used to effect versioning••Manta has full support for CORS headers••Manta SDKs exist for node.js, Java, Ruby, PythonManta uses SSH-based HTTP auth for client-sidetooling (IETF draft-cavage-http-signatures-00)“npm install manta” for command line interface
Manta and the future of big data•We believe compute/data convergence to be the futureof big data: stores of record must support computationas a first-class, in situ operation•We believe that Unix is a natural way of expressing thiscomputation — and that the OS is the right level atwhich to virtualize to support this securely•We believe that ZFS is the only sane storage substrateunderpinning for such a system•Manta will surely not be the only system to represent theconfluence of these — but it is the first•We are actively retooling our software stack in terms ofManta — Manta is changing the way we developsoftware!
Manta: More information•Product page:http://joyent.com/products/manta•node.js module:https://github.com/joyent/node-manta•Manta documentation:http://apidocs.joyent.com/manta/•IRC, e-mail, Twitter, etc.:#manta on freenode, manta@joyent.com, @mcavage,@dapsays, @yunongx, @joyent•Here’s to the orgy of big data one-liners!

Recommended

PDF
The dream is alive! Running Linux containers on an illumos kernel
PDF
zenoh -- the ZEro Network OverHead protocol
PDF
Introduction of AArch64 TrustZone and OPTEE
PDF
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
PDF
(P.D.F. FILE) Programming Kubernetes: Developing Cloud-Native Applications
PDF
Linux: LVM
PDF
BlueZで遊んでみる - BLE大阪勉強会
PDF
ApacheCon09: Avro
PDF
Linux Notes-1.pdf
PDF
HDFS Architecture
PDF
Introduction to Ubuntu
PDF
Library Operating System for Linux #netdev01
PDF
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
PPTX
Facebook architecture presentation: scalability challenge
PPTX
Linux IO
KEY
Node.js - Best practices
PDF
AOS Lab 2: Hello, xv6!
PPT
Linux file system
TXT
OPTEE on QEMU - Build Tutorial
PPTX
Nettoyer et transformer ses données avec Openrefine : partie 2
PDF
The Linux Kernel Implementation of Pipes and FIFOs
PPT
Real Time Analytics for Big Data a Twitter Case Study
PDF
Linux Kernel Overview
PDF
Pfsense 121202023417-phpapp02
PPT
Linux file system nevigation
PDF
Big Data Processing with Spark and Scala
PPTX
Aca11 bk2 ch9
DOC
6 stages of linux boot process
PPTX
Linux principles and philosophy
PDF
Microservice Architecture

More Related Content

PDF
The dream is alive! Running Linux containers on an illumos kernel
PDF
zenoh -- the ZEro Network OverHead protocol
PDF
Introduction of AArch64 TrustZone and OPTEE
PDF
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
PDF
(P.D.F. FILE) Programming Kubernetes: Developing Cloud-Native Applications
PDF
Linux: LVM
PDF
BlueZで遊んでみる - BLE大阪勉強会
PDF
ApacheCon09: Avro
The dream is alive! Running Linux containers on an illumos kernel
zenoh -- the ZEro Network OverHead protocol
Introduction of AArch64 TrustZone and OPTEE
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
(P.D.F. FILE) Programming Kubernetes: Developing Cloud-Native Applications
Linux: LVM
BlueZで遊んでみる - BLE大阪勉強会
ApacheCon09: Avro

What's hot

PDF
Linux Notes-1.pdf
PDF
HDFS Architecture
PDF
Introduction to Ubuntu
PDF
Library Operating System for Linux #netdev01
PDF
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
PPTX
Facebook architecture presentation: scalability challenge
PPTX
Linux IO
KEY
Node.js - Best practices
PDF
AOS Lab 2: Hello, xv6!
PPT
Linux file system
TXT
OPTEE on QEMU - Build Tutorial
PPTX
Nettoyer et transformer ses données avec Openrefine : partie 2
PDF
The Linux Kernel Implementation of Pipes and FIFOs
PPT
Real Time Analytics for Big Data a Twitter Case Study
PDF
Linux Kernel Overview
PDF
Pfsense 121202023417-phpapp02
PPT
Linux file system nevigation
PDF
Big Data Processing with Spark and Scala
PPTX
Aca11 bk2 ch9
DOC
6 stages of linux boot process
Linux Notes-1.pdf
HDFS Architecture
Introduction to Ubuntu
Library Operating System for Linux #netdev01
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
Facebook architecture presentation: scalability challenge
Linux IO
Node.js - Best practices
AOS Lab 2: Hello, xv6!
Linux file system
OPTEE on QEMU - Build Tutorial
Nettoyer et transformer ses données avec Openrefine : partie 2
The Linux Kernel Implementation of Pipes and FIFOs
Real Time Analytics for Big Data a Twitter Case Study
Linux Kernel Overview
Pfsense 121202023417-phpapp02
Linux file system nevigation
Big Data Processing with Spark and Scala
Aca11 bk2 ch9
6 stages of linux boot process

Viewers also liked

PPTX
Linux principles and philosophy
PDF
Microservice Architecture
PDF
Corporate Open Source Anti-patterns
PPTX
Eduards Sizovs - Micro Service Architecture
PPTX
Linux principles and philosophy
 
PPTX
Mockito vs JMockit, battle of the mocking frameworks
PDF
Oral tradition in software engineering: Passing the craft across generations
PPTX
Unix philosophy and principles
PPTX
Mocking
PDF
The State of Cloud 2016: The whirlwind of creative destruction
PDF
To Microservices and Beyond
ODP
Circuit breakers for Java: Failsafe, Javaslang-Circuitbreaker, Hystrix and Ve...
PDF
Down Memory Lane: Two Decades with the Slab Allocator
PDF
Writing Well-Behaved Unix Utilities
PPTX
Using Hystrix to Build Resilient Distributed Systems
KEY
Mobile Knife Fighting at JSConf US
PPTX
Unix Philosophy
PDF
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
PPTX
How we sleep well at night using Hystrix at Finn.no
PPTX
Mocking Test - QA Ninja Conf 2016
Linux principles and philosophy
Microservice Architecture
Corporate Open Source Anti-patterns
Eduards Sizovs - Micro Service Architecture
Linux principles and philosophy
 
Mockito vs JMockit, battle of the mocking frameworks
Oral tradition in software engineering: Passing the craft across generations
Unix philosophy and principles
Mocking
The State of Cloud 2016: The whirlwind of creative destruction
To Microservices and Beyond
Circuit breakers for Java: Failsafe, Javaslang-Circuitbreaker, Hystrix and Ve...
Down Memory Lane: Two Decades with the Slab Allocator
Writing Well-Behaved Unix Utilities
Using Hystrix to Build Resilient Distributed Systems
Mobile Knife Fighting at JSConf US
Unix Philosophy
Microservices vs. The First Law of Distributed Objects - GOTO Nights Chicago ...
How we sleep well at night using Hystrix at Finn.no
Mocking Test - QA Ninja Conf 2016

Similar to Bringing the Unix Philosophy to Big Data

PDF
Manta: a new internet-facing object storage facility that features compute by...
ODP
Block Storage For VMs With Ceph
PDF
The Container Revolution: Reflections after the first decade
PDF
The Peril and Promise of Early Adoption: Arriving 10 Years Early to Containers
PDF
Distributed Data processing in a Cloud
PPT
Google Cloud Computing on Google Developer 2008 Day
PDF
The Internet-of-things: Architecting for the deluge of data
PPTX
Software Architectures, Week 5 - Advanced Architectures
PDF
The Rise of Cloud Computing Systems
PPT
SQL or NoSQL, that is the question!
PPTX
Cloud infrastructure. Google File System and MapReduce - Andrii Vozniuk
PDF
Datacenter Computing with Apache Mesos - BigData DC
PDF
OSAC16: Unikernel-powered Transient Microservices: Changing the Face of Softw...
PDF
End of RAID as we know it with Ceph Replication
PDF
BruCON 2010 Lightning Talks - DIY Grid Computing
PPS
Beyond the File System: Designing Large-Scale File Storage and Serving
 
PPS
Web20expo Filesystems
 
PPS
Web20expo Filesystems
PPS
Web20expo Filesystems
 
PDF
XenSummit - 08/28/2012
Manta: a new internet-facing object storage facility that features compute by...
Block Storage For VMs With Ceph
The Container Revolution: Reflections after the first decade
The Peril and Promise of Early Adoption: Arriving 10 Years Early to Containers
Distributed Data processing in a Cloud
Google Cloud Computing on Google Developer 2008 Day
The Internet-of-things: Architecting for the deluge of data
Software Architectures, Week 5 - Advanced Architectures
The Rise of Cloud Computing Systems
SQL or NoSQL, that is the question!
Cloud infrastructure. Google File System and MapReduce - Andrii Vozniuk
Datacenter Computing with Apache Mesos - BigData DC
OSAC16: Unikernel-powered Transient Microservices: Changing the Face of Softw...
End of RAID as we know it with Ceph Replication
BruCON 2010 Lightning Talks - DIY Grid Computing
Beyond the File System: Designing Large-Scale File Storage and Serving
 
Web20expo Filesystems
 
Web20expo Filesystems
Web20expo Filesystems
 
XenSummit - 08/28/2012

More from bcantrill

PDF
Visualizing Systems with Statemaps
PDF
Zebras all the way down: The engineering challenges of the data path
PDF
Platform values, Rust, and the implications for system software
PDF
Hardware/software Co-design: The Coming Golden Age
PDF
Papers We Love: ARC after dark
PDF
Platform as reflection of values: Joyent, node.js, and beyond
PDF
Predicting the Present
PDF
dtrace.conf(16): DTrace state of the union
PDF
Principles of Technology Leadership
PDF
Is it time to rewrite the operating system in Rust?
PDF
The Coming Firmware Revolution
PDF
I have come to bury the BIOS, not to open it: The need for holistic systems
PDF
Tockilator: Deducing Tock execution flows from Ibex Verilator traces
PDF
No Moore Left to Give: Enterprise Computing After Moore's Law
PDF
Towards Holistic Systems
PDF
Debugging under fire: Keeping your head when systems have lost their mind
PDF
Sharpening the Axe: The Primacy of Toolmaking
PDF
The Hurricane's Butterfly: Debugging pathologically performing systems
PDF
Andreessen's Corollary: Ethical Dilemmas in Software Engineering
PDF
Coming of Age: Developing young technologists without robbing them of their y...
Visualizing Systems with Statemaps
Zebras all the way down: The engineering challenges of the data path
Platform values, Rust, and the implications for system software
Hardware/software Co-design: The Coming Golden Age
Papers We Love: ARC after dark
Platform as reflection of values: Joyent, node.js, and beyond
Predicting the Present
dtrace.conf(16): DTrace state of the union
Principles of Technology Leadership
Is it time to rewrite the operating system in Rust?
The Coming Firmware Revolution
I have come to bury the BIOS, not to open it: The need for holistic systems
Tockilator: Deducing Tock execution flows from Ibex Verilator traces
No Moore Left to Give: Enterprise Computing After Moore's Law
Towards Holistic Systems
Debugging under fire: Keeping your head when systems have lost their mind
Sharpening the Axe: The Primacy of Toolmaking
The Hurricane's Butterfly: Debugging pathologically performing systems
Andreessen's Corollary: Ethical Dilemmas in Software Engineering
Coming of Age: Developing young technologists without robbing them of their y...

Recently uploaded

PPTX
UFCD 0797 - SISTEMAS OPERATIVOS_Unidade Completa.pptx
PDF
[BDD 2025 - Full-Stack Development] Agentic AI Architecture: Redefining Syste...
PDF
[BDD 2025 - Artificial Intelligence] Building AI Systems That Users (and Comp...
PDF
Oracle MySQL HeatWave - One Page - Version 3
PDF
Rolling out Enterprise AI: Tools, Insights, and Team Empowerment
PDF
Top Crypto Supers 15th Report November 2025
PPTX
The power of Slack and MuleSoft | Bangalore MuleSoft Meetup #60
PDF
KMWorld - KM & AI Bring Collectivity, Nostalgia, & Selectivity
PPTX
Connecting the unconnectable: Exploring LoRaWAN for IoT
PDF
[BDD 2025 - Mobile Development] Exploring Apple’s On-Device FoundationModels
PDF
Beyond Basics: How to Build Scalable, Intelligent Imagery Pipelines
PDF
Transforming Content Operations in the Age of AI
PDF
Top 10 AI Development Companies in UK 2025
PDF
[BDD 2025 - Full-Stack Development] PHP in AI Age: The Laravel Way. (Rizqy Hi...
PDF
The partnership effect: Libraries and publishers on collaborating and thrivin...
PPTX
"Feelings versus facts: why metrics are more important than intuition", Igor ...
 
PDF
Dev Dives: Build smarter agents with UiPath Agent Builder
PPTX
Guardrails in Action - Ensuring Safe AI with Azure AI Content Safety.pptx
PPTX
Support, Monitoring, Continuous Improvement & Scaling Agentic Automation [3/3]
PDF
Mastering Agentic Orchestration with UiPath Maestro | Hands on Workshop
UFCD 0797 - SISTEMAS OPERATIVOS_Unidade Completa.pptx
[BDD 2025 - Full-Stack Development] Agentic AI Architecture: Redefining Syste...
[BDD 2025 - Artificial Intelligence] Building AI Systems That Users (and Comp...
Oracle MySQL HeatWave - One Page - Version 3
Rolling out Enterprise AI: Tools, Insights, and Team Empowerment
Top Crypto Supers 15th Report November 2025
The power of Slack and MuleSoft | Bangalore MuleSoft Meetup #60
KMWorld - KM & AI Bring Collectivity, Nostalgia, & Selectivity
Connecting the unconnectable: Exploring LoRaWAN for IoT
[BDD 2025 - Mobile Development] Exploring Apple’s On-Device FoundationModels
Beyond Basics: How to Build Scalable, Intelligent Imagery Pipelines
Transforming Content Operations in the Age of AI
Top 10 AI Development Companies in UK 2025
[BDD 2025 - Full-Stack Development] PHP in AI Age: The Laravel Way. (Rizqy Hi...
The partnership effect: Libraries and publishers on collaborating and thrivin...
"Feelings versus facts: why metrics are more important than intuition", Igor ...
 
Dev Dives: Build smarter agents with UiPath Agent Builder
Guardrails in Action - Ensuring Safe AI with Azure AI Content Safety.pptx
Support, Monitoring, Continuous Improvement & Scaling Agentic Automation [3/3]
Mastering Agentic Orchestration with UiPath Maestro | Hands on Workshop

Bringing the Unix Philosophy to Big Data

  • 1.
    Bringing the UnixPhilosophyto Big DataBryan CantrillSVP, Engineeringbryan@joyent.com@bcantrill
  • 2.
    Unix•When Unix appearedin the early 1970s, it was not just anew system, but a new way of thinking about systems•Instead of a sealed monolith, the operating system wasa collection of small, easily understood programs•First Edition Unix (1971) contained many programs thatwe still use today (ls, rm, cat, mv)•Its very name conveyed this minimalist aesthetic: Unix isa homophone of “eunuchs” — a castrated MulticsWe were a bit oppressed by the big system mentality. Kenwanted to do something simple. — Dennis Ritchie
  • 3.
    Unix: Let therebe light•In 1969, Doug McIlroy had the idea of connectingdifferent components:At the same time that Thompson and Ritchie were sketchingout a file system, I was sketching out how to do dataprocessing on the blackboard by connecting togethercascades of processes•This was the primordial pipe, but it took three years topersuade Thompson to adopt it:And one day I came up with a syntax for the shell that wentalong with the piping, and Ken said, “I’m going to do it!”
  • 4.
    Unix: ...and therewas lightAnd the next morning we had thisorgy of one-liners. — Doug McIlroy
  • 5.
    The Unix philosophy•Thepipe — coupled with the small-system aesthetic —gave rise to the Unix philosophy, as articulated by DougMcIlroy:••Write programs to work together••Write programs that do one thing and do it wellWrite programs that handle text streams, becausethat is a universal interfaceFour decades later, this philosophy remains the singlemost important revolution in software systems thinking!
  • 6.
    Doug McIlroy v.Don Knuth: FIGHT!•In 1986, Jon Bentley posed the challenge that becamethe Epic Rap Battle of computer science history:Read a file of text, determine the n most frequently usedwords, and print out a sorted list of those words along withtheir frequencies.•Don Knuth’s solution: an elaborate program in WEB, aPascal-like literate programming system of his owninvention, using a purpose-built algorithm•Doug McIlroy’s solution shows the power of the Unixphilosophy:tr -cs A-Za-z 'n' | tr A-Z a-z | sort | uniq -c | sort -rn | sed ${1}q
  • 7.
    Big Data: Historyrepeats itself?•The original Google MapReduce paper (Dean et al.,OSDI ’04) poses a problem disturbingly similar toBentley’s challenge nearly two decades prior:Count of URL Access Frequency: The function processeslogs of web page requests and outputs ⟨URL, 1⟩. Thereduce function adds together all values for the same URLand emits a ⟨URL, total count⟩ pair••But the solutions do not adhere to the Unix philosophy...•e.g., Appendix A of the OSDI ’04 paper has a 71 lineword count in C++ — with nary a wc in sight...and nor do they make use of the substantial Unixfoundation for data processing
  • 8.
    Big Data: Challenges•Mustbe able to scale storage to allow for “big data” —quantities of data that dwarf a single machine•••Must allow for massively parallel executionMust allow for multi-tenancyTo make use of both the Unix philosophy and its toolset,must be able to virtualize the operating system
  • 9.
    Scaling storage•There areessentially three protocols for scalablestorage: block, file and object•Block (i.e., a SAN) is far too low an abstraction — andnotoriously expensive to scale•File (i.e., NAS) is too permissive an abstraction — itimplies a coherent store for arbitrary (partial) writes,trying (and failing) to be both C and A in CAP•Object (e.g., S3) is similar “enough” to a file-basedabstraction, but by not allowing partial writes, allows forproper CAP tradeoffs
  • 10.
    Object storage••Object storagesystems do not allow for partial updates•A different approach is to have a highly reliable local filesystem that erasure encodes across local spindles —with entire objects duplicated across nodes foravailability•ZFS pioneered both reliability and efficiency of thismodel with RAID-Z — and has refined it over the pastdecade of production use•ZFS is one of the four foundational technologies inJoyent’s open source SmartOSFor both durability and availability, objects are generallyerasure encoded across spindles on different nodes
  • 11.
    Virtualizing the operatingsystem?•Historically — since the 1960s — systems have beenvirtualized at the level of hardware•Hardware virtualization has its advantages, but it’sheavyweight: operating systems are not designed toshare resources like DRAM, CPU, I/O devices, etc.•One can instead virtualize at the level of the operatingsystem: a single OS kernel that creates lightweightcontainers — on the metal, but securely partitioned•Pioneered by BSD’s jails; taken to a logical extreme byzones found in Joyent’s SmartOS
  • 12.
    Idea: ZFS +Zones?•Can we combine the efficiency and reliability of ZFSwith the abstraction provided by zones to develop anobject store that has compute as a first-class citizen?•ZFS rollback allows for zones to be trashed — simplyrollback the zone after compute completes on an object•Add a job scheduling system that allows for both mapand reduce phases of distributed work•Would allow for the Unix toolset to be used on arbitrarylarge amounts of data — unlocking big data one-liners•If it perhaps seems obvious now, it wasn’t at the time...
  • 13.
  • 14.
    Manta: ZFS +Zones!•Building a sophisticated distributed system on top ofZFS and zones, we have built Manta, an internet-facingobject storage system offering in situ compute•That is, the description of compute can be brought towhere objects reside instead of having to backhaulobjects to transient compute•The abstractions made available for computation areanything that can run on the OS...•...and as a reminder, the OS — Unix — was built aroundthe notion of ad hoc unstructured data processing, andallows for remarkably terse expressions of computation
  • 15.
    Manta: Unix forBig Data•Manta allows for an arbitrarily scalable variant ofMcIlroy’s solution to Bentley’s challenge:mfind -t o /bcantrill/public/v7/usr/man | mjob create -o -m "tr -cs A-Za-z 'n' | tr A-Z a-z | sort | uniq -c" -r "awk '{ x[$2] += $1 }END { for (w in x) { print x[w] " " w } }' | sort -rn | sed ${1}q"•This description not only terse, it is high performing: datais left at rest — with the “map” phase doing heavyreduction of the data stream•As such, Manta — like Unix — is not merely syntacticsugar; it converges compute and data in a new way
  • 16.
    Manta: CAP tradeoffs•Eventualconsistency represents the wrong CAPtradeoffs for most; we prefer consistency overavailability for writes (but still availability for reads)•Many more details:http://dtrace.org/blogs/dap/2013/07/03/fault-tolerance-in-manta/•Celebrity endorsement:
  • 17.
    Manta: Other designprinciples•Hierarchical storage is an excellent idea (ht: Multics);Manta implements proper directories, delimited with aforward slash•Manta implements a snapshot/link hybrid dubbed asnaplink; can be used to effect versioning••Manta has full support for CORS headers••Manta SDKs exist for node.js, Java, Ruby, PythonManta uses SSH-based HTTP auth for client-sidetooling (IETF draft-cavage-http-signatures-00)“npm install manta” for command line interface
  • 18.
    Manta and thefuture of big data•We believe compute/data convergence to be the futureof big data: stores of record must support computationas a first-class, in situ operation•We believe that Unix is a natural way of expressing thiscomputation — and that the OS is the right level atwhich to virtualize to support this securely•We believe that ZFS is the only sane storage substrateunderpinning for such a system•Manta will surely not be the only system to represent theconfluence of these — but it is the first•We are actively retooling our software stack in terms ofManta — Manta is changing the way we developsoftware!
  • 19.
    Manta: More information•Productpage:http://joyent.com/products/manta•node.js module:https://github.com/joyent/node-manta•Manta documentation:http://apidocs.joyent.com/manta/•IRC, e-mail, Twitter, etc.:#manta on freenode, manta@joyent.com, @mcavage,@dapsays, @yunongx, @joyent•Here’s to the orgy of big data one-liners!

[8]ページ先頭

©2009-2025 Movatter.jp