Ιούνιος+2007+(RPC)

Θέµα 2 (20 Βαθμοί)

Εξηγήστε πως µπορεί να προκύψουν __ορφανές κλήσεις RPC__ σε ένα κατανεµηµένο σύστηµα. Εξηγήστε γιατί στην γενικότερη περίπτωση αυτές δεν µπορεί να εντοπιστούν αξιόπιστα από τον εξυπηρετητή. Περιγράψτε τις __δύο τεχνικές αντιµετώπισης__ αυτού του προβλήµατος που επεξηγήθηκαν στο µάθηµα, και δώστε τα σχετικά __πλεονεκτήµατα και µειονεκτήµατα__ τους. Πότε αποτυγχάνουν αυτές οι τεχνικές; Υπάρχει κάποια εναλλακτική λύση για αυτή την περίπτωση; Τι µειονεκτήµατα έχει αυτή;

__Λύση__: Ορφανές κλήσεις RPC μπορεί να προκύψουν σε ένα κατανεμημένο σύστημα όταν για κάποιο λόγο ο client υποστεί βλάβη ή τερματίσει τη λειτουργία του, αφού έχει κάνει την κλήση και πριν στείλει ACK ότι πήρε την απάντηση, ώστε να βγει η αποθηκευμένη απάντηση από την αποθήκη του server. Στη γενικότερη περίπτωση, λόγω ασύγχρονου δικτύου είναι αδύνατον να εντοπιστεί η βλάβη ενός client, αφού δεν μπορούμε να είμαστε σίγουροι αν η καθυστέρηση απόκρισής του οφείλεται σε βλάβη ή αργό δίκτυο ή απώλεια πακέτου. Υπάρχουν δύο τεχνικές επίλυσης του προβλήματος:
 * Η **Εξολόθρευση**, στην οποία το λογισμικό του πελάτη καταγράφει τις αιτήσεις που στέλνει σε σταθερή αποθήκη, και αν ο πελάτης πάθει βλάβη τις ακυρώνει ρητά, όταν επανέλθει.
 * η **Αναβίωση,** στην οποία κάθε αίτηση έχει αριθμό ζωής, την οποία ο πελάτης αποθηκεύει σε σταθερή αποθήκη. Όταν ο πελάτης επανακάμψει από βλάβη αυξάνει τον αριθμό ζωής του και τον στέλνει στους servers ώστε να ακυρώσουν τυχόν κλήσεις RPC που έγιναν στην προηγούμενή του ζωή.

Μειονεκτήματα και των δύο τεχνικών είναι το επιπλέον κόστος σε επικοινωνία και επεξεργασία.Η τεχνική της αναβίωσης έχει το επιπλέον κόστος αποθήκευσης του αριθμού ζωής για κάθε client, αλλά μπορεί να λειτουργήσει αποτελεσματικά, ακόμη και αν υποστεί βλάβη και το λογισμικό του client, εκτός από την εφαρμογή.

Μια άλλη λύση είναι να διατηρεί ο server τις ορφανές κλήσεις/αποτελέσματα προσωρινά με ημερομηνία λήξης. Μετά δηλαδή από συγκεκριμένο χρονικό διάστημα να τις ακυρώνει μονομερώς θεωρώντας τες ορφανές. Η ημερομηνία λήξης πρέπει να ενημερώνεται από τον πελάτη. Μειονεκτήματα αυτής της μεθόδου είναι πως μπορεί, λόγω διαμερισμού του δικτύου ή και απώλειας πακέτων, κάποιες κλήσεις να θεωρηθούν λανθασμένα ορφανές από τον server.

include component="comments" page="Ιούνιος 2007 (RPC)" limit="10"