SlideShare a Scribd company logo
1/34
Large Partially-connected Erlang
Clusters
Motiejus Jakˇstys @mo kelione
Sr. backend developer
Erlang User Conference 2014
Stockholm
2/34
Background and Agenda
Big service-oriented backend infrastructure.
Infrastructure which provides API for our
gaming portals
A couple of dozen servers running about 50
services each
2/34
Background and Agenda
Big service-oriented backend infrastructure.
Infrastructure which provides API for our
gaming portals
A couple of dozen servers running about 50
services each
Agenda:
Historical introduction
Technical stuff
2/34
Background and Agenda
Big service-oriented backend infrastructure.
Infrastructure which provides API for our
gaming portals
A couple of dozen servers running about 50
services each
Agenda:
Historical introduction
Technical stuff
Don’t hesitate to interrupt!
3/34
My point today
3/34
My point today
Management of big battles is very similar to running
distributed systems.
3/34
My point today
Management of big battles is very similar to running
distributed systems.
I have a good example for you.
4/34
Battle of Stalingrad
1942.08.23 – 1943.02.02
Image source: Deutsches Bundesarchiv, RIA Novosti Archive
5/34
Rubble battle
Image source: Deutsches Bundesarchiv, RIA Novosti Archive
6/34
Peer-to-peer communication
Impossible to determine location.
Radio was unreliable and useless.
Reinforcement/supply requests were just voice.
7/34
Heterogeneous
Infantry
Tank fleet
Air Force
Medical staff
Commanders
...
Image source: http://navy.mil
8/34
Communication channels
It is clear who gets orders
from who. Very clear.
Image source:
http://www.vetfriends.com/military_structure/
9/34
Dynamic environment
Nature of the battle is dynamic:
9/34
Dynamic environment
Nature of the battle is dynamic:
Losses and reinforcements change the dynamics of
the battlefield.
10/34
Big Plan
It is not enough to only take care of your business.
All units must work to achieve a common goal.
11/34
Situation at 1942.11.15
Dire Soviet situation:
Huge causalities
11/34
Situation at 1942.11.15
Dire Soviet situation:
Huge causalities
Red Army life
expectancy:
Soldier: < 1 day
Officer: < 3 days
11/34
Situation at 1942.11.15
Dire Soviet situation:
Huge causalities
Red Army life
expectancy:
Soldier: < 1 day
Officer: < 3 days
Germans have 90%
of the city
Image source: Antill, P., Dennis, P. Stalingrad 1942
(Campaign). Osprey Publishing (June 19, 2007).
12/34
Situation after 1942.11.23
Germans surrounded
by soviets
12/34
Situation after 1942.11.23
Germans surrounded
by soviets
City is Germans’,
Germans’ are
Soviets’
12/34
Situation after 1942.11.23
Germans surrounded
by soviets
City is Germans’,
Germans’ are
Soviets’
Turning point of the
battle
12/34
Situation after 1942.11.23
Germans surrounded
by soviets
City is Germans’,
Germans’ are
Soviets’
Turning point of the
battle
6’th Army (the
surrounded one) was
destroyed.
Image source: Antill, P., Dennis, P. Stalingrad 1942
(Campaign). Osprey Publishing (June 19, 2007).
13/34
Outline
1 Historical introduction
2 Technical stuff
Motivation
Features
API
3 QA
You sure you have no questions?
14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
a couple of dozens of servers
14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
a couple of dozens of servers
Example services:
Higscores
14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
a couple of dozens of servers
Example services:
Higscores
Authentication
14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
a couple of dozens of servers
Example services:
Higscores
Authentication
Chat
14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
a couple of dozens of servers
Example services:
Higscores
Authentication
Chat
User profiles
14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
a couple of dozens of servers
Example services:
Higscores
Authentication
Chat
User profiles
...
14/34
Set the grounds
We have a lot of Erlang nodes trying to achieve a
common goal.
≈ 50 nodes per server
a couple of dozens of servers
Example services:
Higscores
Authentication
Chat
User profiles
...
How to connect them?
15/34
Peer-to-peer communication
You don’t want bottlenecks.
You don’t want single points of failure.
16/34
Dynamic nodes
Nodes and services start and stop all the time.
16/34
Dynamic nodes
Nodes and services start and stop all the time.
The system must continue to function and self-heal.
17/34
Partially connected network
n : number of nodes.
Total connections = n(n−1)
2
17/34
Partially connected network
n : number of nodes.
Total connections = n(n−1)
2
0
2 M
4 M
6 M
8 M
10 M
12 M
14 M
0 20 40 60 80 100
Total connections, 50 nodes per machine
18/34
Conclusions (for now)
It pays off to optimize the topology so
communication is more effective, e.g.:
Army
Software Defined Networking
Management
19/34
Remember?
Erlang Battle
P2P communication P2P communication
Multi app groups Heterogeneous
Dynamic nodes Dynamic environment
Partially connected network Communication channels
19/34
Remember?
Erlang Battle
P2P communication P2P communication
Multi app groups Heterogeneous
Dynamic nodes Dynamic environment
Partially connected network Communication channels
Maintaining a distributed system is like managing a battle.
19/34
Remember?
Erlang Battle
P2P communication P2P communication
Multi app groups Heterogeneous
Dynamic nodes Dynamic environment
Partially connected network Communication channels
Maintaining a distributed system is like managing a battle.
We can be generals.
20/34
We need to solve this
What spapi-router pg2 gproc
P2P communication
Multi app groups
Dynamic nodes
Partially connected network
by limiting connections
x x
21/34
spapi-router features in a nutshell
A library.
Creates a mesh network
Connects (hidden) nodes like configured
21/34
spapi-router features in a nutshell
A library.
Creates a mesh network
Connects (hidden) nodes like configured
Abstracts destination
RPC-call a service, not a node
21/34
spapi-router features in a nutshell
A library.
Creates a mesh network
Connects (hidden) nodes like configured
Abstracts destination
RPC-call a service, not a node
Mature and optimized
Used for 2,5 years in a sufficiently large SOA
21/34
spapi-router features in a nutshell
A library.
Creates a mesh network
Connects (hidden) nodes like configured
Abstracts destination
RPC-call a service, not a node
Mature and optimized
Used for 2,5 years in a sufficiently large SOA
Instrumented
22/34
For example
pagebuilder@host3.fqdn
kernel stdlib
pagebuilder
spapi_router
kernel
stdlib
header
kernel
stdlib
mainsection
kernel
stdlib
mainsection
header@host1.fqdn
mainsec2@host2.fqdn
mainsec1@host1.fqdn
test2@host2.fqdn
kernel
stdlib
mainsection
22/34
For example
pagebuilder@host3.fqdn
kernel stdlib
pagebuilder
spapi_router
kernel
stdlib
header
kernel
stdlib
mainsection
kernel
stdlib
mainsection
header@host1.fqdn
mainsec2@host2.fqdn
mainsec1@host1.fqdn
test2@host2.fqdn
kernel
stdlib
mainsection
Configuration of
pagebuilder@host3.fqdn:
{spapi_router, [
{host_names, [
"host1.fqdn",
"host2.fqdn",
]},
{workers, [
{"^header[0-9]*", [header]},
{"^mainsec[0-9]*", [mainsection]},
]}
]}
23/34
More configuration
hosts monitor interval ms
world monitor interval ms
worker monitor interval ms
callback module
24/34
How it works
{spapi_router, [
{host_names, [
"host1.fqdn",
"host2.fqdn",
]},
{workers, [
{"^header[0-9]*", [header]},
{"^mainsec[0-9]*", [mainsection]},
]}
]}
24/34
How it works
{spapi_router, [
{host_names, [
"host1.fqdn",
"host2.fqdn",
]},
{workers, [
{"^header[0-9]*", [header]},
{"^mainsec[0-9]*", [mainsection]},
]}
]}
1. Connects to
host names
24/34
How it works
{spapi_router, [
{host_names, [
"host1.fqdn",
"host2.fqdn",
]},
{workers, [
{"^header[0-9]*", [header]},
{"^mainsec[0-9]*", [mainsection]},
]}
]}
1. Connects to
host names
2. Asks EPMD for
running nodes
24/34
How it works
{spapi_router, [
{host_names, [
"host1.fqdn",
"host2.fqdn",
]},
{workers, [
{"^header[0-9]*", [header]},
{"^mainsec[0-9]*", [mainsection]},
]}
]}
1. Connects to
host names
2. Asks EPMD for
running nodes
3. Connects to nodes
matching regexp
24/34
How it works
{spapi_router, [
{host_names, [
"host1.fqdn",
"host2.fqdn",
]},
{workers, [
{"^header[0-9]*", [header]},
{"^mainsec[0-9]*", [mainsection]},
]}
]}
1. Connects to
host names
2. Asks EPMD for
running nodes
3. Connects to nodes
matching regexp
4. Checks for
applications in
nodes
24/34
How it works
{spapi_router, [
{host_names, [
"host1.fqdn",
"host2.fqdn",
]},
{workers, [
{"^header[0-9]*", [header]},
{"^mainsec[0-9]*", [mainsection]},
]}
]}
1. Connects to
host names
2. Asks EPMD for
running nodes
3. Connects to nodes
matching regexp
4. Checks for
applications in
nodes
5. Connects to
relevant nodes
25/34
Why instrument?
Helps understand the system is sound.
The first thing you want to instrument is the border of your
service.
Effortless instrumentation for all calls via spapi-router.
26/34
callback module #1
%% New resource is detected
-callback new_resource({Service :: atom(), node()},
opts()) -> any().
%% Existing resource is lost
%% (node disconnect, shutdown, etc).
-callback lost_resource({Service :: atom(), node()},
opts()) -> any().
27/34
callback module #2
-type log_spec() :: {
Service :: atom(),
Module :: atom(),
Function :: atom()
}.
%% Time instrumentation
-callback measure(log_spec(),
fun(() -> A), opts()) -> A.
%% Called on success/failure of a function call.
-callback success(log_spec(), opts()) -> term().
-callback failure(log_spec(), opts()) -> term().
28/34
Calling others
28/34
Calling others
spr_router:call(piqi_rpc, erlang, node, []).
28/34
Calling others
spr_router:call(piqi_rpc, erlang, node, []).
spr_router:call_all(piqi_rpc, erlang, node, []).
28/34
Calling others
spr_router:call(piqi_rpc, erlang, node, []).
spr_router:call_all(piqi_rpc, erlang, node, []).
Extras:
call/5
call all/5
list workers/0
list workers/1
list hosts/0
29/34
Future optimizations
Takes time to figure out a ’stop’.
Monitor application controller instead of
node.
One node == one service.
30/34
How to change nodes?
Puppet plus
RelUp
... or anything really:
spr app:config change([], [], []).
31/34
Battle stories
31/34
Battle stories
Tried to disconnect from irrelevant nodes first
31/34
Battle stories
Tried to disconnect from irrelevant nodes first
what if relationship is one-way?
31/34
Battle stories
Tried to disconnect from irrelevant nodes first
what if relationship is one-way?
one misbehaving component can bring the system
down
31/34
Battle stories
Tried to disconnect from irrelevant nodes first
what if relationship is one-way?
one misbehaving component can bring the system
down
Fully connected network experience (> 1K
nodes)
31/34
Battle stories
Tried to disconnect from irrelevant nodes first
what if relationship is one-way?
one misbehaving component can bring the system
down
Fully connected network experience (> 1K
nodes)
everyone should try that
31/34
Battle stories
Tried to disconnect from irrelevant nodes first
what if relationship is one-way?
one misbehaving component can bring the system
down
Fully connected network experience (> 1K
nodes)
everyone should try that
thanks to off-peak and 10G NIC
32/34
Stats
2012-01-12 Initial commit (Thijs Terlouw)
32/34
Stats
2012-01-12 Initial commit (Thijs Terlouw)
2012-02-16 1.0.0 – first prod (Thijs Terlouw)
32/34
Stats
2012-01-12 Initial commit (Thijs Terlouw)
2012-02-16 1.0.0 – first prod (Thijs Terlouw)
2012-08-24 1.2.0 – broadcast (Enrique Paz)
32/34
Stats
2012-01-12 Initial commit (Thijs Terlouw)
2012-02-16 1.0.0 – first prod (Thijs Terlouw)
2012-08-24 1.2.0 – broadcast (Enrique Paz)
2014-06-20 2.1.0 – many contributions by Spil Games
32/34
Stats
2012-01-12 Initial commit (Thijs Terlouw)
2012-02-16 1.0.0 – first prod (Thijs Terlouw)
2012-08-24 1.2.0 – broadcast (Enrique Paz)
2014-06-20 2.1.0 – many contributions by Spil Games
2014-07-04 Public pre-release
commit b3b7aad9ca14ed230f28635826b371b6bbea3840
Author: Motiejus Jakˇstys <motiejus.jakstys@spilgames.com>
Date: Wed Jun 4 14:39:40 2014 +0200
Initial commit
21 files changed, 2984 insertions(+)
32/34
Stats
2012-01-12 Initial commit (Thijs Terlouw)
2012-02-16 1.0.0 – first prod (Thijs Terlouw)
2012-08-24 1.2.0 – broadcast (Enrique Paz)
2014-06-20 2.1.0 – many contributions by Spil Games
2014-07-04 Public pre-release
commit b3b7aad9ca14ed230f28635826b371b6bbea3840
Author: Motiejus Jakˇstys <motiejus.jakstys@spilgames.com>
Date: Wed Jun 4 14:39:40 2014 +0200
Initial commit
21 files changed, 2984 insertions(+)
2014-07-10 http://github.com/spilgames/spapi-router
33/34
Outline
1 Historical introduction
2 Technical stuff
Motivation
Features
API
3 QA
You sure you have no questions?
34/34
QA

More Related Content

What's hot

BPF: Next Generation of Programmable Datapath
BPF: Next Generation of Programmable DatapathBPF: Next Generation of Programmable Datapath
BPF: Next Generation of Programmable Datapath
Thomas Graf
 
Networking Fundamentals: Transport Protocols (TCP and UDP)
Networking Fundamentals: Transport Protocols (TCP and UDP)Networking Fundamentals: Transport Protocols (TCP and UDP)
Networking Fundamentals: Transport Protocols (TCP and UDP)
Andriy Berestovskyy
 
Cilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFCilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPF
Thomas Graf
 
Anycast all the things
Anycast all the thingsAnycast all the things
Anycast all the things
Maximilan Wilhelm
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are money
Anne Nicolas
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking Walkthrough
Thomas Graf
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
Anne Nicolas
 
Contemporary network configuration for linux - ifupdown-ng
Contemporary network configuration for linux - ifupdown-ngContemporary network configuration for linux - ifupdown-ng
Contemporary network configuration for linux - ifupdown-ng
Maximilan Wilhelm
 
6.Routing
6.Routing6.Routing
6.Routing
phanleson
 
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...
Maximilan Wilhelm
 
DPDK KNI interface
DPDK KNI interfaceDPDK KNI interface
DPDK KNI interface
Denys Haryachyy
 
Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDP
Thomas Graf
 
Network sockets
Network socketsNetwork sockets
Network sockets
Denys Haryachyy
 
Best Current Operational Practices - Dos, Don’ts and lessons learned
Best Current Operational Practices - Dos, Don’ts and lessons learnedBest Current Operational Practices - Dos, Don’ts and lessons learned
Best Current Operational Practices - Dos, Don’ts and lessons learned
Maximilan Wilhelm
 
Ebpf ovsconf-2016
Ebpf ovsconf-2016Ebpf ovsconf-2016
Ebpf ovsconf-2016
Cheng-Chun William Tu
 
Ipv6 cheat sheet
Ipv6 cheat sheetIpv6 cheat sheet
Ipv6 cheat sheet
Swarup Hait
 
2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services
Thomas Graf
 
(Open) MPI, Parallel Computing, Life, the Universe, and Everything
(Open) MPI, Parallel Computing, Life, the Universe, and Everything(Open) MPI, Parallel Computing, Life, the Universe, and Everything
(Open) MPI, Parallel Computing, Life, the Universe, and Everything
Jeff Squyres
 
Introduction to eBPF
Introduction to eBPFIntroduction to eBPF
Introduction to eBPF
RogerColl2
 
Ipv6 cheat sheet
Ipv6 cheat sheetIpv6 cheat sheet
Ipv6 cheat sheet
julianlz
 

What's hot (20)

BPF: Next Generation of Programmable Datapath
BPF: Next Generation of Programmable DatapathBPF: Next Generation of Programmable Datapath
BPF: Next Generation of Programmable Datapath
 
Networking Fundamentals: Transport Protocols (TCP and UDP)
Networking Fundamentals: Transport Protocols (TCP and UDP)Networking Fundamentals: Transport Protocols (TCP and UDP)
Networking Fundamentals: Transport Protocols (TCP and UDP)
 
Cilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFCilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPF
 
Anycast all the things
Anycast all the thingsAnycast all the things
Anycast all the things
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are money
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking Walkthrough
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
 
Contemporary network configuration for linux - ifupdown-ng
Contemporary network configuration for linux - ifupdown-ngContemporary network configuration for linux - ifupdown-ng
Contemporary network configuration for linux - ifupdown-ng
 
6.Routing
6.Routing6.Routing
6.Routing
 
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...
 
DPDK KNI interface
DPDK KNI interfaceDPDK KNI interface
DPDK KNI interface
 
Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDP
 
Network sockets
Network socketsNetwork sockets
Network sockets
 
Best Current Operational Practices - Dos, Don’ts and lessons learned
Best Current Operational Practices - Dos, Don’ts and lessons learnedBest Current Operational Practices - Dos, Don’ts and lessons learned
Best Current Operational Practices - Dos, Don’ts and lessons learned
 
Ebpf ovsconf-2016
Ebpf ovsconf-2016Ebpf ovsconf-2016
Ebpf ovsconf-2016
 
Ipv6 cheat sheet
Ipv6 cheat sheetIpv6 cheat sheet
Ipv6 cheat sheet
 
2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services
 
(Open) MPI, Parallel Computing, Life, the Universe, and Everything
(Open) MPI, Parallel Computing, Life, the Universe, and Everything(Open) MPI, Parallel Computing, Life, the Universe, and Everything
(Open) MPI, Parallel Computing, Life, the Universe, and Everything
 
Introduction to eBPF
Introduction to eBPFIntroduction to eBPF
Introduction to eBPF
 
Ipv6 cheat sheet
Ipv6 cheat sheetIpv6 cheat sheet
Ipv6 cheat sheet
 

Similar to Large Partially-connected Erlang Clusters

Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Hajime Tazaki
 
multi-core Processor.ppt for IGCSE ICT and Computer Science Students
multi-core Processor.ppt for IGCSE ICT and Computer Science Studentsmulti-core Processor.ppt for IGCSE ICT and Computer Science Students
multi-core Processor.ppt for IGCSE ICT and Computer Science Students
MKKhaing
 
Disaggregating Ceph using NVMeoF
Disaggregating Ceph using NVMeoFDisaggregating Ceph using NVMeoF
Disaggregating Ceph using NVMeoF
Zoltan Arnold Nagy
 
OSDC 2015: Roland Kammerer | DRBD9: Managing High-Available Storage in Many-N...
OSDC 2015: Roland Kammerer | DRBD9: Managing High-Available Storage in Many-N...OSDC 2015: Roland Kammerer | DRBD9: Managing High-Available Storage in Many-N...
OSDC 2015: Roland Kammerer | DRBD9: Managing High-Available Storage in Many-N...
NETWAYS
 
Demystifying Datacenter Clos
Demystifying Datacenter ClosDemystifying Datacenter Clos
Demystifying Datacenter Clos
ONeilRobinson2
 
Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102
Linaro
 
microprocessor
   microprocessor   microprocessor
microprocessor
ATTO RATHORE
 
ELC-E 2019 Device tree, past, present, future
ELC-E 2019 Device tree, past, present, futureELC-E 2019 Device tree, past, present, future
ELC-E 2019 Device tree, past, present, future
Neil Armstrong
 
FAIR Projector Builder
FAIR Projector BuilderFAIR Projector Builder
FAIR Projector Builder
Mark Wilkinson
 
Experiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsExperiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah Watkins
Ceph Community
 
Multicore Processors
Multicore ProcessorsMulticore Processors
Multicore Processors
Smruti Sarangi
 
0xdroid osdc-2010-100426084937-phpapp02
0xdroid osdc-2010-100426084937-phpapp020xdroid osdc-2010-100426084937-phpapp02
0xdroid osdc-2010-100426084937-phpapp02
chon2010
 
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
Linaro
 
Learning Erlang (from a Prolog dropout's perspective)
Learning Erlang (from a Prolog dropout's perspective)Learning Erlang (from a Prolog dropout's perspective)
Learning Erlang (from a Prolog dropout's perspective)
elliando dias
 
Kernel Recipes 2017 - EBPF and XDP - Eric Leblond
Kernel Recipes 2017 - EBPF and XDP - Eric LeblondKernel Recipes 2017 - EBPF and XDP - Eric Leblond
Kernel Recipes 2017 - EBPF and XDP - Eric Leblond
Anne Nicolas
 
Gntc 2017 cord platform
Gntc 2017 cord platformGntc 2017 cord platform
Gntc 2017 cord platform
Chun Ming Ou
 
Culturally Responsive Literacy Resources Template Part 1.docx
Culturally Responsive Literacy Resources Template Part 1.docxCulturally Responsive Literacy Resources Template Part 1.docx
Culturally Responsive Literacy Resources Template Part 1.docx
dorishigh
 
Lect05 Prog Model
Lect05 Prog ModelLect05 Prog Model
Lect05 Prog Model
anoosdomain
 
JUNOS: OSPF and BGP
JUNOS: OSPF and BGPJUNOS: OSPF and BGP
JUNOS: OSPF and BGP
Zenith Networks
 
Follow the (Kafka) Streams
Follow the (Kafka) StreamsFollow the (Kafka) Streams
Follow the (Kafka) Streams
confluent
 

Similar to Large Partially-connected Erlang Clusters (20)

Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
 
multi-core Processor.ppt for IGCSE ICT and Computer Science Students
multi-core Processor.ppt for IGCSE ICT and Computer Science Studentsmulti-core Processor.ppt for IGCSE ICT and Computer Science Students
multi-core Processor.ppt for IGCSE ICT and Computer Science Students
 
Disaggregating Ceph using NVMeoF
Disaggregating Ceph using NVMeoFDisaggregating Ceph using NVMeoF
Disaggregating Ceph using NVMeoF
 
OSDC 2015: Roland Kammerer | DRBD9: Managing High-Available Storage in Many-N...
OSDC 2015: Roland Kammerer | DRBD9: Managing High-Available Storage in Many-N...OSDC 2015: Roland Kammerer | DRBD9: Managing High-Available Storage in Many-N...
OSDC 2015: Roland Kammerer | DRBD9: Managing High-Available Storage in Many-N...
 
Demystifying Datacenter Clos
Demystifying Datacenter ClosDemystifying Datacenter Clos
Demystifying Datacenter Clos
 
Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102
 
microprocessor
   microprocessor   microprocessor
microprocessor
 
ELC-E 2019 Device tree, past, present, future
ELC-E 2019 Device tree, past, present, futureELC-E 2019 Device tree, past, present, future
ELC-E 2019 Device tree, past, present, future
 
FAIR Projector Builder
FAIR Projector BuilderFAIR Projector Builder
FAIR Projector Builder
 
Experiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsExperiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah Watkins
 
Multicore Processors
Multicore ProcessorsMulticore Processors
Multicore Processors
 
0xdroid osdc-2010-100426084937-phpapp02
0xdroid osdc-2010-100426084937-phpapp020xdroid osdc-2010-100426084937-phpapp02
0xdroid osdc-2010-100426084937-phpapp02
 
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
 
Learning Erlang (from a Prolog dropout's perspective)
Learning Erlang (from a Prolog dropout's perspective)Learning Erlang (from a Prolog dropout's perspective)
Learning Erlang (from a Prolog dropout's perspective)
 
Kernel Recipes 2017 - EBPF and XDP - Eric Leblond
Kernel Recipes 2017 - EBPF and XDP - Eric LeblondKernel Recipes 2017 - EBPF and XDP - Eric Leblond
Kernel Recipes 2017 - EBPF and XDP - Eric Leblond
 
Gntc 2017 cord platform
Gntc 2017 cord platformGntc 2017 cord platform
Gntc 2017 cord platform
 
Culturally Responsive Literacy Resources Template Part 1.docx
Culturally Responsive Literacy Resources Template Part 1.docxCulturally Responsive Literacy Resources Template Part 1.docx
Culturally Responsive Literacy Resources Template Part 1.docx
 
Lect05 Prog Model
Lect05 Prog ModelLect05 Prog Model
Lect05 Prog Model
 
JUNOS: OSPF and BGP
JUNOS: OSPF and BGPJUNOS: OSPF and BGP
JUNOS: OSPF and BGP
 
Follow the (Kafka) Streams
Follow the (Kafka) StreamsFollow the (Kafka) Streams
Follow the (Kafka) Streams
 

Recently uploaded

E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 

Recently uploaded (20)

E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 

Large Partially-connected Erlang Clusters