SlideShare a Scribd company logo
1 of 83
SCALING CONNECTIONS IN
P2P APPS
INTRODUCTION
Bartosz Sypytkowski
▪ @Horusiath
▪ b.sypytkowski@gmail.com
▪ bartoszsypytkowski.com
 P2P vs. Client/Server
 Networking 101
 Membership & peer discovery
 Gossiping data efficiently
AGENDA
CLIENT / SERVER PEER TO PEER
Local network
Local network
“The cloud”
Local network
Local neatwork
CLIENT / SERVER PEER TO PEER
• Roles: initiator or acceptor
• Cluster of predictable size
• Homogeneous, fast, stable network
• Servers: powerful hardware, always
on
• Dedicated roles (DB, app server,
cache)
• Roles: both initiator and acceptor
• Unbounded number of members
• Variadic, unpredictable network
• Peers: weak hardware, powered by
batteries
• No preconfigured roles
CLIENT / SERVER PEER TO PEER
Local network
Local network
“The cloud”
Local network
Local neatwork
How two devices
can discover each
other?
NETWORK ADDRESS TRANSLATION
Internet
Router Server
172.23.208.1
200.100.10.1
Client
NETWORK ADDRESS TRANSLATION
Internet
Router Server
172.23.208.1
200.100.10.1
Source: 172.23.208.1
Destination: 200.100.10.1
Client
NETWORK ADDRESS TRANSLATION
Internet
Router Server
172.23.208.1
200.100.10.1
Source: 172.23.208.1
Destination: 200.100.10.1
Client
NETWORK ADDRESS TRANSLATION
Internet
Router Server
172.23.208.1
200.100.10.1
Source: 84.11.65.1
Destination: 200.100.10.1
NAT table
172.23.208.1 84.11.65.1
Client
NETWORK ADDRESS TRANSLATION
Internet
Router Server
172.23.208.1
200.100.10.1
Source: 84.11.65.1
Destination: 200.100.10.1
NAT table
172.23.208.1 84.11.65.1
Possible further
source IP
changes
Client
HOW DO WE KNOW THE IP ADDRESS OF ACCEPTOR?
NETWORK 101
DNS
172.23.208.1
Server
200.100.10.1
DNS Server
DNS records
example.com 200.100.10.1
Client
NETWORK 101
DNS
172.23.208.1
Server
200.100.10.1
DNS Server
DNS records
example.com 200.100.10.1
Client
WHY CAN’T WE SETUP A DNS RECORD FOR EVERY PEER?
STUN
Router STUN Server
172.23.208.1
stun.l.google.com
Client
DISCOVERING PUBLIC IP
STUN
Router STUN Server
172.23.208.1
stun.l.google.com
Client
DISCOVERING PUBLIC IP
What is my public IP?
Source: 172.23.208.1
Destination: 200.100.10.1
STUN
Router STUN Server
172.23.208.1
stun.l.google.com
Client
DISCOVERING PUBLIC IP
What is my public IP?
Source: 84.11.65.1
Destination: 200.100.10.1
NAT table
172.23.208.1 84.11.65.1
STUN
Router STUN Server
172.23.208.1
stun.l.google.com
Client
DISCOVERING PUBLIC IP
Your public IP is:
84.11.65.1
NAT table
172.23.208.1 84.11.65.1
STUN
Router STUN Server
172.23.208.1
stun.l.google.com
Client
DISCOVERING PUBLIC IP
Your public IP is:
84.11.65.1
NAT table
172.23.208.1 84.11.65.1
Periodically send ping to
keep the NAT table
mapping unchanged.
NOT ALL FIREWALLS ENABLE DIRECT DEVICE-DEVICE
CONNECTION
TURN
Firewall
84.16.55.1
Client
RELAYING MESSAGES OVER NATS/FIREWALLS
TURN Server
54.23.201.1
Client
ICE
NEGOTIATE THE CONNECTION CAPABILITIES
ICE
NEGOTIATE
WHICH
CONNECTION TO
USE
const conn = new RTCPeerConnection({
iceServers: [
{
urls: "stun:stunserver.example.com:3478",
},
{
urls: 'turn:turnserver.com:3478',
credential: 'password',
username: 'username'
}
]
})
CLIENT / SERVER PEER TO PEER
Local network
Local network
“The cloud”
Local network
Local neatwork
What about that
part?
mDNS svc-1.local 192.168.0.1 svc-3.local 192.168.0.3 svc-5.local 192.168.0.5
svc-2.local 192.168.0.2 svc-4.local 192.168.0.4
mDNS svc-1.local 192.168.0.1 svc-3.local 192.168.0.3 svc-5.local 192.168.0.5
svc-2.local 192.168.0.2 svc-4.local 192.168.0.4
Where is svc-4.local?
mDNS svc-1.local 192.168.0.1 svc-3.local 192.168.0.3 svc-5.local 192.168.0.5
svc-2.local 192.168.0.2 svc-4.local 192.168.0.4
Where is svc-4.local?
Where is svc-4.local? Where is svc-4.local?
Where is svc-4.local?
multicast
mDNS svc-1.local 192.168.0.1 svc-3.local 192.168.0.3 svc-5.local 192.168.0.5
svc-2.local 192.168.0.2 svc-4.local 192.168.0.4
svc-4.local = 192.168.0.4
mDNS svc-1.local 192.168.0.1 svc-3.local 192.168.0.3 svc-5.local 192.168.0.5
svc-2.local 192.168.0.2 svc-4.local 192.168.0.4
svc-4.local = 192.168.04
svc-4.local = 192.168.04
svc-4.local = 192.168.04 svc-4.local = 192.168.04
multicast
mDNS
svc-1.local 192.168.0.1
svc-4.local 192.168.0.4
svc-3.local 192.168.0.3
svc-4.local 192.168.0.4
svc-5.local 192.168.0.5
svc-4.local 192.168.0.4
svc-2.local 192.168.0.2
svc-4.local 192.168.0.4
svc-4.local 192.168.0.4
svc-4.local = 192.168.0.4
mDNS
const mdns = require('mdns')
// advertise service svc-1 at port 9999 via TCP
const service = mdns.createAdvertisement(mdns.tcp(), 9999, {
name: 'svc-1'
})
service.start()
// discover services
const browser = mdns.createBrowser(mdns.tcp())
browser.on('ready', () => browser.discover())
browser.on('update', (data) => {
console.log(data);
// {
// interfaceIndex: 4,
// name: svc-1',
// networkInterface: 'en0',
// type: {name: '', protocol: 'tcp', subtypes: []},
// replyDomain: 'local.',
// fullname: 'svc-1._tcp.local.',
// host: 'svc-1.local.',
// port: 9999,
// addresses: [ '10.1.1.50', 'fe80::21f:5bff:fecd:ce64' ]
// }
})
CLUSTERING
HOW TO BUILD A CLUSTER THAT COULD SPAN OVER >1K
NODES USING DIFFERENT NETWORKS?
HYPARVIEW
HYBRID PARTIAL VIEW FOR CLUSTER MEMBERSHIP
CONNECTING EVERYONE TO EACH OTHER DOESN’T SCALE
CONNECTING EVERYONE TO EACH OTHER DOESN’T SCALE
BUT…
NAÏVE
CONNECTIVITY
ISSUES
F
A
E B
C
D
Connections limit: 4
NAÏVE
CONNECTIVITY
ISSUES
F
A
E B
C
D
Connections limit: 4
Can I join?
NAÏVE
CONNECTIVITY
ISSUES
F
A
E B
C
D
Connections limit: 4
Sorry, I’m at
my limit.
SOLUTION: INTRODUCE PRIORITY CONNECTIONS
PRIORITY
CONNECTIONS
F
A
E B
C
D
Connections limit: 4
PRIORITY
CONNECTIONS
F
A
E B
C
D
Connections limit: 4
SUDO: let
me join
PRIORITY
CONNECTIONS
F
A
E B
C
D
Connections limit: 4
drop existing connection at
random to free the pool
PRIORITY
CONNECTIONS
F
A
E B
C
D
Connections limit: 4
establish new connection
F
A
E B
C
D
Connections limit: 4
FORWARD NEW
PEER INFOR TO
OTHERS
F
A
E B
C
D
Connections limit: 4
FWD(1)
FORWARD NEW
PEER INFOR TO
OTHERS
HYPARVIEW 101
A
C
B
D
passive view
active view
K
J
I
H
G
F
E
L
M
N
Active peers
Passive peers
HOW TO GOSSIP MESSAGES EFFICIENTLY?
PLUMTREE
EPIDEMIC BROADCAST TREES
PLUMTREE 101
A
C
B
D
K
J
I
H
G
F
E
L
M
N
BUILDING A TREE
A
C
B
D
K
J
I
H
G
F
E
L
M
N
BUILDING A TREE
A
C
B
D
K
J
I
H
G
F
E
L
M
N
BUILDING A TREE
A
C
B
D
K
J
I
H
G
F
E
L
M
N
BUILDING A TREE
A
C
B
D
K
J
I
H
G
F
E
L
M
N
BUILDING A TREE
A
C
B
D
K
J
I
H
G
F
E
L
M
N
BUILDING A TREE
A
C
B
D
K
J
I
H
G
F
E
L
M
N
BUILDING A TREE
A
C
B
D
K
J
I
H
G
F
E
L
M
N
BUILDING A TREE
A
C
B
D
K
J
I
H
G
F
E
L
M
N
BUILDING A TREE
A
C
B
D
K
J
I
H
G
F
E
L
M
N
BUILDING A TREE
A
C
B
D
K
J
I
H
G
F
E
L
M
N
BUILDING A TREE
A
C
B
D
K
J
I
H
G
F
E
L
M
N
BUILDING A TREE
A
C
B
D
K
J
I
H
G
F
E
L
M
N
Eager peers
Lazy peers
WHAT IF CONNECTION FAILS?
TREE REPAIR
A
C
B
D
K
J
I
H
G
F
E
L
M
N
connection failure
TREE REPAIR
A
C
B
D
K
J
I
H
G
F
E
L
M
N
Part of the gossip tree is
disconnected from the rest
TREE REPAIR
A
C
B
D
K
J
I
H
G
F
E
L
M
N
Once in a while send message
to lazy peers about latest
gossips ids (m1)
TREE REPAIR
A
C
B
D
K
J
I
H
G
F
E
L
M
N
Message receiver awaits for m1
TREE REPAIR
A
C
B
D
K
J
I
H
G
F
E
L
M
N
If m1 didn’t arrive before
timeout, send graft back
TREE REPAIR
A
C
B
D
K
J
I
H
G
F
E
L
M
N
Promote lazy peer to eager one
TREE REPAIR
A
C
B
D
K
J
I
H
G
F
E
L
M
N
SUMMARY
 Rainbow connections: https://www.youtube.com/watch?v=8_A1CkYfzoM
 Partisan: https://github.com/lasp-lang/partisan
 DotNext:
https://github.com/dotnet/dotNext/tree/1d551b091db81e55d93fb4d45856b3edb11602d3/src/cluster/Do
tNext.AspNetCore.Cluster/Net/Cluster/Discovery/HyParView
 Hyparview: https://bartoszsypytkowski.com/hyparview/
REFERENCES
THANK YOU
PLUMTREE 101
A
C
B
D
K
J
I
H
G
F
E
L
M
N
PLUMTREE 101
A
C
B
D
K
J
I
H
G
F
E
L
M
N
gossip
PLUMTREE 101
A
C
B
D
K
J
I
H
G
F
E
L
M
N
PLUMTREE 101
A
C
B
D
K
J
I
H
G
F
E
L
M
N
PLUMTREE 101
A
C
B
D
K
J
I
H
G
F
E
L
M
N
gossip
PLUMTREE 101
A
C
B
D
K
J
I
H
G
F
E
L
M
N
PLUMTREE 101
A
C
B
D
K
J
I
H
G
F
E
L
M
N
PLUMTREE 101
A
C
B
D
K
J
I
H
G
F
E
L
M
N

More Related Content

Similar to Scaling connections in peer-to-peer applications

Nanog75, Network Device Property as Code
Nanog75, Network Device Property as CodeNanog75, Network Device Property as Code
Nanog75, Network Device Property as CodeDamien Garros
 
Best practices of building data streaming API
Best practices of building data streaming APIBest practices of building data streaming API
Best practices of building data streaming APIConstantine Slisenka
 
Load Balancing 101
Load Balancing 101Load Balancing 101
Load Balancing 101HungWei Chiu
 
Reliable array of independent nodes
Reliable array of independent nodesReliable array of independent nodes
Reliable array of independent nodesPratik Gondaliya
 
Load Balancer Device and Configurations.
Load Balancer Device and Configurations.Load Balancer Device and Configurations.
Load Balancer Device and Configurations.Web Werks Data Centers
 
App to Cloud: Patrick Kerpan's DataCenter Dynamics Converged Keynote
App to Cloud: Patrick Kerpan's DataCenter Dynamics Converged KeynoteApp to Cloud: Patrick Kerpan's DataCenter Dynamics Converged Keynote
App to Cloud: Patrick Kerpan's DataCenter Dynamics Converged KeynoteCohesive Networks
 
MuleSoft Surat Live Demonstration Virtual Meetup#1 - Anypoint VPC VPN and DLB
MuleSoft Surat Live Demonstration Virtual Meetup#1 - Anypoint VPC VPN and DLBMuleSoft Surat Live Demonstration Virtual Meetup#1 - Anypoint VPC VPN and DLB
MuleSoft Surat Live Demonstration Virtual Meetup#1 - Anypoint VPC VPN and DLBJitendra Bafna
 
Networking @Scale'19 - Getting a Taste of Your Network - Sergey Fedorov
Networking @Scale'19 - Getting a Taste of Your Network - Sergey FedorovNetworking @Scale'19 - Getting a Taste of Your Network - Sergey Fedorov
Networking @Scale'19 - Getting a Taste of Your Network - Sergey FedorovSergey Fedorov
 
Demystifying azure networking for on premises-azure databases
Demystifying azure networking for on premises-azure databasesDemystifying azure networking for on premises-azure databases
Demystifying azure networking for on premises-azure databasesMohamed Wali
 
Microsoft lync server 2010 protocol workloads poster
Microsoft lync server 2010 protocol workloads posterMicrosoft lync server 2010 protocol workloads poster
Microsoft lync server 2010 protocol workloads posterbigwalker
 
Midokura OpenStack Day Korea Talk: MidoNet Open Source Network Virtualization...
Midokura OpenStack Day Korea Talk: MidoNet Open Source Network Virtualization...Midokura OpenStack Day Korea Talk: MidoNet Open Source Network Virtualization...
Midokura OpenStack Day Korea Talk: MidoNet Open Source Network Virtualization...Dan Mihai Dumitriu
 
Microsoft Offical Course 20410C_05
Microsoft Offical Course 20410C_05Microsoft Offical Course 20410C_05
Microsoft Offical Course 20410C_05gameaxt
 
The Good, the Bad and the Ugly of Networking for Microservices by Mathew Lodg...
The Good, the Bad and the Ugly of Networking for Microservices by Mathew Lodg...The Good, the Bad and the Ugly of Networking for Microservices by Mathew Lodg...
The Good, the Bad and the Ugly of Networking for Microservices by Mathew Lodg...Docker, Inc.
 
Signpost at FOCI 2013
Signpost at FOCI 2013Signpost at FOCI 2013
Signpost at FOCI 2013Amir Chaudhry
 
New lessons in connection management
New lessons in connection managementNew lessons in connection management
New lessons in connection managementToon Koppelaars
 
Cisco discovery d homesb module 10 final exam - v.4 in english.
Cisco discovery   d homesb module 10 final exam - v.4 in english.Cisco discovery   d homesb module 10 final exam - v.4 in english.
Cisco discovery d homesb module 10 final exam - v.4 in english.igede tirtanata
 
Cisco discovery d homesb module 10 final exam - v.4 in english.
Cisco discovery   d homesb module 10 final exam - v.4 in english.Cisco discovery   d homesb module 10 final exam - v.4 in english.
Cisco discovery d homesb module 10 final exam - v.4 in english.igede tirtanata
 
Consul: Service Mesh for Microservices
Consul: Service Mesh for MicroservicesConsul: Service Mesh for Microservices
Consul: Service Mesh for MicroservicesArmonDadgar
 

Similar to Scaling connections in peer-to-peer applications (20)

Nanog75, Network Device Property as Code
Nanog75, Network Device Property as CodeNanog75, Network Device Property as Code
Nanog75, Network Device Property as Code
 
Getting Started on AWS
Getting Started on AWS Getting Started on AWS
Getting Started on AWS
 
Best practices of building data streaming API
Best practices of building data streaming APIBest practices of building data streaming API
Best practices of building data streaming API
 
Load Balancing 101
Load Balancing 101Load Balancing 101
Load Balancing 101
 
Reliable array of independent nodes
Reliable array of independent nodesReliable array of independent nodes
Reliable array of independent nodes
 
Load Balancer Device and Configurations.
Load Balancer Device and Configurations.Load Balancer Device and Configurations.
Load Balancer Device and Configurations.
 
App to Cloud: Patrick Kerpan's DataCenter Dynamics Converged Keynote
App to Cloud: Patrick Kerpan's DataCenter Dynamics Converged KeynoteApp to Cloud: Patrick Kerpan's DataCenter Dynamics Converged Keynote
App to Cloud: Patrick Kerpan's DataCenter Dynamics Converged Keynote
 
MuleSoft Surat Live Demonstration Virtual Meetup#1 - Anypoint VPC VPN and DLB
MuleSoft Surat Live Demonstration Virtual Meetup#1 - Anypoint VPC VPN and DLBMuleSoft Surat Live Demonstration Virtual Meetup#1 - Anypoint VPC VPN and DLB
MuleSoft Surat Live Demonstration Virtual Meetup#1 - Anypoint VPC VPN and DLB
 
Networking @Scale'19 - Getting a Taste of Your Network - Sergey Fedorov
Networking @Scale'19 - Getting a Taste of Your Network - Sergey FedorovNetworking @Scale'19 - Getting a Taste of Your Network - Sergey Fedorov
Networking @Scale'19 - Getting a Taste of Your Network - Sergey Fedorov
 
Demystifying azure networking for on premises-azure databases
Demystifying azure networking for on premises-azure databasesDemystifying azure networking for on premises-azure databases
Demystifying azure networking for on premises-azure databases
 
Microsoft lync server 2010 protocol workloads poster
Microsoft lync server 2010 protocol workloads posterMicrosoft lync server 2010 protocol workloads poster
Microsoft lync server 2010 protocol workloads poster
 
Midokura OpenStack Day Korea Talk: MidoNet Open Source Network Virtualization...
Midokura OpenStack Day Korea Talk: MidoNet Open Source Network Virtualization...Midokura OpenStack Day Korea Talk: MidoNet Open Source Network Virtualization...
Midokura OpenStack Day Korea Talk: MidoNet Open Source Network Virtualization...
 
Microsoft Offical Course 20410C_05
Microsoft Offical Course 20410C_05Microsoft Offical Course 20410C_05
Microsoft Offical Course 20410C_05
 
Java socket programming
Java socket programmingJava socket programming
Java socket programming
 
The Good, the Bad and the Ugly of Networking for Microservices by Mathew Lodg...
The Good, the Bad and the Ugly of Networking for Microservices by Mathew Lodg...The Good, the Bad and the Ugly of Networking for Microservices by Mathew Lodg...
The Good, the Bad and the Ugly of Networking for Microservices by Mathew Lodg...
 
Signpost at FOCI 2013
Signpost at FOCI 2013Signpost at FOCI 2013
Signpost at FOCI 2013
 
New lessons in connection management
New lessons in connection managementNew lessons in connection management
New lessons in connection management
 
Cisco discovery d homesb module 10 final exam - v.4 in english.
Cisco discovery   d homesb module 10 final exam - v.4 in english.Cisco discovery   d homesb module 10 final exam - v.4 in english.
Cisco discovery d homesb module 10 final exam - v.4 in english.
 
Cisco discovery d homesb module 10 final exam - v.4 in english.
Cisco discovery   d homesb module 10 final exam - v.4 in english.Cisco discovery   d homesb module 10 final exam - v.4 in english.
Cisco discovery d homesb module 10 final exam - v.4 in english.
 
Consul: Service Mesh for Microservices
Consul: Service Mesh for MicroservicesConsul: Service Mesh for Microservices
Consul: Service Mesh for Microservices
 

More from Bartosz Sypytkowski

Postgres indexes: how to make them work for your application
Postgres indexes: how to make them work for your applicationPostgres indexes: how to make them work for your application
Postgres indexes: how to make them work for your applicationBartosz Sypytkowski
 
How do databases perform live backups and point-in-time recovery
How do databases perform live backups and point-in-time recoveryHow do databases perform live backups and point-in-time recovery
How do databases perform live backups and point-in-time recoveryBartosz Sypytkowski
 
Rich collaborative data structures for everyone
Rich collaborative data structures for everyoneRich collaborative data structures for everyone
Rich collaborative data structures for everyoneBartosz Sypytkowski
 
Behind modern concurrency primitives
Behind modern concurrency primitivesBehind modern concurrency primitives
Behind modern concurrency primitivesBartosz Sypytkowski
 
Behind modern concurrency primitives
Behind modern concurrency primitivesBehind modern concurrency primitives
Behind modern concurrency primitivesBartosz Sypytkowski
 
Living in eventually consistent reality
Living in eventually consistent realityLiving in eventually consistent reality
Living in eventually consistent realityBartosz Sypytkowski
 
Virtual machines - how they work
Virtual machines - how they workVirtual machines - how they work
Virtual machines - how they workBartosz Sypytkowski
 
Akka.NET streams and reactive streams
Akka.NET streams and reactive streamsAkka.NET streams and reactive streams
Akka.NET streams and reactive streamsBartosz Sypytkowski
 
GraphQL - an elegant weapon... for more civilized age
GraphQL - an elegant weapon... for more civilized ageGraphQL - an elegant weapon... for more civilized age
GraphQL - an elegant weapon... for more civilized ageBartosz Sypytkowski
 

More from Bartosz Sypytkowski (14)

Postgres indexes: how to make them work for your application
Postgres indexes: how to make them work for your applicationPostgres indexes: how to make them work for your application
Postgres indexes: how to make them work for your application
 
How do databases perform live backups and point-in-time recovery
How do databases perform live backups and point-in-time recoveryHow do databases perform live backups and point-in-time recovery
How do databases perform live backups and point-in-time recovery
 
Rich collaborative data structures for everyone
Rich collaborative data structures for everyoneRich collaborative data structures for everyone
Rich collaborative data structures for everyone
 
Postgres indexes
Postgres indexesPostgres indexes
Postgres indexes
 
Behind modern concurrency primitives
Behind modern concurrency primitivesBehind modern concurrency primitives
Behind modern concurrency primitives
 
Collaborative eventsourcing
Collaborative eventsourcingCollaborative eventsourcing
Collaborative eventsourcing
 
Behind modern concurrency primitives
Behind modern concurrency primitivesBehind modern concurrency primitives
Behind modern concurrency primitives
 
Living in eventually consistent reality
Living in eventually consistent realityLiving in eventually consistent reality
Living in eventually consistent reality
 
Virtual machines - how they work
Virtual machines - how they workVirtual machines - how they work
Virtual machines - how they work
 
Short story of time
Short story of timeShort story of time
Short story of time
 
Akka.NET streams and reactive streams
Akka.NET streams and reactive streamsAkka.NET streams and reactive streams
Akka.NET streams and reactive streams
 
Collaborative text editing
Collaborative text editingCollaborative text editing
Collaborative text editing
 
The last mile from db to disk
The last mile from db to diskThe last mile from db to disk
The last mile from db to disk
 
GraphQL - an elegant weapon... for more civilized age
GraphQL - an elegant weapon... for more civilized ageGraphQL - an elegant weapon... for more civilized age
GraphQL - an elegant weapon... for more civilized age
 

Recently uploaded

What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 

Recently uploaded (20)

What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 

Scaling connections in peer-to-peer applications