SlideShare a Scribd company logo
Glusterfs Session #7
client, server interactions
Scope
- Server init with all programs
- Client Connection - interaction with server xlator
- Client disconnection - interaction with server xlator
- Client reconnection - interaction with server xlator
Server init
- Server xlator sets up auth and programs it supports in the initialization of the
translator
- Demo server_init
Client connection
- On Graph’s PARENT_UP notification rpc-clnt starts connecting to the brick.
- Client first connects to glusterd on the node where the brick is located.
- Once the connection is successful client asks glusterd for the port the brick is running on
- Once it gets the port information, connection with glusterd is disconnected.
- Connection to the brick is established with the port information received from glusterd
Client connection - continued
- After successful connection with the brick
- DUMP_OP rpc is sent to the brick to get the supported programs and their versions
- Decides the version it will use for the fop rpcs v3 vs v4, newer clients go for v4 if the server
has the support, otherwise v3.
- HNDSHK_SETVOLUME rpc is sent now with the credentials and options the clients wants
from the server
- If server accepts the SETVOLUME, we have a successful connection on which glusterfs rpcs
can be sent.
Client connection - continued
- Server will setup the necessary structures(client_t) to make sure the
resources can be cleaned up in case there is a disconnect.
- Client_t data structure Code
Client disconnection
- Client can disconnect because of the following reasons
- Explicit disconnect either from client(graph switch) or server(auth changes)
- Process dying
- client/server Machine shutting off
- Network issues
- On client
- all the open fds are marked bad, further fops on these fds would fail with EBADF.
- Reconnection timers are started which would attempt reconnection.
Client disconnection - continued
- On disconnect server will get a disconnect event and server_rpc_notify will
- cleanup all the resources like locks, open fds.
- All the ongoing requests will be errored while responding because the socket is disconnected
- Structures corresponding to the connection will be cleaned up
- Client_destroy, client_disconnect callbacks are called for each xlator
- Code
Client reconnection
- If client disconnected from server but the client process is still running, then
client will keep trying to reconnect every 3 seconds.
- Each connection attempt would be similar to the connection sequence. The
only difference would be the client connection id will have the reconnection
number incremented
- Once the connection is restored client tries to recover the resources on the
connection like open fds. At the moment locks are not restored.
Client reconnection - continued
- For all the fds that are marked bad in client, a reopen request is sent to the
server. This is best-effort. If reopens for any files/directories fail the fd would
still be bad and would continue to give EBADF.
- Once re-opens are completed the client xlator will notify the parents
CHILD_UP event. New traffic on that xlator will start coming from this time
onwards.
- Code
Q & A

More Related Content

Similar to Glusterfs session #7 client, server interactions

Np unit iii
Np unit iiiNp unit iii
Np unit iii
vamsitricks
 
Internet
InternetInternet
Internet
Jack Nicole
 
Running Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docx
Running Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docxRunning Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docx
Running Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docx
joellemurphey
 
How a network connection is created A network connection is initi.pdf
How a network connection is created A network connection is initi.pdfHow a network connection is created A network connection is initi.pdf
How a network connection is created A network connection is initi.pdf
arccreation001
 
Remote Procedure Call
Remote Procedure CallRemote Procedure Call
Remote Procedure Call
MNM Jain Engineering College
 
Zookeeper Architecture
Zookeeper ArchitectureZookeeper Architecture
Zookeeper Architecture
Prasad Wali
 
PIW ISE best practices
PIW ISE best practicesPIW ISE best practices
PIW ISE best practices
Sergey Kucherenko
 
Difference between Client Polling vs Server Push vs Websocket vs Long Polling
Difference between Client Polling vs Server Push vs Websocket vs Long PollingDifference between Client Polling vs Server Push vs Websocket vs Long Polling
Difference between Client Polling vs Server Push vs Websocket vs Long Polling
jeetendra mandal
 
Web and internet technology notes for BCA students
Web and internet technology notes for BCA studentsWeb and internet technology notes for BCA students
Web and internet technology notes for BCA students
nawejakhatar10063
 
Weblogic server cluster
Weblogic server clusterWeblogic server cluster
Weblogic server cluster
Anandraj Kulkarni
 
RPC: Remote procedure call
RPC: Remote procedure callRPC: Remote procedure call
RPC: Remote procedure call
Sunita Sahu
 
Continuation_alan_20220503.pdf
Continuation_alan_20220503.pdfContinuation_alan_20220503.pdf
Continuation_alan_20220503.pdf
Shen yifeng
 
Game Networking for Online games
Game Networking for Online gamesGame Networking for Online games
Game Networking for Online games
Minh Nghiem
 
F5 Monitoring System (On Premise & Cloud Solution)
F5 Monitoring System (On Premise & Cloud Solution)F5 Monitoring System (On Premise & Cloud Solution)
F5 Monitoring System (On Premise & Cloud Solution)
Tolga Ercan
 
Transaction TCP
Transaction TCPTransaction TCP
Transaction TCP
amardeepsingh1902
 
Socket网络编程
Socket网络编程Socket网络编程
Socket网络编程
qhm123
 
Review on tls or ssl session sharing based web cluster load balancing
Review on tls or ssl session sharing based web cluster load balancingReview on tls or ssl session sharing based web cluster load balancing
Review on tls or ssl session sharing based web cluster load balancing
eSAT Journals
 
Review on tls or ssl session sharing based web cluster load balancing
Review on tls or ssl session sharing based web cluster load balancingReview on tls or ssl session sharing based web cluster load balancing
Review on tls or ssl session sharing based web cluster load balancing
eSAT Publishing House
 
Java Networking
Java NetworkingJava Networking
Java Networking
68SachinYadavSYCS
 
EMEA Airheads– Aruba Clarity. Because a Wi-Fi Problem's Often Not a "Wi-Fi" P...
EMEA Airheads– Aruba Clarity. Because a Wi-Fi Problem's Often Not a "Wi-Fi" P...EMEA Airheads– Aruba Clarity. Because a Wi-Fi Problem's Often Not a "Wi-Fi" P...
EMEA Airheads– Aruba Clarity. Because a Wi-Fi Problem's Often Not a "Wi-Fi" P...
Aruba, a Hewlett Packard Enterprise company
 

Similar to Glusterfs session #7 client, server interactions (20)

Np unit iii
Np unit iiiNp unit iii
Np unit iii
 
Internet
InternetInternet
Internet
 
Running Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docx
Running Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docxRunning Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docx
Running Head CLIENT SERVER AUTHENTICATIONHANDLING CONCURRENT CL.docx
 
How a network connection is created A network connection is initi.pdf
How a network connection is created A network connection is initi.pdfHow a network connection is created A network connection is initi.pdf
How a network connection is created A network connection is initi.pdf
 
Remote Procedure Call
Remote Procedure CallRemote Procedure Call
Remote Procedure Call
 
Zookeeper Architecture
Zookeeper ArchitectureZookeeper Architecture
Zookeeper Architecture
 
PIW ISE best practices
PIW ISE best practicesPIW ISE best practices
PIW ISE best practices
 
Difference between Client Polling vs Server Push vs Websocket vs Long Polling
Difference between Client Polling vs Server Push vs Websocket vs Long PollingDifference between Client Polling vs Server Push vs Websocket vs Long Polling
Difference between Client Polling vs Server Push vs Websocket vs Long Polling
 
Web and internet technology notes for BCA students
Web and internet technology notes for BCA studentsWeb and internet technology notes for BCA students
Web and internet technology notes for BCA students
 
Weblogic server cluster
Weblogic server clusterWeblogic server cluster
Weblogic server cluster
 
RPC: Remote procedure call
RPC: Remote procedure callRPC: Remote procedure call
RPC: Remote procedure call
 
Continuation_alan_20220503.pdf
Continuation_alan_20220503.pdfContinuation_alan_20220503.pdf
Continuation_alan_20220503.pdf
 
Game Networking for Online games
Game Networking for Online gamesGame Networking for Online games
Game Networking for Online games
 
F5 Monitoring System (On Premise & Cloud Solution)
F5 Monitoring System (On Premise & Cloud Solution)F5 Monitoring System (On Premise & Cloud Solution)
F5 Monitoring System (On Premise & Cloud Solution)
 
Transaction TCP
Transaction TCPTransaction TCP
Transaction TCP
 
Socket网络编程
Socket网络编程Socket网络编程
Socket网络编程
 
Review on tls or ssl session sharing based web cluster load balancing
Review on tls or ssl session sharing based web cluster load balancingReview on tls or ssl session sharing based web cluster load balancing
Review on tls or ssl session sharing based web cluster load balancing
 
Review on tls or ssl session sharing based web cluster load balancing
Review on tls or ssl session sharing based web cluster load balancingReview on tls or ssl session sharing based web cluster load balancing
Review on tls or ssl session sharing based web cluster load balancing
 
Java Networking
Java NetworkingJava Networking
Java Networking
 
EMEA Airheads– Aruba Clarity. Because a Wi-Fi Problem's Often Not a "Wi-Fi" P...
EMEA Airheads– Aruba Clarity. Because a Wi-Fi Problem's Often Not a "Wi-Fi" P...EMEA Airheads– Aruba Clarity. Because a Wi-Fi Problem's Often Not a "Wi-Fi" P...
EMEA Airheads– Aruba Clarity. Because a Wi-Fi Problem's Often Not a "Wi-Fi" P...
 

More from Pranith Karampuri

Glusterfs session #18 intro to fuse and its trade offs
Glusterfs session #18 intro to fuse and its trade offsGlusterfs session #18 intro to fuse and its trade offs
Glusterfs session #18 intro to fuse and its trade offs
Pranith Karampuri
 
Glusterfs session #12 locks xlator posixlk
Glusterfs session #12   locks xlator posixlkGlusterfs session #12   locks xlator posixlk
Glusterfs session #12 locks xlator posixlk
Pranith Karampuri
 
Glusterfs session #17 self heal daemon data, metadata, entry healing
Glusterfs session #17 self heal daemon data, metadata, entry healingGlusterfs session #17 self heal daemon data, metadata, entry healing
Glusterfs session #17 self heal daemon data, metadata, entry healing
Pranith Karampuri
 
Glusterfs session #16 self-heal daemon ( for replication)
Glusterfs session #16   self-heal daemon ( for replication)Glusterfs session #16   self-heal daemon ( for replication)
Glusterfs session #16 self-heal daemon ( for replication)
Pranith Karampuri
 
Glusterfs session #14 replication update fops
Glusterfs session #14   replication update fopsGlusterfs session #14   replication update fops
Glusterfs session #14 replication update fops
Pranith Karampuri
 
Glusterfs session #13 replication introduction
Glusterfs session #13   replication introductionGlusterfs session #13   replication introduction
Glusterfs session #13 replication introduction
Pranith Karampuri
 
Glusterfs session #11 locks xlator entrylks
Glusterfs session #11   locks xlator entrylksGlusterfs session #11   locks xlator entrylks
Glusterfs session #11 locks xlator entrylks
Pranith Karampuri
 
Glusterfs session #10 locks xlator inodelks
Glusterfs session #10   locks xlator inodelksGlusterfs session #10   locks xlator inodelks
Glusterfs session #10 locks xlator inodelks
Pranith Karampuri
 
Glusterfs session #9 index xlator
Glusterfs session #9   index xlatorGlusterfs session #9   index xlator
Glusterfs session #9 index xlator
Pranith Karampuri
 
Glusterfs session #8 memory tracking infra, io-threads
Glusterfs session #8   memory tracking infra, io-threadsGlusterfs session #8   memory tracking infra, io-threads
Glusterfs session #8 memory tracking infra, io-threads
Pranith Karampuri
 
Gluster dev session #6 understanding gluster's network communication layer
Gluster dev session #6  understanding gluster's network   communication layerGluster dev session #6  understanding gluster's network   communication layer
Gluster dev session #6 understanding gluster's network communication layer
Pranith Karampuri
 
Glusterfs session #5 inode t, fd-t lifecycles
Glusterfs session #5   inode t, fd-t lifecyclesGlusterfs session #5   inode t, fd-t lifecycles
Glusterfs session #5 inode t, fd-t lifecycles
Pranith Karampuri
 
Glusterfs session #4 call frame and programming model
Glusterfs session #4   call frame and programming modelGlusterfs session #4   call frame and programming model
Glusterfs session #4 call frame and programming model
Pranith Karampuri
 
Gluster dev session #3 xlator interface
Gluster dev session #3   xlator interfaceGluster dev session #3   xlator interface
Gluster dev session #3 xlator interface
Pranith Karampuri
 
Glusterfs session #2 1 layer above disk filesystems
Glusterfs session #2   1 layer above disk filesystemsGlusterfs session #2   1 layer above disk filesystems
Glusterfs session #2 1 layer above disk filesystems
Pranith Karampuri
 
Glusterfs session #1 disk filesystems
Glusterfs session #1   disk filesystemsGlusterfs session #1   disk filesystems
Glusterfs session #1 disk filesystems
Pranith Karampuri
 

More from Pranith Karampuri (16)

Glusterfs session #18 intro to fuse and its trade offs
Glusterfs session #18 intro to fuse and its trade offsGlusterfs session #18 intro to fuse and its trade offs
Glusterfs session #18 intro to fuse and its trade offs
 
Glusterfs session #12 locks xlator posixlk
Glusterfs session #12   locks xlator posixlkGlusterfs session #12   locks xlator posixlk
Glusterfs session #12 locks xlator posixlk
 
Glusterfs session #17 self heal daemon data, metadata, entry healing
Glusterfs session #17 self heal daemon data, metadata, entry healingGlusterfs session #17 self heal daemon data, metadata, entry healing
Glusterfs session #17 self heal daemon data, metadata, entry healing
 
Glusterfs session #16 self-heal daemon ( for replication)
Glusterfs session #16   self-heal daemon ( for replication)Glusterfs session #16   self-heal daemon ( for replication)
Glusterfs session #16 self-heal daemon ( for replication)
 
Glusterfs session #14 replication update fops
Glusterfs session #14   replication update fopsGlusterfs session #14   replication update fops
Glusterfs session #14 replication update fops
 
Glusterfs session #13 replication introduction
Glusterfs session #13   replication introductionGlusterfs session #13   replication introduction
Glusterfs session #13 replication introduction
 
Glusterfs session #11 locks xlator entrylks
Glusterfs session #11   locks xlator entrylksGlusterfs session #11   locks xlator entrylks
Glusterfs session #11 locks xlator entrylks
 
Glusterfs session #10 locks xlator inodelks
Glusterfs session #10   locks xlator inodelksGlusterfs session #10   locks xlator inodelks
Glusterfs session #10 locks xlator inodelks
 
Glusterfs session #9 index xlator
Glusterfs session #9   index xlatorGlusterfs session #9   index xlator
Glusterfs session #9 index xlator
 
Glusterfs session #8 memory tracking infra, io-threads
Glusterfs session #8   memory tracking infra, io-threadsGlusterfs session #8   memory tracking infra, io-threads
Glusterfs session #8 memory tracking infra, io-threads
 
Gluster dev session #6 understanding gluster's network communication layer
Gluster dev session #6  understanding gluster's network   communication layerGluster dev session #6  understanding gluster's network   communication layer
Gluster dev session #6 understanding gluster's network communication layer
 
Glusterfs session #5 inode t, fd-t lifecycles
Glusterfs session #5   inode t, fd-t lifecyclesGlusterfs session #5   inode t, fd-t lifecycles
Glusterfs session #5 inode t, fd-t lifecycles
 
Glusterfs session #4 call frame and programming model
Glusterfs session #4   call frame and programming modelGlusterfs session #4   call frame and programming model
Glusterfs session #4 call frame and programming model
 
Gluster dev session #3 xlator interface
Gluster dev session #3   xlator interfaceGluster dev session #3   xlator interface
Gluster dev session #3 xlator interface
 
Glusterfs session #2 1 layer above disk filesystems
Glusterfs session #2   1 layer above disk filesystemsGlusterfs session #2   1 layer above disk filesystems
Glusterfs session #2 1 layer above disk filesystems
 
Glusterfs session #1 disk filesystems
Glusterfs session #1   disk filesystemsGlusterfs session #1   disk filesystems
Glusterfs session #1 disk filesystems
 

Recently uploaded

Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
chanes7
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
Nguyen Thanh Tu Collection
 
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
RitikBhardwaj56
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
taiba qazi
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
Celine George
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
Celine George
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
tarandeep35
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
eBook.com.bd (প্রয়োজনীয় বাংলা বই)
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
Smart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICTSmart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICT
simonomuemu
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
Dr. Mulla Adam Ali
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Akanksha trivedi rama nursing college kanpur.
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
mulvey2
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
TechSoup
 
The basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptxThe basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptx
heathfieldcps1
 
How to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP ModuleHow to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP Module
Celine George
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
David Douglas School District
 

Recently uploaded (20)

Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
 
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
Smart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICTSmart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICT
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
 
The basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptxThe basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptx
 
How to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP ModuleHow to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP Module
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
 

Glusterfs session #7 client, server interactions

  • 1. Glusterfs Session #7 client, server interactions
  • 2. Scope - Server init with all programs - Client Connection - interaction with server xlator - Client disconnection - interaction with server xlator - Client reconnection - interaction with server xlator
  • 3. Server init - Server xlator sets up auth and programs it supports in the initialization of the translator - Demo server_init
  • 4. Client connection - On Graph’s PARENT_UP notification rpc-clnt starts connecting to the brick. - Client first connects to glusterd on the node where the brick is located. - Once the connection is successful client asks glusterd for the port the brick is running on - Once it gets the port information, connection with glusterd is disconnected. - Connection to the brick is established with the port information received from glusterd
  • 5. Client connection - continued - After successful connection with the brick - DUMP_OP rpc is sent to the brick to get the supported programs and their versions - Decides the version it will use for the fop rpcs v3 vs v4, newer clients go for v4 if the server has the support, otherwise v3. - HNDSHK_SETVOLUME rpc is sent now with the credentials and options the clients wants from the server - If server accepts the SETVOLUME, we have a successful connection on which glusterfs rpcs can be sent.
  • 6. Client connection - continued - Server will setup the necessary structures(client_t) to make sure the resources can be cleaned up in case there is a disconnect. - Client_t data structure Code
  • 7. Client disconnection - Client can disconnect because of the following reasons - Explicit disconnect either from client(graph switch) or server(auth changes) - Process dying - client/server Machine shutting off - Network issues - On client - all the open fds are marked bad, further fops on these fds would fail with EBADF. - Reconnection timers are started which would attempt reconnection.
  • 8. Client disconnection - continued - On disconnect server will get a disconnect event and server_rpc_notify will - cleanup all the resources like locks, open fds. - All the ongoing requests will be errored while responding because the socket is disconnected - Structures corresponding to the connection will be cleaned up - Client_destroy, client_disconnect callbacks are called for each xlator - Code
  • 9. Client reconnection - If client disconnected from server but the client process is still running, then client will keep trying to reconnect every 3 seconds. - Each connection attempt would be similar to the connection sequence. The only difference would be the client connection id will have the reconnection number incremented - Once the connection is restored client tries to recover the resources on the connection like open fds. At the moment locks are not restored.
  • 10. Client reconnection - continued - For all the fds that are marked bad in client, a reopen request is sent to the server. This is best-effort. If reopens for any files/directories fail the fd would still be bad and would continue to give EBADF. - Once re-opens are completed the client xlator will notify the parents CHILD_UP event. New traffic on that xlator will start coming from this time onwards. - Code
  • 11. Q & A