Sobes.tech

Τι είναι η συμπίεση Write-Ahead Log (WAL) στο PostgreSQL; Σε ποιες περιπτώσεις η ενεργοποίηση της συμπίεσης αρχείων WAL μειώνει το φορτίο στο υποσύστημα δίσκου και το δίκτυο, και σε ποιες περιπτώσεις οδηγεί σε υποβάθμιση της απόδοσης λόγω υπερβολικής χρήσης πυρήνων CPU;

6

Πώς δομείται ο μηχανισμός της Πολιτικής του Event Loop στο asyncio; Σε ποια σενάρια χρειάζεται ένας backend προγραμματιστής να αλλάξει επιτακτικά την προεπιλεγμένη πολιτική του βρόχου γεγονότων σε μια προσαρμοσμένη, για παράδειγμα χρησιμοποιώντας uvloop βασισμένο σε libuv, και πώς επιτυγχάνεται η αύξηση της απόδοσης;

6

Τι είναι ένας δείκτης έκφρασης (Expression Index / Functional Index) στο PostgreSQL; Ποια είναι τα επιπλέον φορτία στις λειτουργίες εγγραφής (INSERT/UPDATE) που συνεπάγεται και γιατί ο σχεδιαστής μπορεί να αρνηθεί τη χρήση του αν οι τύποι δεδομένων στην έκφραση του ερωτήματος δεν ταιριάζουν;

4

Τι είναι η βαθιά αντιγραφή αντικειμένων (copy.deepcopy) στην Python από την άποψη της απόδοσης; Πώς αυτός ο μηχανισμός παρακάμπτει τους κυκλικούς αναφορές, γιατί λειτουργεί κρίσιμα αργά σε μεγάλα γραφήματα αντικειμένων, και ποια εναλλακτικά μοτίβα τον αντικαθιστούν σε συστήματα υψηλού φορτίου;

4

Πώς λειτουργεί το μοτίβο Sidecar στο Kubernetes, για παράδειγμα με Istio ή Envoy; Πώς αυτό το μοτίβο επιτρέπει την ανάθεση της κρυπτογράφησης της κυκλοφορίας (mTLS), της ανίχνευσης αιτημάτων και των επαναπροσπαθειών από την εφαρμογή;

4

Τι είναι η Διείσδυση της Cache, η Καταιγίδα Cache και η Προθέρμανση Cache; Πώς να σχεδιάσετε ένα επίπεδο cache για ένα ηλεκτρονικό κατάστημα έτσι ώστε κατά τη διάρκεια μιας νυχτερινής πώλησης, όταν εκατομμύρια χρήστες ζητούν ταυτόχρονα νέα προϊόντα, η βάση δεδομένων να μην αποτύχει λόγω αποτυχιών cache;

4

Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα των αρχιτεκτονικών προσεγγίσεων Push και Pull στον σχεδιασμό συστημάτων ροής δεδομένων όπως το RabbitMQ και το Kafka; Πώς επηρεάζουν αυτές οι προσεγγίσεις τη χρήση μνήμης από την πλευρά του broker και το ζήτημα του backpressure των καταναλωτών;

3

Περιγράψτε το πρωτόκολλο δύο φάσεων (2PC) για κατανεμημένες συναλλαγές που περιλαμβάνουν δύο ανεξάρτητα σχεσιακά βάσεις δεδομένων. Τι συμβαίνει στο σύστημα αν ο συντονιστής της συναλλαγής καταρρεύσει ακριβώς μεταξύ της φάσης ψηφοφορίας (Prepare) και της φάσης δεσμευσης (Commit);

3

Περιγράψτε τη λειτουργία της ενσωματωμένης συνάρτησης compile(). Πώς μετατρέπουμε μια δυναμικά παραγόμενη συμβολοσειρά κώδικα Python σε ένα αντικείμενο κώδικα, το εκτελούμε με ασφάλεια σε ένα απομονωμένο πλαίσιο χρησιμοποιώντας exec/eval και αποτρέπουμε τρωτά σημεία απομακρυσμένης εκτέλεσης κώδικα (RCE);

3

Περιγράψτε τις ανταλλαγές μεταξύ των πρωτοκόλλων WebSockets, SSE (Server-Sent Events) και gRPC Streaming. Ποιο πρωτόκολλο θα επιλέγατε για: α) ζωντανή συνομιλία, β) μονοκατευθυντικό ροή τιμών μετοχών, γ) επικοινωνία μεταξύ υπηρεσιών σε αρχιτεκτονική μικροϋπηρεσιών, και γιατί;

2

Πώς κατασκευάζονται οι επεκτάσεις C/C++ για Python (C Extensions) κάτω από την κουκούλα; Γιατί οι επεκτάσεις που γράφονται με το παραδοσιακό API C της Python επιβραδύνουν τη μετάβαση σε Python χωρίς GIL, και πώς λύνουν αυτό το πρόβλημα εναλλακτικές όπως το HPy ή το Cython;

2

Γιατί η προεπιλεγμένη λειτουργία os.cpu_count() της Python συχνά επιστρέφει τον συνολικό αριθμό πυρήνων του φυσικού διακομιστή μέσα σε ένα Docker κοντέινερ που τρέχει σε ένα pod Kubernetes με όριο CPU: 2; Ποια κρίσιμα προβλήματα προκαλεί αυτό με το μέγεθος του pool των νημάτων στο Gunicorn ή το Celery, και πώς να το διορθώσετε;

2

Πώς λειτουργεί ο αλγόριθμος της Συνεπής Κατακερματισμού; Γιατί είναι απαραίτητος στον σχεδιασμό ενός κατανεμημένου cluster cache, για παράδειγμα με 20 Redis servers, και πώς ελαχιστοποιεί τον αριθμό των κλειδιών που πρέπει να μετακινηθούν όταν προσθέτουμε ή αφαιρούμε έναν κόμβο;

1

Πώς δημιουργούν τα Linux Cgroups (Control Groups) και Namespaces απομόνωση μέσα σε ένα Docker container; Τι συμβαίνει σε μια διαδικασία Python όταν υπερβαίνει το resource.limits.cpu στο Kubernetes, και γιατί η υπέρβαση του limits.memory οδηγεί σε OOMKilled, ενώ η υπέρβαση του CPU μόνο προκαλεί throttling;

1