Golang
Τι είναι το etcd και γιατί επιλέχθηκε ως αποθήκευση για το Kubernetes; Ποιες ιδιότητες διαθέτει;
Μπορεί το Go να εντοπίσει deadlock; Πώς ανιχνεύει το runtime του Go το deadlock;
Για τι ευθύνονται τα StatefulSets και πότε χρησιμοποιούνται;
Κατά την επανα-κατακερματισμό, το κατακερματισμό παραμένει ίδιο ή υπολογίζεται ένας νέος για το κλειδί;
Τι είναι ο ανταγωνισμός και ο παραλληλισμός; Πώς διαφέρουν; Μπορούν να συνυπάρχουν;
Πόση μνήμη καταλαμβάνει ο τύπος bool;
Μίλησε για τα slices στο Go.
Τι λύνει το Repeatable Read και τι όχι; (ανωμαλία Repeatable Read)
Πώς λειτουργεί το GOMAXPROCS και για ποιο λόγο χρειάζεται το P (επεξεργαστής) στο μοντέλο GMP;
/* Υπάρχουν δύο διακομιστές PostgreSQL: * PROD - διακομιστής OLTP, * STATS - διακομιστής για μακρές αναλυτικές ερωτήσεις. Στον τρέχοντα διακομιστή, στη βάση δεδομένων prod, υπάρχει ένας μεγάλος πίνακας (10Tb) με την ακόλουθη δομή: CREATE TABLE profiles( id SERIAL, data JSONB ) Στον πίνακα μπορεί να υπάρχουν "τρύπες", δηλαδή ορισμένα `id` μπορεί να λείπουν. Πρέπει να γράψετε ένα πρόγραμμα για να αντιγράψετε τον πίνακα profiles από το PROD στο STATS. Υποθέτουμε ότι θα χρησιμοποιηθούν οι ακόλουθες διεπαφές για εργασία με βάσεις δεδομένων: type Row []interface{} type Database interface { // η υλοποίηση της διεπαφής Database μπορεί να επανασυνδέσει // η κλήση SaveRows είναι idempotent io.Closer GetMaxID(ctx context.Context) (uint64, error) LoadRows(ctx context.Context, minID, maxID uint64) ([]Row, error) // [minID, maxID] SaveRows(ctx context.Context, rows []Row) error } func Connect(ctx context.Context, dbname string) (Database, error) // CopyTable // Αν full=false, συνεχίστε τη μεταφορά δεδομένων από το σημείο του προηγούμενου σφάλματος // Αν full=true, μεταφέρετε όλα τα δεδομένα func CopyTable(fromName string, toName string, full bool) error { // ... ο κώδικάς σας } Αν δοθεί η επιλογή `full=false`, το πρόγραμμα πρέπει να συνεχίσει τη μεταφορά δεδομένων από το σημείο του προηγούμενου σφάλματος. Αν `full=true`, πρέπει να μεταφέρει όλα τα δεδομένα. **Βασικό επίπεδο**: - σειριακή μεταφορά δεδομένων σε ένα ρεύμα - ανάκτηση μετά από σφάλμα (επιλογή `full=false`) Πρόσθετες πληροφορίες: - αν χρειάζεται, μπορείτε να επεκτείνετε τη διεπαφή προσθέτοντας δικές σας μεθόδους - αν χρειάζεται, μπορείτε να χρησιμοποιήσετε απευθείας το πακέτο **database/sql**
Τι κάνατε με την καθυστέρηση του καταναλωτή κατά την επαναρύθμιση ή διακοπή της υπηρεσίας;
Τι συμβαίνει σε περίπτωση συγκρούσεων κατακερματισμού σε έναν χάρτη;
Έχετε εξετάσει τις μεγάλες αποθήκες, και οι dark stores ήταν επίσης μέρος της ανάλυσής σας;
Σε πόσες στιγμές/δοχεία λειτουργούσε η υπηρεσία;
func maxPlaces(arr []int) int { maxDistance := 0 prev, first := -1, -1 for i := 0; i < len(arr); i++ { if arr[i] == 1 { if first == -1 { first = i maxDistance = max(maxDistance, i) } else { maxDistance = max(maxDistance, (i - prev) / 2) } prev = i } } maxDistance = max(maxDistance, len(arr) - 1 - prev) return maxDistance }
Ποια είναι η διαφορά μεταξύ JSON και JSONB στο PostgreSQL;
Γιατί χρειάζονται πραγματικά οι δείκτες;
Τι συμβαίνει κατά την καταγραφή μιας τιμής σε ένα map με το κλειδί 123; Πώς φτάνει η τιμή στην αποθήκευση;
Έχεις ένα μεγάλο αρχείο με εκατομμύρια URL εικόνων. Πρέπει να τα κατεβάσεις όλα και να τα αποθηκεύσεις στον δίσκο. Πώς θα οργανώσεις τον κώδικα ώστε η λήψη να είναι γρήγορη, ο υπολογιστής να μην κολλάει, το πρόγραμμα να μην επανεκκινεί και η εξωτερική υπηρεσία να μην μπλοκάρεται λόγω υπερβολικών αιτημάτων;
Τι κάνεις στην [εταιρεία]; Σε ποιο έργο εργάζεσαι;