Skip to content

Commit fea5c79

Browse files
committed
- Added socket timeouts for ALL the socket communications;
1 parent 2f1e5fe commit fea5c79

File tree

10 files changed

+64
-35
lines changed

10 files changed

+64
-35
lines changed

.idea/workspace.xml

+44-33
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
145 Bytes
Binary file not shown.

src/main/java/com/distribsystems/p2p/chord_lib/Chord.java

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public class Chord {
77
public final static int FINGER_TABLE_SIZE = 8; //Max 160
88
public final static int STABILIZATION_DELAY = 8; //[seconds]
99
public final static int PING_DELAY = 3; //[seconds]
10+
public final static int SOCKET_TIMEOUT = 3; //[seconds]
1011
public static boolean enableLogs = true;
1112

1213
public final static String NEW_PREDECESSOR = "NEW_PREDECESSOR";

src/main/java/com/distribsystems/p2p/chord_lib/Node.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ public void initFingerTable() {
141141
try {
142142
BigInteger baseTwo = BigInteger.valueOf(2L);
143143
Socket socket = new Socket(this.existingNodeIpAddr, this.existingNodePort);
144+
socket.setSoTimeout(Chord.SOCKET_TIMEOUT*1000);
144145

145146
// Open reader/writer to chord node
146147
PrintWriter socketWriter = new PrintWriter(socket.getOutputStream(), true);
@@ -197,6 +198,7 @@ private void initSuccessors() {
197198
if (!this.ipAddr.equals(this.firstSuccessor.getIpAddr()) || (this.port != this.firstSuccessor.getPort())) {
198199
try {
199200
Socket socket = new Socket(this.firstSuccessor.getIpAddr(), this.firstSuccessor.getPort());
201+
socket.setSoTimeout(Chord.SOCKET_TIMEOUT*1000);
200202

201203
// Open writer to successor node
202204
PrintWriter socketWriter = new PrintWriter(socket.getOutputStream(), true);
@@ -327,7 +329,7 @@ public String findItem(BigInteger key){
327329
try {
328330
// Open socket to chord node
329331
Socket socket = new Socket(closestSuccessor.getIpAddr(), closestSuccessor.getPort());
330-
socket.setSoTimeout(2000);
332+
socket.setSoTimeout(Chord.SOCKET_TIMEOUT*1000);
331333

332334
// Open reader/writer to chord node
333335
PrintWriter socketWriter = new PrintWriter(socket.getOutputStream(), true);
@@ -413,7 +415,7 @@ public String placeItem(BigInteger itemKey, String item){
413415
try {
414416
// Open socket to chord node
415417
Socket socket = new Socket(closestSuccessor.getIpAddr(), closestSuccessor.getPort());
416-
socket.setSoTimeout(2000);
418+
socket.setSoTimeout(Chord.SOCKET_TIMEOUT*1000);
417419

418420
// Open reader/writer to chord node
419421
PrintWriter socketWriter = new PrintWriter(socket.getOutputStream(), true);
@@ -451,6 +453,7 @@ public boolean placeItem(Finger finger, BigInteger itemKey){
451453
try {
452454
// Open socket to chord node
453455
Socket socket = new Socket(finger.getIpAddr(), finger.getPort());
456+
socket.setSoTimeout(Chord.SOCKET_TIMEOUT*1000);
454457

455458
// Open reader/writer to chord node
456459
PrintWriter socketWriter = new PrintWriter(socket.getOutputStream(), true);
@@ -578,6 +581,7 @@ public void notifyNodeDestruction(){
578581
try {
579582
// Open socket to chord node
580583
Socket socket = new Socket(finger.getIpAddr(), finger.getPort());
584+
socket.setSoTimeout(Chord.SOCKET_TIMEOUT*1000);
581585

582586
// Open reader/writer to chord node
583587
PrintWriter socketWriter = new PrintWriter(socket.getOutputStream(), true);

src/main/java/com/distribsystems/p2p/chord_lib/Server.java

+5
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,7 @@ private String findFinger(String id) {
294294
try {
295295
// Open socket to chord node
296296
Socket socket = new Socket(closestPredecessor.getIpAddr(), closestPredecessor.getPort());
297+
socket.setSoTimeout(Chord.SOCKET_TIMEOUT*1000);
297298

298299
// Open reader/writer to chord node
299300
PrintWriter socketWriter = new PrintWriter(socket.getOutputStream(), true);
@@ -415,6 +416,7 @@ private String findItemByKey(String key) {
415416
try {
416417
// Open socket to chord node
417418
Socket socket = new Socket(this.node.getFirstSuccessor().getIpAddr(), this.node.getFirstSuccessor().getPort());
419+
socket.setSoTimeout(Chord.SOCKET_TIMEOUT*1000);
418420

419421
// Open reader/writer to chord node
420422
PrintWriter socketWriter = new PrintWriter(socket.getOutputStream(), true);
@@ -445,6 +447,7 @@ private String findItemByKey(String key) {
445447
try {
446448
// Open socket to chord node
447449
Socket socket = new Socket(this.node.getSecondSuccessor().getIpAddr(), this.node.getSecondSuccessor().getPort());
450+
socket.setSoTimeout(Chord.SOCKET_TIMEOUT*1000);
448451

449452
// Open reader/writer to chord node
450453
PrintWriter socketWriter = new PrintWriter(socket.getOutputStream(), true);
@@ -500,6 +503,7 @@ private String findItemByKey(String key) {
500503
try {
501504
// Open socket to chord node
502505
Socket socket = new Socket(closestPredecessor.getIpAddr(), closestPredecessor.getPort());
506+
socket.setSoTimeout(Chord.SOCKET_TIMEOUT*1000);
503507

504508
// Open reader/writer to chord node
505509
PrintWriter socketWriter = new PrintWriter(socket.getOutputStream(), true);
@@ -621,6 +625,7 @@ private String placeItem(String key, String item) {
621625
try {
622626
// Open socket to chord node
623627
Socket socket = new Socket(closestSuccessor.getIpAddr(), closestSuccessor.getPort());
628+
socket.setSoTimeout(Chord.SOCKET_TIMEOUT*1000);
624629

625630
// Open reader/writer to chord node
626631
PrintWriter socketWriter = new PrintWriter(socket.getOutputStream(), true);

0 commit comments

Comments
 (0)