Cassandra on OSv 
Dor Laor, Don Marti and Glauber Costa 
Cloudius Systems
Become the best OS 
powering virtual machines 
in the cloud 
Your App 
OSv 
Hypervisor 
Hardware 
Your App 
OSv + JVM 
Hypervisor 
Hardware 
OSv + JVM 
Hypervisor 
Hardware 
OSv 
Hypervisor 
Hardware 
Your App 
OSv + JVM 
Hypervisor 
Hardware
[ 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”;}
Cassandra boot time on OSv
What is OSv? 
Traditional Stack Thin OS 
Java App 
App Server 
Hypervisor 
Hardware 
JVM 
guest OS 
C++ App 
guest OS 
App Server 
OSv + JVM 
Your App 
Hypervisor 
Hardware 
Your App 
OSv
Pimp my Memcached 
Requests/s (higher is better)
Redis on Vitamins
Cassandra
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...
New TCP/IP Stack 
Common kernel 
network stack 
Net Channel design:
Value Proposition II: Manageability
OSv management interface
Stateless root-fs 
NO Tuning 
NO State 
NO Patching 
4 VMs per sys 
admin ratio
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 Capstanfile 
base: cloudius/osv-openjdk 
cmdline: > /java.so -XX:+UseThreadPriorities -XX:+UseParNewGC -XX: 
+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX: 
SurvivorRatio=8 -XX:MaxTenuringThreshold=1 ... org.apache.cassandra. 
service.CassandraDaemon 
build: make
Deploying OSv at scale 
OSV 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
Some more OSv Goodies 
rest-api 
Jolokia JVM 
PaaS 
approach for 
runtimes 
ZFS 
snapshots 
Ruby, 
Node, 
Scala, 
more 
Cloud Init 
NewRelic 
integ 
JVM 
Ballooning
~20MB image size 
Ideal for multi 
tenants 
70% better tcp latency 
Stateless, 
streamable config 
Runs on virtualBox, kvm, 
vmw, xen, ec2, gce 
Public image repository
Thank you! 
Try it! http://osv.io/ 
Run on public cloud 
Follow @CloudiusSystems

OSv at Cassandra Summit

  • 1.
    Cassandra on OSv Dor Laor, Don Marti and Glauber Costa Cloudius Systems
  • 2.
    Become the bestOS powering virtual machines in the cloud Your App OSv Hypervisor Hardware Your App OSv + JVM Hypervisor Hardware OSv + JVM Hypervisor Hardware OSv Hypervisor Hardware Your App OSv + JVM Hypervisor Hardware
  • 4.
    [ 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”;}
  • 5.
  • 6.
    What is OSv? Traditional Stack Thin OS Java App App Server Hypervisor Hardware JVM guest OS C++ App guest OS App Server OSv + JVM Your App Hypervisor Hardware Your App OSv
  • 9.
    Pimp my Memcached Requests/s (higher is better)
  • 10.
  • 11.
  • 12.
    Performance: Leave nostone 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...
  • 13.
    New TCP/IP Stack Common kernel network stack Net Channel design:
  • 14.
    Value Proposition II:Manageability
  • 16.
  • 21.
    Stateless root-fs NOTuning NO State NO Patching 4 VMs per sys admin ratio
  • 22.
    www.osv.io/Capstan: VM buildand deploy ● Docker-like config file ● Takes about 3 seconds to build ● Runs on any OS (written in Go) cat Capstanfile base: cloudius/osv-openjdk cmdline: > /java.so -XX:+UseThreadPriorities -XX:+UseParNewGC -XX: +UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX: SurvivorRatio=8 -XX:MaxTenuringThreshold=1 ... org.apache.cassandra. service.CassandraDaemon build: make
  • 23.
    Deploying OSv atscale OSV 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
  • 24.
    Some more OSvGoodies rest-api Jolokia JVM PaaS approach for runtimes ZFS snapshots Ruby, Node, Scala, more Cloud Init NewRelic integ JVM Ballooning
  • 25.
    ~20MB image size Ideal for multi tenants 70% better tcp latency Stateless, streamable config Runs on virtualBox, kvm, vmw, xen, ec2, gce Public image repository
  • 26.
    Thank you! Tryit! http://osv.io/ Run on public cloud Follow @CloudiusSystems