OSv at Cassandra Summit

26
Cassandra on OSv Dor Laor, Don Marti and Glauber Costa Cloudius Systems

description

OSv is a new, high-performance OS for virtual machines in the cloud. Designed to run one application per guest with minimal overhead, OSv eliminates important bottlenecks for NoSQL applications through improvements in memory management, network I/O, and scheduling. And many important bottlenecks for NoSQL applications are tunable on a conventional OS, but do not require tuning in the OSv environment. OSv is fully stateless and can be configured at runtime with cloud-init or through a REST API, with zero configuration files. OSv offers unified tracing from the application layer through the JVM and the OS kernel. Attendees will learn how to boot Cassandra in one second, and create a simple cluster in a minute.

Transcript of OSv at Cassandra Summit

Page 1: OSv at Cassandra Summit

Cassandra on OSv

Dor Laor, Don Marti and Glauber CostaCloudius Systems

Page 2: OSv at Cassandra Summit

Become the best OSpowering virtual machines

in the cloud

HardwareHypervisor

OSv

Your App

HardwareHypervisorOSv + JVM

Your App

HardwareHypervisorOSv + JVM

HardwareHypervisor

OSv

HardwareHypervisorOSv + JVM

Your App

Page 3: OSv at Cassandra Summit
Page 4: OSv at Cassandra Summit

[ 0.000] Status() {return PreBeta;}

[ 0.103] HR.count() { return pp(18);}

[ 0.217] countries.size() {return 9;}

[ 0.423] getOpenSourceExperience() { ret list.add(KVM).add(Xen).add(containers);}

[ 0.735] Mission(){ret “write code that doesn’t suck”;}

Page 5: OSv at Cassandra Summit

Cassandra boot time on OSv

Page 6: OSv at Cassandra Summit

Hardware

Hypervisor

guest OS

JVM

App Server

Java App

What is OSv?

guest OS

C++ App

Hardware

Hypervisor

OSv + JVM

App Server

Your App

OSvYour App

Traditional Stack Thin OS

Page 7: OSv at Cassandra Summit
Page 8: OSv at Cassandra Summit
Page 9: OSv at Cassandra Summit

Pimp my Memcached

Requests/s (higher is better)

Page 10: OSv at Cassandra Summit

Redis on Vitamins

Page 11: OSv at Cassandra Summit

Cassandra

Page 12: OSv at Cassandra Summit

Performance: Leave no stone unturned

Memory Huge pages, Heap vs Sys

I/O Zero copy, full aio, batching

Scheduling Lock free, low latency

Tuning Out of the box, auto

CPU Low cost ctx, Direct signals...

Page 13: OSv at Cassandra Summit

New TCP/IP Stack

Common kernel network stack

Net Channel design:

Page 14: OSv at Cassandra Summit

Value Proposition II: Manageability

Page 15: OSv at Cassandra Summit
Page 16: OSv at Cassandra Summit

OSv management interface

Page 17: OSv at Cassandra Summit
Page 18: OSv at Cassandra Summit
Page 19: OSv at Cassandra Summit
Page 20: OSv at Cassandra Summit
Page 21: OSv at Cassandra Summit

Stateless root-fs

4 VMs per sys admin ratio

NO TuningNO StateNO Patching

Page 22: OSv at Cassandra Summit

www.osv.io/Capstan:VM build and deploy● Docker-like config file● Takes about 3 seconds to build● Runs on any OS (written in Go)cat Capstanfilebase: cloudius/osv-openjdkcmdline: > /java.so -XX:+UseThreadPriorities -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 ... org.apache.cassandra.service.CassandraDaemonbuild: make

Page 23: OSv at Cassandra Summit

Deploying OSv at scaleOSV Cloud Init: - Stateless - Watch ma, no puppet/chef - Single (external) file to rule them all

files: /etc/config: | my config goes here

httpserver: ssl: yes port: 443

topology: - dc_name: DC1 racks: - rack_name: c1 nodes: - broadcast_address: 1.2.3.4 dc_local_address: 5.6.7.8

Page 24: OSv at Cassandra Summit

Some more OSv Goodies

rest-apiJolokia JVM

PaaS approach for runtimes

ZFS snapshots

Ruby, Node, Scala, more

Cloud Init

NewRelicinteg

JVMBallooning

Page 25: OSv at Cassandra Summit

~20MB image size

Ideal for multi tenants

Stateless, streamable config

70% better tcp latency

Runs on virtualBox, kvm, vmw, xen, ec2, gce

Public image repository

Page 26: OSv at Cassandra Summit

Thank you!Try it! http://osv.io/Run on public cloudFollow @CloudiusSystems