SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Semelhante a 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
 

Semelhante a 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
 

Mais de 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
 

Mais de 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
 

Último

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
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
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
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.
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
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
 

Último (20)

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.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...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
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
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
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...
 

Scaling connections in peer-to-peer applications