Sobes.tech

Η χρήση του ScyllaDB πριν από τον παραγωγό είναι ένα antipattern. Πώς οργανώνεται σωστά η deduplicação;

Senior
153

Γιατί πρέπει να αποθηκεύουμε τα ακατέργαστα δεδομένα στην αποθήκευση S3; Είναι σωστό να χρησιμοποιούμε TTL 5 λεπτών στο Redis, ή είναι καλύτερο να τα αποθηκεύουμε περισσότερο — 24 ώρες, και να χρησιμοποιούμε το ScyllaDB ως πηγή ελέγχου δεδομένων;

Senior
142

Ας υποθέσουμε ότι είμαστε ένα μεγάλο δίκτυο διαφήμισης. Τοποθετούμε banners σε συνεργατικές ιστοσελίδες σε όλο τον κόσμο. Πρέπει να σχεδιάσουμε ένα σύστημα συλλογής και επεξεργασίας γεγονότων σε πραγματικό χρόνο. Αυτά τα δεδομένα είναι κρίσιμα για δύο σκοπούς: Χρέωση: Απομείωση χρημάτων από διαφημιστές για κλικ. Ανάλυση: Εμφάνιση της τρέχουσας απόδοσης των καμπανιών (CTR, εμφανίσεις) στον πίνακα ελέγχου. Δεδομένα εισόδου (για τον υπολογισμό φόρτου) Πρέπει να εκτιμήσετε μόνοι σας τις απαιτούμενες δυνατότητες (RPS, κυκλοφορία, αποθήκευση), βασιζόμενοι στα ακόλουθα metrics: Δίκτυο συνεργατών: 500.000 ενεργές ιστοσελίδες. Κυκλοφορία: Μέσο όρο, κάθε ιστοσελίδα λαμβάνει 2 προβολές σελίδας ανά δευτερόλεπτο. Μπλοκ διαφημίσεων: Σε κάθε σελίδα εμφανίζονται ταυτόχρονα 3 banners. Μετατροπή: Ο μέσος CTR (Click-Through Rate) είναι 1%. Ανωμαλία: Η αιχμή φόρτου (βραδινές ώρες) είναι 4 φορές μεγαλύτερη από το μέσο όρο. Μέγεθος γεγονότος: Το αντικείμενο γεγονότος (ID banner, ID ιστοσελίδας, UserID, Timestamp, τύπος γεγονότος) ζυγίζει περίπου 500 bytes. Τεχνικές απαιτήσεις Near Real-Time: Τα δεδομένα στην αναλυτική διεπαφή πρέπει να εμφανίζονται με καθυστέρηση όχι μεγαλύτερη από 10 δευτερόλεπτα. Αξιοπιστία: Η απώλεια κλικ δεν είναι αποδεκτή (αυτό σημαίνει άμεση απώλεια χρημάτων). Η απώλεια εμφανίσεων (impressions) είναι αποδεκτή μέχρι 0,01%. Κλιμάκωση: Το σύστημα πρέπει να μπορεί να επεκταθεί εύκολα με την αύξηση του αριθμού των πλατφορμών.

Senior
139