Download presentation
Presentation is loading. Please wait.
1
netkit ftpd/ftp migration Part 4 Yufei 10/08/2010
2
Improvement Separate Executer Buffer Data Strature Bottleneck
3
New result File Size RDMA sequential TCP RDMA circled- buffer (30 x 50MB) 1GB 1.87 secs (5.5e+05 Kbytes/sec) 1.8 secs (5.7e+05 Kbytes/sec) 1.56 secs (6.6e+05 Kbytes/sec) 100G B 444 secs (2.3e+05 Kbytes/sec) 311 secs (3.3e+05 Kbytes/sec) 306 secs (3.3e+05 Kbytes/sec)
4
Improvement Independent Data Loading Module – Reader and Writer Independent Data Transfer Module – Sender and Receiver Circled Buffer – Free list – Sender list – Writer list
5
Client open new connection, then login to the server Child use the established connection to transfer COMMANDs and REPLIES information with Client USER, PASS, PORT, PASV, RETR, STOR communication channel data transfer channel P P Previous Type
6
Client open new connection, then login to the server Child use the established connection to transfer COMMANDs and REPLIES information with Client USER, PASS, PORT, PASV, RETR, STOR communication channel data transfer channel T-sender T-reader T-recver T-writer Separate Executer
7
Client open new connection, then login to the server Child use the established connection to transfer COMMANDs and REPLIES information with Client USER, PASS, PORT, PASV, RETR, STOR communication channel data transfer channel T-sender T-reader T-recver T-writer BUFFER Buffer Resource
8
T-sender T-reader T-recver T-writer free list sender list free list writer list RDMA_READ RDMA_WRITE Buffer List
9
T-sender T-reader free list sender list pthread_mutex_t Thread Synchronization pthread_cond_t not alarm
10
Buffer Block Data Strature next work request record rdma single SGE rdma_mr CTL CTL(control block) is used to indicate the length of the real transfer data, the EOF message of the transfer
11
How to teardown the connection -- Domino method Reader met the EOF of the source file – reader -> sender -> recver -> writer Generate a new package whose body length is ZERO – reader read fail or EOF, generate ZERO – sender check the CTL block of the buffer If ZERO, quit – recver check the CTL block of the buffer If ZERO, quit – writer check the CTL block of the buffer If ZERO, quit
12
Find the bottleneck T-sender T-reader T-recver T-writer free list sender list free list writer list RDMA_READ RDMA_WRITE Who is always WAITing?
13
Find the bottleneck Different environments(CPU, Memory, Network, Storage) have different bottlenecks. Buffer is a method to balance the difference of each modules. But we could improve some expensive cost procedures, such as – Expensive information exchange steps
14
Expensive control information exchange Data SourceData Sink Hello, I have some data to transfer Ok, please write the data to this address I am writing The writing complete I get the data, please do the next step
15
Q & A
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.