Informazioni sul servizio
TradottoProgetto e gestisco database distribuiti a colonne larghe su Apache Cassandra e ScyllaDB, e inizio sempre con una cosa: le tue query. Prima di avviare un nodo, mappo tutti i percorsi di lettura e scrittura di cui la tua app ha realmente bisogno, poi costruisco un modello di dati attorno a quegli schemi di accesso. Nello storage orientato alle colonne, la tabella segue la query, quindi denormalizzo deliberatamente, scelgo chiavi di partizione con distribuzione uniforme e seleziono colonne di clustering che portano letture calde in una partizione.
Poi ottimizzo il cluster per gestire il traffico reale. Imposto il fattore di replica e i livelli di coerenza in base al tuo budget per affidabilità e latenza, limito la dimensione della partizione, scelgo la strategia di compattazione per il tuo carico — serie temporali, log eventi o chiave-valore ad alta rotazione. Mantengo le pipeline di scrittura a decine di migliaia di operazioni/sec senza interruzioni durante i flush e la compattazione, e la latenza finale è prevedibile: partizioni ampie, tombstones e shard caldi che catturo precocemente. Su ScyllaDB utilizzo un'architettura shard-per-core ed estraggo significativamente più throughput dallo stesso hardware.
Possiedo anche i compiti che rompono i cluster alle 3 del mattino: programmazione delle riparazioni, sostituzione dei nodi, replica cross-DC, pianificazione della capacità e migrazioni da database relazionali che hanno smesso di scalare. Uscendo — un database che assorbe picchi e cresce aggiungendo nodi.
— Modellazione dei dati a partire dalle query e progettazione delle partizioni
— Replica, coerenza e ottimizzazione della compattazione
— Elevato throughput di scrittura e latenza prevedibile
— Riparazione, sostituzione dei nodi e configurazione multi-DC
Poi ottimizzo il cluster per gestire il traffico reale. Imposto il fattore di replica e i livelli di coerenza in base al tuo budget per affidabilità e latenza, limito la dimensione della partizione, scelgo la strategia di compattazione per il tuo carico — serie temporali, log eventi o chiave-valore ad alta rotazione. Mantengo le pipeline di scrittura a decine di migliaia di operazioni/sec senza interruzioni durante i flush e la compattazione, e la latenza finale è prevedibile: partizioni ampie, tombstones e shard caldi che catturo precocemente. Su ScyllaDB utilizzo un'architettura shard-per-core ed estraggo significativamente più throughput dallo stesso hardware.
Possiedo anche i compiti che rompono i cluster alle 3 del mattino: programmazione delle riparazioni, sostituzione dei nodi, replica cross-DC, pianificazione della capacità e migrazioni da database relazionali che hanno smesso di scalare. Uscendo — un database che assorbe picchi e cresce aggiungendo nodi.
— Modellazione dei dati a partire dalle query e progettazione delle partizioni
— Replica, coerenza e ottimizzazione della compattazione
— Elevato throughput di scrittura e latenza prevedibile
— Riparazione, sostituzione dei nodi e configurazione multi-DC