SJTU-IPADS / fisslock

A fast and scalable distributed lock service using programmable switches.
12 stars 1 forks source link

Query about the paper #1

Closed lucky0218 closed 3 weeks ago

lucky0218 commented 2 months ago

In §4.2 of your paper,

FISSLOCK addresses the loss of packets initially sent by servers through TCP-based retransmission. When a server receives a packet, it sends an acknowledgement (ACK) to the origin of the packet. The switch forwards ACKs without updating on-switch metadata. Specifically, the destination of FREE packets (➆) is the switch instead of servers, in which case the switch sends the packet back as an ACK. Servers monitor the arrival of ACKs for each packet regularly and retransmit packets that are not ACKed within a certain time frame.

and still in §4.2,

In cases where the ACK is lost or delayed, the retransmission mechanism can cause packet duplication, which is handled by servers through TCP.

Although you mentioned TCP-based retransmission/TCP itself was used, I couldn't see any of it in your source code other than UDP ( i.e rte_udp_hdr ). Could you please kindly explain how it actually works?

dracit7 commented 1 month ago

Thanks for your interest in our work! Apologies for the delayed reply.

The TCP-based mechanisms outlined in §4.2 are specifically designed for tolerating packet loss. As a result, they are implemented in another codebase intended for an unreliable network environment, which is not made public.

The current codebase is tested on a testbed with a reliable network. In this context, we utilize UDP as a more straightforward solution.