[Distrib] [Fwd: Re: Επιπλέον διευκρινίσεις για την εργασία]

doka at cslab.ece.ntua.gr doka at cslab.ece.ntua.gr
Mon Jan 11 13:28:51 EET 2016


---------------------------- Original Message ----------------------------
Subject: Re:  Επιπλέον διευκρινίσεις για την εργασία
From:    doka at cslab.ece.ntua.gr
Date:    Mon, January 11, 2016 12:07 am
To:      "Orfeas Litos" <orfeas.litos at hotmail.com>
--------------------------------------------------------------------------

Καλησπέρα και καλή χρονιά,

απαντάω in line:

> Καλησπέρα σας,
>
> Έχουμε ορισμένες ερωτήσεις για την εργασία στα Κατανεμημένα.
>
> 1) Το κάθε insert(key,value) δε θα προσθέτει νέο κόμβο (δηλαδή νέα
> διεργασία/process), αλλά θα ενημερώνει τον κατάλληλο κόμβο για την αλλαγή;
> Το αντίστοιχο ισχύει και για τα delete(key);
Ναι, τον insert θα ξεκινάει από τυχαίο κόμβο, ο οποίος θα πρέπει αφού
ελέγξει αν ο ίδιος είναι υπεύθυνος για το συγκεκριμένο key (στην οποία
περίπτωση απλώς θα προσθέσει το key,value σε κάποια δική του δομή, πχ
hashMap) να προωθήσει το μήνυμα στον επόμενό του. Η διαδικασία συνεχίζεται
μέχρι να βρεθεί ο υπεύθυνος κόμβος. Το ίδιο και για το delete.

>
> 2) Ο πρώτος κόμβος που θα είναι υπεύθυνος για τα join/depart επιτρέπεται
> να γνωρίζει ακριβώς ποιοι κόμβοι υπάρχουν, πού βρίσκονται και (κατα
> συνέπεια) για ποια κλειδιά είναι υπεύθυνοι;
Δεν χρειάζεται να γνωρίζει αυτές τις πληροφορίες. Απλώς προωθεί το μήνυμα
join/depart στον κατάλληλο κόμβο (που μπορεί να είναι και ο ίδιος) ώστε να
γίνει η ανακατανομή των κλειδιών και η ενημέρωση successor-predecessor.

>
> 3) Τα inputs του συστήματος μπορεί να είναι μόνο τα εξής 5: insert, query,
> delete, join, depart; Τα τρία πρώτα εξυπηρετούνται πάντα από τυχαίο κόμβο,
> ενώ τα δύο τελευταία μόνο από τον πρώτο;
Μόνο το join πρέπει να ξεκινάει από συγκεκριμένο κόμβο (τον bootstrap
κόμβο). Και είναι λογικό αν το σκεφτείς, ένας κόμβος που θέλει να μπει
στον δακτύλιο πρέπει να ξεκινήσει από κάπου, να γνωρίζει δλδ κάποιον
κόμβο. Το depart δεν χρειάζεται να ξεκινήσει από τον bootstrap κόμβο.
Ξεκινά από τον ίδιο και ενημερώνει ουσιαστικά μόνο τους γείτονές του.

>
> 4) Οι γραμμές που περιλαμβάνονται στο insert.txt (π.χ Smells Like Teen
> Spirit, 9) είναι ζεύγη <key, value> με τη σειρά που δίνονται; (Δηλαδή key
> = Smells Like Teen Spirit, value = 9) Ακόμη, τα IDs των 10 αρχικών κόμβων
> θα είναι SHA1("1"),...,SHA1("10"); Το δεδομένο <Smells Like Teen Spirit,
> 9> θα ανήκει στη θέση SHA1("Smells Like Teen Spirit");
Ναι, τα keys είναι τίτλοι τραγουδιών και τα values ακέραιοι αριθμοί. Τα
ids βγαίνουν ακριβώς όπως περιγράφεις.
>
> Ευχαριστούμε πολύ,
> Ορφέας, Θωμάς, Χρήστος

Αν δεν σας πειράζει θα προωθήσω το mail σας στη λίστα του μαθήματος.

Κατερίνα




More information about the Distrib mailing list