Commit 86cc9090 authored by Bhavesh Yadav's avatar Bhavesh Yadav

Added printfinger

parent c059ec87
kvserver: kvserver.o threadPool.o KVCache.o parsexml.o kvstore.o utils.o chord.o kvserver: kvserver.o threadPool.o KVCache.o parsexml.o kvstore.o utils.o chord.o
gcc -o kvserver kvserver.o threadPool.o KVCache.o parsexml.o kvstore.o chord.o utils.o -pthread -lcrypto gcc -o kvserver kvserver.o threadPool.o KVCache.o parsexml.o kvstore.o chord.o utils.o -pthread -lcrypto -lm
kvserver.o: kvserver.c threadPool.h KVCache.h kvstore.h kvserver.o: kvserver.c threadPool.h KVCache.h kvstore.h
gcc -c kvserver.c gcc -c kvserver.c
......
...@@ -101,7 +101,6 @@ void sendUDPToNode(char* msg,Node node, bool recvResponse, char* buffer) { ...@@ -101,7 +101,6 @@ void sendUDPToNode(char* msg,Node node, bool recvResponse, char* buffer) {
void initChordStructure(struct sockaddr_in *joinNode,sockaddr_t socketAddrServer){ void initChordStructure(struct sockaddr_in *joinNode,sockaddr_t socketAddrServer){
chord.fingerTable = (Node *) malloc(log(MAXLOCATIONS)*sizeof(Node));
chord.node.socketAddr = socketAddrServer; chord.node.socketAddr = socketAddrServer;
// printf("%s",inet_ntoa(chord.node.socketAddr.sin_addr)); // printf("%s",inet_ntoa(chord.node.socketAddr.sin_addr));
chord.node.nodeId = nodeToId(&chord.node.socketAddr); chord.node.nodeId = nodeToId(&chord.node.socketAddr);
...@@ -116,14 +115,15 @@ void initChordStructure(struct sockaddr_in *joinNode,sockaddr_t socketAddrServer ...@@ -116,14 +115,15 @@ void initChordStructure(struct sockaddr_in *joinNode,sockaddr_t socketAddrServer
// Listen for reply // Listen for reply
// update successor // update successor
} }
fixFingers();
printFingerTable();
} }
Node closestPreceedingNode(int id){ Node closestPreceedingNode(int id){
int m= log(MAXLOCATIONS); int m= log(MAXLOCATIONS);
Node* f=chord.fingerTable; Node* f=chord.fingerTable[0];
for (int i = m-1; i >=0; i--) for (int i = m-1; i >=0; i--)
{ {
int nextId = f[m].nodeId; int nextId = f[m].nodeId;
...@@ -176,9 +176,26 @@ Node findSuccessor(int id, bool fixFinger){ ...@@ -176,9 +176,26 @@ Node findSuccessor(int id, bool fixFinger){
// sendUDP(msg,chord.successorIp,chord.successorPort,true,buffer); // sendUDP(msg,chord.successorIp,chord.successorPort,true,buffer);
// } // }
// void fixFingers(){ void fixFingers(){
// chord.fingerTable =
// } for(int i = 0; i<3; i++) {
Node *newNode = (Node *)malloc(sizeof(Node));
getSocketFromIpAndPort("127.0.0.1",1230+i,&newNode->socketAddr);
newNode->nodeId = nodeToId(&newNode->socketAddr);
chord.fingerTable[i] = newNode;
}
}
void printFingerTable() {
printf("Entry\tID\n");
for(int i = 0; i<16; i++) {
int j = pow(2,i);
if(chord.fingerTable[i] == NULL)
continue;
Node curNode = *(chord.fingerTable[i]);
printf("N+%d\t%d\n",j,curNode.nodeId);
}
}
// int main() { // int main() {
// initChordStructure(NULL); // initChordStructure(NULL);
// findSuccessor(123,true); // findSuccessor(123,true);
......
...@@ -16,12 +16,14 @@ typedef struct Chord ...@@ -16,12 +16,14 @@ typedef struct Chord
Node node; Node node;
Node successor; Node successor;
Node predecessor; Node predecessor;
Node *fingerTable; Node *fingerTable[16];
}Chord; }Chord;
Chord chord; Chord chord;
void sendPredecessor(); void sendPredecessor();
void fixFingers();
void printFingerTable();
int keyToId(char * key); int keyToId(char * key);
void initChordStructure(struct sockaddr_in *joinNode, struct sockaddr_in sockAddrServer); void initChordStructure(struct sockaddr_in *joinNode, struct sockaddr_in sockAddrServer);
Node findSuccessor(int id, bool fixFinger); Node findSuccessor(int id, bool fixFinger);
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment