[Distrib] Απορία για το linearizability consistency με chain replication

Katerina Doka katerina at cslab.ece.ntua.gr
Sun Mar 21 21:48:10 EET 2021


H σωστή απάντηση πρέπει να είναι 1234 - θυμήσου ότι για να "επιστρέψει" το
write (δλδ να θεωρηθεί ότι έγινε) πρέπει να περάσει από όλους τους κόμβους,
άρα κι από τον τελευταίο. Άρα παρόλο που η τιμή άλλαξε στον Α το t-ε, αυτό
δε σημαίνει ότι το write ολοκληρώθηκε την t-ε, αλλά τη χρονική στιγμή που
άλλαξε η τιμή και στον κόμβο Ε.

Στις Παρ, 19 Μαρ 2021 στις 9:09 μ.μ., ο/η Dimitris Oikonomou <
dimitris.oik96 at gmail.com> έγραψε:

> Καλησπέρα,
>
> Έχω μια σεχιτική ερώτηση. Ας υποθέσουμε ότι έχουμε replication factor k=5
> και έστω ότι για ένα key-value pair (έστω key=test, value=1234) οι κομβοι
> που περιέχουν το δοθεν pair είναι οι Α,Β,Γ,Δ,Ε με "κύριο" κόμβο τον Α
> (δηλαδή ο Α είναι ο κόμβος που θα έχει το key ακόμη και χωρίς replication).
> Ας υποθέσουμε ότι κάνουμε query το key:test από τον κόμβο Γ τη χρονική
> στιγμή t και επίσης ας υποθέσουμε ότι αλλάζουμε τη τιμή του "test" σε
> "5678" απευθείας από τον κόμβο Α τη χρονική στιγμη t-ε, όπου ε αρκετά
> μικρός χρόνος (πχ ε=0.00001 sec). Τότε με την απάντησή σας το quey θα
> απαντήσει την τιμή "1234" που ειναι λάθος, αφού θα έχει ελέγξει τους
> κόμβους Γ,Δ,Ε που δεν θα έχουν προλάβει να αλλάξουν οι τιμές των replicas.
> Άρα λογικά θα πρέπει να περάσει όλη την αλυσίδα, σωστά? Ή μήπως χάνω κάτι?
>
> Στις Παρ, 19 Μαρ 2021 στις 10:44 π.μ., ο/η Katerina Doka <
> katerina at cslab.ece.ntua.gr> έγραψε:
>
>> Το ιδανικό θα ήταν να απαντάει απευθείας, αν τύχει να φτάσει σε αυτόν το
>> query χωρίς να έχει περάσει από τον primary, για να γλιτώσεις το overhead
>> σε μηνύματα. Αυτό προϋποθέτει βέβαια να γνωρίζει ο κόμβος ότι είναι ο
>> τελευταίος της αλυσίδας για το συγκεκριμένο key, που από την άλλη πλευρά
>> έχει ένα extra διαχειριστικό κόστος.
>>
>> Στις Παρ, 19 Μαρ 2021 στις 10:12 π.μ., ο/η Ευσταθία Σταθά <
>> fay.statha at gmail.com> έγραψε:
>>
>>> Καθώς μελετούσα τα αποτελέσματα από τα πειράματα και έγραφα την αναφορά,
>>> μου προέκυψε μια απορία για το linearizability consistency με chain
>>> replication. Συγκεκριμένα, τόσο στο μάθημα όσο και στην εκφώνηση έγινε
>>> σαφές πως ένα read γίνεται πάντα από τον τελευταίο RM στην αλυσίδα. Ωστόσο,
>>> εμείς υλοποιήσαμε με τρόπο τέτοιο ώστε το αίτημα να ικανοποιείται μόνο
>>> φτάνοντας σε αυτόν έπειτα από "διάσχιση" όλης της αλυσίδας. Αναρωτιέμαι αν
>>> αυτή η προσέγγιση είναι η σωστή ή αν θα έπρεπε να απαντάει ο τελευταίος
>>> ακόμα κι αν το αίτημα φτάσει απευθείας σε αυτόν πριν περάσει από
>>> οποιονδήποτε άλλο κόμβο. Εμείς π.χ. σε αυτή την περίπτωση θα το
>>> δρομολογήσουμε σε όλο το Chord εως ότου φτάσει στον υπεύθυνο κόμβο για το
>>> κλειδί, ο οποίος και θα το δρομολογήσει στον τελευταίο στην αλυσίδα.
>>>
>>> Ως εκ τούτου, ήθελα να σας ρωτήσω σχετικά με το ποια από τις δύο
>>> προσεγγίσεις είναι η σωστή, καθώς έχω μπερδευτεί λίγο.
>>>
>>> --
>>> Με εκτίμηση,
>>> Ευσταθία Σταθά
>>> Φοιτήτρια ΗΜΜΥ ΕΜΠ
>>> *Α.Μ.* 03116190
>>> *Τηλέφωνο* +306978202159
>>>
>>>
>>> _______________________________________________
>>> Distrib mailing list
>>> Distrib at lists.cslab.ece.ntua.gr
>>> http://lists.cslab.ece.ntua.gr/mailman/listinfo/distrib
>>>
>> _______________________________________________
>> Distrib mailing list
>> Distrib at lists.cslab.ece.ntua.gr
>> http://lists.cslab.ece.ntua.gr/mailman/listinfo/distrib
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cslab.ece.ntua.gr/pipermail/distrib/attachments/20210321/e5e86cee/attachment.htm>


More information about the Distrib mailing list