Δευτέρα 12 Ιανουαρίου 2009

Threads και debugging...

Σήμερα κάναμε όλες τις λειτουργίες των κόμβων να τρέχουν ως Thread. Δηλαδή τις Join Departure GiveFiles (η μέθοδος που στέλνει την αναφορά για κάθε αρχείο του κόμβου σε αυτόν που επιστρέφει η routing) καθώς και την Client που πάντα τρέχει όσο είναι συνδεδεμένος ο κόμβος και περιμένει μηνύματα ώστε να επικοινωνεί με άλλους κόμβους. Τέλος ασχοληθήκαμε με κάποιες βελτιώσεις στο GUI.

Δυστυχώς η μετατροή σε thread είχε ως αποτέλεσμα σε μερικές αποσυνδέσεις κόμβων ο server να μην τις αντιλαμβάνετε όμως όταν κάποιος κόμβος δει ότι είναι πεσμένος ο συγκεκριμένος ενημερώνει το server οπότε και επανέρχεται η συνέπεια.

Από σήμερα θα ασχοληθούμε κυρίως με το debugging έως ότου η εφαρμογή να λειτουργεί χωρίς σφάλματα!


Κυριακή 11 Ιανουαρίου 2009

Αποθήκευση Λογικών Αρχείων σε Clients και Μεταφορά αρχείου

Σήμερα υλοποιήσαμε τον τρόπο με τον οποίο ο κόμβος που επιστρέφεται από τον αλγόριθμο routing να μπορεί να σώσει τα αρχεία που δίνει κάθε κόμβος όταν εισέρχεται (αν είναι αυτός ο κοντινότερος σε κάθε Hash), καθώς και να σβήνονται όταν ο κόμβος πέσει. Αν ένας κόμβος είναι συνδεδεμένος δεν μπορεί να αλλάξει τα αρχεία που δίνει στο σύστημα αλλά θα πρέπει να βγει και να ξαναεισέλθει. Επίσης ασχοληθήκαμε με μηνύματα που ελέγχουν αν ο κόμβος περιέχει το αρχείο ώστε να μπορεί να το στείλει σε αυτόν που το αναζήτησε. Τέλος υλοποιήσαμε και τη σύνδεση του κόμβου που περιέχει το φυσικό αρχείο καθώς και τη μεταφορά του!

Πέμπτη 8 Ιανουαρίου 2009

Routing και δομή FilesSave

Σήμερα ασχοληθήκαμε με τον αλγόριθμο του routing το οποίο επιστρέφει τον κόμβο με το κοντινότερο NodeID σε σχέση με το id που προκύπτει από το Hashing του ονόματος του αρχείου που θα δώσουμε. Ακόμα δημιουργήσαμε τη δομή της αποθήκευσης των αρχείων FilesSave που αποτελείται από το Credential του κόμβου που τον περιέχει και το όνομα του αρχείου. Έτσι κάθε κόμβος μπορεί να αποθηκεύει τα αρχεία που έχουν id το οποίο μέσω του routing θα επιστρέψει αυτόν τον κόμβο.

Τρίτη 6 Ιανουαρίου 2009

Ενημέρωση για πεσμένους κόμβους

Σήμερα βρήκαμε τις περιπτώσεις που πρέπει να ελέγχεται αν ένας κόμβος έχει πέσει και τις ελέγχουμε ώστε να είναι συνεπείς οι κόμβοι στα δεδομένα που κρατούν και να μην προσπαθούν να συνδεθούν με κόμβους που έχουν αποσυνδεθεί. Επίσης ανανεώσαμε το GUI ώστε να ανανεώνεται σε κάθε αλλαγή των πινάκων.

Κυριακή 4 Ιανουαρίου 2009

departureNode και updateNode

Σήμερα φτιάξαμε τις μεθόδους departureNode και updateNode ώστε όταν κάποιος κόμβος πέφτει ή εισέρχεται να ενημερώνει τους κόμβους που έχει στο leafset ώστε να ανανεωθούν οι πίνακες των κόμβων αυτών. Επίσης σε περιπτώσεις αποχώρησης ενημερώνεται ο Server ώστε να μη δίνει πλέον τον κόμβο.

Σάββατο 3 Ιανουαρίου 2009

GUI & Node Failure

Σήμερα προσθέσαμε στο GUI να εμφανίζονται τα routing table, neighborhood set και leaf set, έτσι ώστε να έχουμε μια πιο πλήρη εικόνα για το τι συμβαίνει με τους κόμβους. Επίσης εξετάσαμε και καταγράψαμε τις περιπτώσεις στις οποίες χάνεται κάποιος κόμβος, χωρίς να έχει αποσυνδεθεί σκόπιμα, και σκεφτήκαμε με ποιους τρόπους θα πρέπει να αντιμετωπίσουμε τέτοιου είδους προβλήματα.

Παρασκευή 2 Ιανουαρίου 2009

TestNode & τροποποίηση πινάκων

Προσθέσαμε στον κώδικά μας μία μέθοδο TestNode το οποίο ελέγχει αν ένας κόμβος δουλεύει κανονικά ώστε να ελέγχουμε τον κάθε κόμβο πριν τον χρησιμοποιήσουμε. Επίσης ξεκινήσαμε να δουλεύουμε τις αλλαγές που θα γίνονται στους πίνακες (routing table, neighborhood set, leaf set) των γύρω κόμβων όταν συνδεθεί ένας καινούριος κόμβος στο σύστημα.