
il mio nome è letto rialzato, parliamo di conservazione
scusa è stato un singolo su quanto sia grande
questo è un lavoro che stiamo facendo
negli ultimi quasi tre anni a un
ovvio era in quasi così nel caso lo sei
non dalla Danimarca, abbiamo un ufficio uber
in Davos Anubha è come una sorta di si tu
conosci un’azienda globale dove facciamo giri
in tutto il mondo e l’ingegneria
anche l’organizzazione è nostra
distribuito in tutto il mondo, così abbiamo
uffici e in Danimarca abbiamo uffici
in Bulgaria e avanzato di posti in
noi a me e per me, così ho lavorato
lì per circa tre anni principalmente su
archiviazione prima che ho lavorato su un
un sacco di altre società noi e noi siamo
per lo più su VMware in realtà ha fatto ciò che era
chiamato Centro virtuale ma era il
piattaforma di gestione per la creazione di ESX
server in un grande data center così
è in qualche modo simile a quello che noi
finito per fare qui uber di gestire il nostro
enorme flotta di sistemi di stoccaggio e, se del caso
di te ricordi qual è il tuo sito web
è un grazioso massone Mason lasciami solo
sorta di preparare il terreno per questo
sistema di archiviazione così una volta un po ‘
su come funziona goober, presumo che tu abbia scelto
di nessuno con il diritto si installa un’applicazione
sul telefono si richiede il diritto e
così avanti così in cima alla nostra pila di
Ovviamente abbiamo l’app per cellulare e
che fondamentalmente parla di uno strato che chiamiamo
il mercato quindi è qui che siamo
abbinare piloti con i conducenti
sistema di mercato tiene traccia di tutti
viaggi attivi che stanno accadendo in qualsiasi
dato il tempo in modo da monitorare il GPS solido
coordinate coincide con trova il più vicino
auto tenere traccia del percorso e poi così
avanti e poi quando il conducente fa clic su n
viaggio quindi ibiza genera un plop JSON
con tutte le tracce GPS sai chi
Sarebbe arrivato Ida
era una ricerca e ogni tipo di
informazioni interessanti ci sono
venti quaranta campi o qualcosa del genere
quello e che i gay praticamente vengono messi
nella parte posteriore del sistema e il
la parte posteriore del sistema deve farti
sapere mandare una email si ritirerà come addebito
alla fine la carta di credito deve essere inserita
un po ‘di soldi nella banca del guidatore
conti e così via fa molto
frode e poi quel tipo di cose tutte
quei dati tutti quei racconti di viaggio tutti
quelle entrate ovviamente devono essere
memorizzato in una sorta di sistema di archiviazione
e questo è ciò che chiamiamo operativo
archiviazione questa è la spada che
fondamentalmente spinge il tutto ha tutto
le definizioni della città o l’utente
tiene conto di tutti i viaggi che sono stati
fatto e così via ed è quello che sono
andando a parlare di oggi abbiamo anche a
magazzino dove tutto entra
una sorta di grande tipo di Hadoop HDFS
dove puoi fare qualsiasi tipo di domanda
questa non è la parte che sto per fare
parlare di consol sul pad operativo
e la cosa fondamentale della parte operativa
è che questo è in realtà parte del
business online giusto quando sei in
l’app e richiede come voglio
vedere le mie cronologie web passate che voglio vedere
le mie ricevute voglio cercare il mio account
Voglio cambiare il mio numero di telefono e
quel tipo di cose è ciò che è dentro
la memoria operativa ora come la maggior parte
le startup inizi in modo semplice e semplice
quindi non molto tempo fa in realtà due anni
fa tutto era in un singolo Postgres
database praticamente e ovviamente noi
aveva una sorta di scala e comprato un
grande macchina e aveva un sacco di prese in giro Asus
quelli tagliavano le cose ma era una specie di
chiaro questo era all’inizio del 2014 era totale
chiaro che questo non funzionerà
per sempre, probabilmente non sta andando
lavorare con Halloween se non lo facciamo
nulla su questo problema di ridimensionamento
il nostro deposito entro il 2 gennaio
mille Halloween 2014 il nuovo libro
fondamentalmente smetterà di funzionare così è
abbastanza chiaro ora che in realtà
siamo riusciti a risolvere questo problema
ancora qui ovviamente ma ce n’era uno
dei canali che avevamo come cosa
fare
e proprio come sai quando puoi
guardando da solo all’interno di dove eravamo
è abbastanza facile vedere che lo sai
questo era sicuramente qualcosa di cui abbiamo bisogno
fare circa gennaio 2014 è fondamentalmente
dove quell’era era e in quel momento noi
in realtà non ne avevano molti
viaggi oggi facciamo quasi 50 volte di più
viaggi per incontrare in quel sito e questo è
solo due anni e mezzo fa cose così
stanno andando veramente molto velocemente e da allora
siamo passati al sistema di archiviazione
andando a parlare di noi in realtà siamo stati
in grado di adattarsi a questo tipo di massa
crescita abbiamo appena fatto il nostro viaggio di due miliardi
a giugno di quest’anno era una specie di maggiore
pietra miliare ora facciamo proprio così
tipo di riferimento straniero circa 5
milioni di viaggi a settimana che fondamentalmente
significa che ogni secondo c’è 60
persone che escono da un uber attraverso il
mondo quindi è un grande abbastanza se tu
segui se hai paragonato a Twitter di
Certo, sono pochissimi ma questo è
in realtà persone reali che si muovono dentro
il mondo reale ora quando devi
affrontare questo problema a destra quindi abbiamo
questo database di ricerca post che hai
milioni di righe di codice che
fondamentalmente accedere a tutti questi tavoli che avevamo
centinaia di tavoli più per tenere traccia di
questo intero sistema quindi come fai a
vai ad attaccare che non puoi semplicemente
dillo bene tra sei mesi
riscrivi l’ intero sistema e la correzione sarà
bene quindi bisogna sorta di figura fuori
dove attaccarlo così ne abbiamo fatto un po ‘
analisi dei dati che abbiamo avuto nel post
database delle ricerche e non troppo sorprendente
scopre il viaggio in una sorta di grande cosa
giusto questo è fondamentalmente ciò che facciamo
un rotolo di viaggi così il settanta per cento di
i dati erano più o meno in viaggio
Database di Postgres quindi abbiamo deciso di farlo
affrontare questo fronte e dire bene questo
è il primo problema che sta per attaccare
di halle e se riusciamo a fare dei viaggi
ci occuperemo dell’archivio delle ricerche post
buona forma, si scopre che lo era
non solo scala e latenza e quelli
tipo di cose di un problema era
in realtà anche quello che apporta modifiche a a
si è rivelato un grande database relazionale
un po ‘complicato a volte quando
le persone avevano bisogno di un nuovo indice
Diciamo che hai bisogno di un nuovo indice e a
viaggio tabella l’intero database Postgres
si fermerà e poi tutto si fermerà
l’ intero sistema quindi volevamo anche
avere un sistema che gli sviluppatori molto molto
rapidamente potrebbe apportare modifiche ai dati
non ce l’ha e potrebbero farlo
online senza spegnere il sistema
sai che questo è un po ‘come lo sai
il sistema stesso è una specie di nave che ha
lasciato il porto giusto non puoi fermarlo
deve andare avanti non si può mai girare
fuori così tutto ciò che facciamo al sistema
deve essere fatto online in modo molto semplice
che è una sorta di mondo vogliamo ottenere
a quel punto e il mondo siamo
ora dove usiamo ancora Postgres e il mio
sequel e le nostre tecnologie di database per
varie cose ma ma una specie di principale
parte è il sistema di schemi il
il mercato è in realtà gestito per lo più
su Cassandra e quel tipo di cose così
c’è una specie di diverso
tecnologie in gioco il sistema che abbiamo
poi finì per costruire ora due e un
anni e mezzo più tardi mi sono venuti in mente è
è un sistema abbastanza sostanziale che vorrei
dì che non si tratta solo di immagazzinare viaggi
memorizzare un sacco di diversi database per
molti dei nostri servizi è installato
attraverso più data center attraverso il
mondo c’è un’enorme quantità di cellule
servizio e infrastruttura auto-guarigione
e in realtà sto andando a spendere un po ‘
un po ‘ di tempo per parlare di sorta di
aspetti operativi della gestione di un enorme
sistema che attraversa migliaia e
migliaia di host quindi è ancora una volta di
pensando di installare un singolo
database è facile giusto sai una volta che si
voglio avere 300 database in tutto
migliaia di host che diventa
molto interessante quindi una sorta di riassunto rapido
dello stato in cui siamo oggi
circa l’ottanta per cento dei dati
in particolare account utente utente e
i viaggi memorizzati in questo sistema sono andati
da questo singolo viaggio, datastore che noi
effettivamente mirato indietro nel 2014 a più
di 300 negozi di dati e questo è Barry
pensa a questi come a tabelle separate
istanze di database separati se tu
uber è molto micro
architettura orientata al servizio così
fondamentalmente i servizi possono ottenere il loro
stoccaggio e aggiungere nei giorni in cui noi
configurare i primi 48 cluster di macchine su
corri viaggi sai che pensavamo che fosse
enorme che abbiamo rivisto una sorta di nostro
idea di ciò che è enorme ma è qualcosa
quello che scala e n cresce e di nuovo
se hai guardato il grafico fondamentalmente
raddoppiato ogni sei mesi giusto così cose
solo una sorta di bambini in fretta che possono prendere
un ok più grande quindi tuffiamoci in un
un po ‘su come lo schema di Ellis
è stato progettato e funziona e come
tutti i sistemi quando si avvia la costruzione
nel tuo sistema hai una specie di sguardo
come fa a farti sapere cosa?
tipo di funzionalità dovrebbe avere quello che dovrebbe
Sono disponibile ad essere e così via
cosa interessante come sai se tu
guarda tutti questi requisiti è
sempre un compromesso ma non puoi
dire che voglio l’API perfetto che volevo
scala un po ‘senza limiti
deve essere super efficiente deve costare
niente e così via quindi è sempre in ordine
di un trade-off e in particolare con
sistema dolente questo è sicuramente un
il trade-off non puoi essere pieno
coerenza e piena disponibilità e
questo tipo di cose è questo per quello
ad esempio il teorema del cappuccio ci dice così
ci deve essere una sorta di compromesso
e devi davvero capire
di quale modello di archiviazione funziona davvero
per il tuo problema e poi la parte finale
è una specie di momento per il mercato al
tempo in cui abbiamo iniziato a fare ciò che sapevamo
avevamo sei mesi quindi qualsiasi cosa decidessimo
per farlo doveva essere fatto entro le sei
mesi così non lo sei lo sai che non lo sei
andando a reinventare il mondo o spendere
tre specie di prototipazione di un’idea
in realtà vuoi avere qualcosa
piuttosto semplice perché stai andando a
eseguire questo in produzione deve funzionare così
lasciatemi passare rapidamente in qualche modo
i requisiti di base che abbiamo avuto quando abbiamo
ha deciso di progettare il sistema come prima parte
era in questi indici indici era super
importante come tutto il codice che era
gruppo in esecuzione di noi scritto per lavorare
contro il database di Postgres e loro
sono abituati ad avere indici e c’era
molte domande come la conosci l’una
che dovrei avere il giusto dove
stai guardando tutti i viaggi
per utente particolare in un qualche tipo di tempo
intervallo il codice qui è stato scritto nella maggior parte
del codice è stato scritto in Python usando
alchimia segreta direttamente dentro
il database di Postgres quindi a volte noi
erano in realtà in buona forma perché
la gente non ha scritto dichiarazioni sequel
di per sé è stato modellato usando
sequel query riduce le classi e così via
avanti così possiamo essere abbastanza facili se
abbiamo avuto l’ astrazione giusta sorta di
cambia queste classi all’interno dell’esistente
codice e poi sicuramente chiamerò
il sistema di allarme schema il prossimo
il requisito era sull’operazione di pipistrelli quindi se
se pensi a come sei uber
funziona bene è che le persone fanno un viaggio a
il viaggio arriva nel sistema che devi
costruiscilo devi pagare devi
fai un po ‘di rilevamento delle frodi che devi fare
vari tipi di analisi e poi tu
solo una sorta di siede lì così è molto
molto tipo di calcolo nella parte anteriore di
dati o puoi pensare di pensarlo in qualche modo
come un flusso di dati che si sta muovendo
che devi essere in fase di elaborazione
quindi volevamo anche lo stato del viaggio
una sorta di supporto che modella tutto
questi viaggi sono una specie di gocciolamento in noi
fare un sacco di calcoli su di loro noi
idealmente farlo, lo farei in modo importante
non farti pagare sai due volte per il
stesso viaggio o peggio che ci dimentichiamo di pagare
fuori l’ autista quindi dovevamo avere una specie di
il robusto sistema per l’elaborazione di tutti
questi viaggi e poi si sistemano
dormiente e questo è in realtà molto vero
abbiamo fatto delle analisi dove ordiniamo
di guardare il tasso di accesso due viaggi no
dopo aver preso e ti conosco
può immaginare è una specie di una curva che
un po ‘va così non c’è motivo
un po ‘la gente guarda il viaggio
storie ma si conosce al contrario
facebook dove le persone vanno e guardano tutte
tempo che conosci guardando il pastore di
la storia non è una specie di favorita
passatempo ma così è stato il secondo
requisito e poi l’ultimo come me
menzionato prima che siamo grandi in
microservizi in realtà il sistema di Uber
consiste di più di def
austin microservices la maggior parte di loro sono
abbastanza semplice questa è l’idea con
micro servizi che chiamano in altri
micro servizi per eseguire una sorta di
funzione ma un sacco di loro ovviamente
avere lo stato e quindi fondamentalmente ottenere il loro
possedere un database locale o noi lo chiamiamo dati
memorizzare il proprio archivio dati locale questo
può essere una mia base più tardi, ma può farlo
anche essere un archivio dati supportato da
senza schema se è fondamentalmente giusto
scalabile per meglio si desidera memorizzare
viaggi in scala dati di dati roba simile così
è importante costruire un sistema dove
in qualche modo possiamo supportarlo rapidamente
modello di creazione di nuovi archivi di dati
abbattere archivi di dati quando un micro
servizio muore un solido dismesso e
sostituito da altri e in generale
questa sorta di architettura di micro-servizi
sta rendendo molto agile fare cose
giusto perché possiamo facilmente aggiungere un nuovo
caratteristica possiamo facilmente prendere un nuovo
funzione estrarre una funzione che non lo è
necessario più è stato sostituito da un
migliore attuazione come singolo
singoli micro servizi e come questi micro
il servizio ha il proprio spazio di archiviazione è in ordine
di chiaro sai esattamente quali negozi
appartiene a questo possiamo migrarlo in a
nuovo data store se necessario e poi di
Ovviamente l’ovvio che conosci i dati
una sorta di deve essere memorizzato un disco
da qualche parte e questo è un po ‘ il punto cruciale
del problema della scala perché questi
i dischi non sono davvero molto grandi
forse prendi due terabyte forse un 16g
bianco se sei fortunato e poi in realtà
questa uscita del disco è come questa al giorno d’oggi
nel caso sia così carino
con quelli vecchi ma sai che eravamo
onesti o giorni ovviamente molti SSD
e di quante SS ha davvero bisogno
beh, non ci vuole molto
calcolo per tipo di capire quello
diciamo che hai una scheda SSD con due
terabyte ne infili quattro in un
server e hai un server con a
mordere una sedia se vuoi fermarti a
petabyte che è una sorta di scala noi
stai guardando qui sai uno da dire
per petabyte ne hai bisogno almeno uno e
ventotto macchine e non puoi
l’ho visto solo su una macchina, perché
macchine muore Rex collega i segnali dati va
fuori così quello che normalmente facciamo è in realtà
replica dei dati su due data center
e finiamo per avere quattro copie così
significa che per un petabyte ne occorrono cinque
centinaia di macchine così che sia
quantità di macchina già molto seria
l’infrastruttura di cui hai bisogno e
in realtà è solo un petabyte, quindi questo
è solo una specie di punta dell’iceberg
della scala che alla fine
arriveremo a lui puoi chiedere perché hl5 perché
non usi solo una macchina più grande di
Certo che puoi farlo ma il numero
viene comunque pagato e poi vi parlerò di
un po ‘più tardi facendo quel numero
più grande ha anche un diverso set di
problemi in realtà l’API che abbiamo fatto
e di nuovo hai dei corpi ok
viaggi di viaggi è davvero solo un flusso di
dati in arrivo in tutti questi viaggi
seguire gli eventi della vita reale che sono
accadendo nel mondo reale e il
la cosa bella degli eventi è che lo sono
per definizione, immutabile, sai
è successo questo è quello che è successo e
questo è in realtà il modo in cui vogliamo modellare
i nostri dati all’interno su dove si traccia
i viaggi è che è una specie di flusso di
cambia che noi che monitoriamo così così
modo in cui abbiamo progettato questa API e anche
ispirato ad esempio ad un grande tavolo da
da Google e tutti i luoghi in cui
è una sorta di grande colonna sorta di a
API di stile tabella in cui ti sei dato
fila è possibile memorizzare un numero di colonne
e ogni colonna puoi solo tutti i jason
plop quindi questo è lo schema meno aspetto
hai appena visto un blob JSON casuale che puoi
memorizza tutto ciò che gli sviluppatori possono
cambia che Jason plop in qualsiasi momento quelli
hai rubato qualcos’altro che non hai
per apportare modifiche alla tabella a questo
e poi puoi pensare a un viaggio in arrivo
come le sue informazioni di base su a
viaggio sai che questo è quello di scrivere un autista
ecco il percorso è un’altra colonna
con i punti GPS , quindi il processo Sun.
quello è come se fossero basati su questo
Posso calcolare la fiera poi quasi
affare e fondamentalmente abbiamo visto tutto questo
informazioni quindi ogni riga è una specie di
intero tipo di storia computazionale di
un viaggio particolare e questo è tutto
immutabile quindi abbiamo tutto il tracciato noi
può tornare indietro e dire bene a questo dato
tempo sai che abbiamo calcolato questo valore per
questo campo
ed è molto importante perché questo è
in realtà le transazioni sono una specie di
transazioni commerciali che siamo
monitoraggio se si è familiare
con l’architettura taggata di agnello che
loro sostengono molto questo modello dove
neyo scriverà i dati che vuoi veramente
per mantenere tutti i valori nel proprio database
nel caso in cui tu potessi avere il codice
sovrascrivere accidentalmente i tuoi dati e
allora sei un po ‘in un brutto posto così
questo in realtà sta seguendo questo modello
questo significa anche che questa è un’appendice
solo il data store si intende una volta che si scrive
una cella non puoi sovrascriverla di nuovo
quel valore è lì puoi scrivere un nuovo
valore nella stessa curva nello stesso ruolo
e la stessa colonna ma aspetta un altro
data e ora se si desidera e c’è
un po ‘come seguiamo i cambiamenti nel tempo
si scopre che da una scalabilità
prospettiva questa API lo rende anche molto
molto facile da scalare che è anche bello così
in che modo lo scaliamo effettivamente?
layout dei database che prendiamo
ognuna di queste righe sta usando uuid the
UID ne ho solo uno molto breve qui
fallo montare di lato ma dentro
la pratica è uuid a 128 bit e lo facciamo
modulo 4k su quel valore e diviso
pre iniziato in un numero di colpi e
questi scatti sono poi co-localizzati su un set
di classi di basi di dati e il mio paillettes
grappoli quindi non abbiamo dovuto reinventare
una sorta di grande tecnologia di archiviazione noi
Prendete fondamentalmente il mio solido fondamento
sequel il mio sequel ha il supporto per le basi
replicando in schiavi da un capo all’altro
multiplo anche tra i data center e così via
avanti così stiamo riutilizzando l’ asincrono
replica nel mio sequel stiamo riutilizzando
tutte le capacità sinuose in cui gli indici
e così lontano dal mio sequel e appena ho
questo in alcuni gruppi di grida abbastanza sottili
strato in cima al mio sequel per gridarlo
fuori giocatore come questo e poi possiamo
in realtà vieni a conoscere 4000
grappoli qui se vogliamo come abbiamo sparato
ma iniziamo tipicamente
relativamente pochi gruppi diciamo 8 16
e così
e parlerò un po ‘di
come possiamo effettivamente espandere questo
dinamicamente come andiamo ma il trucco qui
di nuovo è che in realtà è molto molto
traduzione semplice e molto molto semplice
in robustezza e questo è davvero ciò che
stiamo cercando la prossima funzione che è
sorta di unico ed effettivamente difficile da trovare
in molte di queste soluzioni fuori scala
gli indici efficienti e come ho detto
prima questa è la cosa fondamentale che noi
doveva supportare per supportare la migrazione
dal vecchio codice base 22 a questo
e l’idea di dove sono gli indici
cubase di specificare l’indice lo vediamo
qui nel posto giusto chiamato il
Indice cliente qualcuno dice ogni volta che si
scrivi la base della colonna quindi prendi il
campo ID cliente e girato su quello e
quindi stalla una voce basata su quel pino
ID e questo è quello che vedete qui a
lasciato se faccio una cella put ora sto mettendo
una colonna di base a te conosce l’uuid qui
è 100 e se ci permetti di assumere solo noi
avere quattro colpi come mostrato qui se lo fai
100 modulare per le sue cellule shot.0 così
sarà memorizzato sotto diversi colpi
in questo momento c’è un indice definito per
la colonna di base qui e poi sulla
ID cliente prendiamo l’ID cliente e anche
girato su quello e questo significa che finiamo
anche avere una voce di indice sul grafico
e questo è basato sull’ID client e
questo ha un riferimento quindi al reale
cella in una riga reale dove è 100 e se
puoi vedere come funziona che facciamo
di ‘questo è l’ ID 10 del cliente e io
fare un altro viaggio, il mio viaggio si fa semplicemente
casuale i tuoi ID in modo che ottengano
distribuito tra tutti gli scatti ma il mio
l’ ID cliente finisce per essere lo stesso e
da adesso l’indice è andato in frantumi
ID cliente tutte le voci dell’indice finiscono
sullo stesso grafico quindi se ora devo fare
una query per trovare tutti i miei viaggi che conosco
puoi farlo sul char due e ottenere tutto
di questi tuoi ID non devo fare a
interrogazione del distributore su tutto il
cluster
per trovarlo, quindi è molto molto efficiente
indici e in questo caso particolare noi
anche incluso la fiera questo è fondamentalmente
quello che noi chiamiamo il campo normalizzato
a cui posso accedere molto velocemente
il tubo della fiera quindi non ho bisogno di sorta di
torna indietro e poi prendilo o meno
celle originali l’ultima caratteristica è la
possibilità di ordinare i viaggi come
entrano e anche questo è un po ‘
molto cool nel senso che come in
aggiungi solo dati stop che significa
anche tu sei davvero solo un log e tu
puoi pensare a tutti i loro spilli se ordini
loro quando sono messi dentro sono
solo una lunga sequenza di blocco e noi
ha effettivamente un’API che ti permette di
tipo di guardare bene cosa è successo in
esattamente questo intervallo sai come ha fatto il
aspetto del database in questo intervallo di tempo che possiamo
in realtà lo vedo e possiamo usarlo
che se solo avessimo un po ‘di memoria
innesca quel tipo di look nella parte anteriore
del database tutte le volte cosa
successo sapete cosa ha messo Dio ora
e quindi in pratica ottieni solo un
la richiamata indica che qualcuno ha chiamato
inserire una colonna di base per questo ruolo
qualcuno ha inserito la colonna del percorso
per questo ruolo e così via, così possiamo
sorta di coda la parte anteriore del database
tutto il tempo e questo è ciò che usiamo
guidare tutta l’elaborazione back-end di tutti
i float e c’è una semplice API
chiamare per fare fondamentalmente questo lo chiamiamo
partizione di lettura si può pensare
una specie di analogia sarebbe una coda su un
file se non sei unix puoi ordinarlo
coda tutto ciò che entra nel
database e quindi il trigger è
fondamentalmente solo una sorta di guardare ah
c’è una colonna di base che entra nel nostro
esiste già un percorso per questo
fila ah posso calcolare equo e poi esso
calcola equo e inserisce le tariffe nel
database quindi c’è un onore Taylor
è come se ci fosse una base e ce n’è una
giusto posso fare la fatturazione del cliente e noi solo
in qualche modo procedendo così
attraverso tutti questi negozi in questo modo noi
effettivamente trattare il database sia come sorta
della memoria operativa principale ma
anche come una specie di coda di cose
ha bisogno di essere processato e quindi non lo facciamo
finire in questo tipo di dobbiamo archiviare
informazioni due volte
possiamo uscire dalla sincronizzazione dobbiamo fare due
fase commettono peccato su due sistemi diversi
e così via, tutta quella roba è fondamentalmente
non necessario che è anche tradotto in
un sistema semplice e più robusto in modo che
sorta di ordinamento di sistema senza schema del
database di base in poche parole e come te
posso vedere che è una grande API in stile tabella così
se usi qualcosa del genere, io
Immagino che tu sia solo se lavori per goon
ma questo è il modo in cui è
si scopre una specie di API standard
che questa API è applicabile molto
luoghi così abbiamo scritto che era
originariamente progettato per fare i viaggi noi
usalo per un sacco di roba ora gira
fuori è giusto per una lunga permanenza a
molti posti ci sono e soprattutto
siamo nella base in cui siamo un po ‘
tenere traccia degli eventi della vita reale è una specie
di quello che vuoi fare tu non vuoi
sovrascrivere non si vuole che si desidera
tenere un registro di tutto ciò che ha
è successo orizzontale scalabile di
gridando che devi fare in alcuni
modo e tutto e fare una scala ciotola io oh
e la capacità aggiungendo più cluster
così bello parlare un po ‘di
disponibilità e una volta entrati
operazione bianchi faranno clic sul
app e una volta il giusto e in qualche modo
deve lavorare tutto il tempo così come fa
questo sistema è giusto nel caso di
disponibilità e questo è un po ‘di dove
dove la gomma colpisce la strada in alcuni
senso giusto ma che chiunque può scrivere a
sistema o è possibile acquistare qualche tipo di cosa
ma sai non importa che tipo di
prodotto che acquisti con qualcosa che tu
so per il giardino per la cucina
di tutti i tuoi dati ha detto che il
differenza è che sai come tiene
sai una volta che inizi a stressarlo
quando tutto inizia a fallire bene
improvvisamente cade da una scogliera
per le prestazioni sagge o lo fa all’improvviso
inizia a perdere dati e non riesci a ottenerli
iniziato per quattro minuti e così via
questo è chiaramente molto importante per noi
che è qualcosa che possiamo avere
alta sicurezza che sta funzionando tutto
e quando non funziona possiamo ripararlo
molto molto rapidamente che è giusto
super importante sai che non c’è tempo
chiamare chiunque quando succede
quindi figuriamoci un po ‘su
cosa succede in realtà e il
cosa fondamentale è tutto nel mio
database segreti, quindi fondamentalmente dobbiamo
assicurati che questi miei sequel di database
quindi è qui che passiamo molto tempo
è tutto di preoccuparsi di tenerli
bene non vogliamo davvero mantenere
li ma vogliamo fare in modo che
quando succede qualcosa di brutto a loro noi
può recuperare rapidamente perché sono
andando a morire di tanto in tanto, i dischi tagliano
le zappe muoiono in cravatta Rex o ottengono
errata configurazione o persone accidentalmente
spegneteli bene sapete cosa succederebbe se a
lo schiavo muore non è un grosso problema, proprio noi
dovrà ancora avere il maestro noi
ha ancora un secondo schiavo tutto ciò che è
bene, quindi la vita va sugli schiavi, davvero
solo per recuperare nel caso in cui il
maestro co-protagonista quindi cosa succede se il tuo
il padrone muore bene dobbiamo fare una specie di
diritto al database sequel quindi se lì
è un viaggio in arrivo che deve scrivere
per esempio a quello scatto come fai tu
sai cosa facciamo di un Reich e
davvero solo due opzioni bene
possiamo fallire come un dispiacere, sai che non posso
scrivi adesso devi aspettare a
un po ‘e questo è in realtà un va bene
rispondere per alcuni casi giusto perché il
molte delle cose che facciamo sono batch
elaborazione come l’invio di ricevute e
viaggi quindi questo è in realtà qualcosa che
possiamo tranquillamente ritardare senza fare nulla
sai troppo male di un’esperienza utente in
qualche senso non significa che tu
non può andare bene, ma quale è il problema
certo che è il chiamante una volta questo
roba da essere mantenuta e replicarlo
quindi non lo perdiamo mai, quindi abbiamo effettivamente
questo ciò che chiamiamo diritti bufferizzati o
cosa succede se sei abituato a Cassandra
terminologia chiamata mano impedita
beh, abbiamo appena archiviato alcuni pozzi
abbiamo più di un vantaggio abbiamo 16 o
abbiamo forse 128 cluster, quindi possiamo
salvalo in uno di questi cluster
quindi vogliamo solo metterlo da parte e detto
Va bene va bene una volta che mi interessa è
alto è replicato non lo perderà mai
ma non puoi leggerlo adesso, lo farai
essere in grado di leggere più tardi che questo tipo di
la garanzia che otteniamo e loro
tu ragazzo è molto semplice, c’è solo il
metti le celle e dici se vuoi questo
semantica se vuoi davvero davvero alto
la disponibilità è davvero di lunga durata
devi solo dire che è ok per buffarlo
bene ho solo bisogno di ottenere per ottenere
questo pensiero non ho bisogno di leggerlo
subito va bene e lo facciamo quando
i viaggi effettivamente scendono dal
mercato nel sistema e il
La ragione per cui questo funziona è perché tutto
questo processo è esattamente successo da
si innesca correttamente in modo che le persone non ne abbiano bisogno
leggere subito i trigger
non ha bisogno di sapere che questo in realtà
messo da parte in una sorta di questo ostacolato
mano fuori tavolo una volta che viene rimesso
nel posto giusto quando i Maestri
vivi due trigger funziona e tutto
funziona perfettamente, quindi questa è una specie di
bella cosa su una programmazione ASIC
modello ora crescita quello che sai come ho detto
stiamo facendo crescere ogni basilico raddoppiando
ogni sei mesi, quindi cosa succede quando
questi gruppi si riempiono e questo è
anche in un certo senso semplice mostrerò a
un po ‘di foto su come sia semplice
davvero era, ma in linea di principio abbiamo solo
creare una nuova classe sul lato che abbiamo
imposta la mia replica segreta in modo che tutto
questi sei database avranno lo stesso
quantità di dati e quindi ora dobbiamo
configurazioni duplicate e quindi possiamo
fondamentalmente li faccio a pezzi così ora
sono separati con gli stessi dati e
allora configureremo semplicemente il
strati di distribuzione avrò il
le ombre su un lato bene sei metà
dall’altra parte e cancellarli e
quindi fondamentalmente facciamo ciò che chiamiamo
aspetto in modo che possiamo sostanzialmente raddoppiare il
dimensione dell’intero sistema facendo cadere tutti
le classi in qualsiasi punto e questo è
in realtà un’operazione abbastanza veloce, quindi il
la cosa fondamentale qui è davvero quella di gestire tutto
queste mie sequenze mi permettono di immergermi in un
un po ‘su come lo facciamo e come
è veloce in realtà possibile
creato il mio database sequel e questo
in realtà è anche interessante che tu abbia
queste reti direttamente a casa e tu
avere dischi su host
e se si desidera ottenere dati in un host
devi farlo attraverso la rete
e se hai 10 gigabyte da 10 gigabit
nic sul tuo host la quantità di dati che tu
può entrare in un host in un’ora
3,6 terabyte che è in realtà sorta
del massimo in pratica puoi
probabilmente ne riceverai molto meno perché lo sei
usare la tua rete in modo duro e se
un ospite muore, il viaggio dev’essere davvero
restaurato idealmente in meno di 30 minuti
molto più veloce, quindi come si fa a fare
con questo nell’esempio precedente prima di me
era un terabyte in spazio su disco in ciascuno
host perché abbiamo ospitato in un molto
più grande come con centinaia di byte e
così via come si può effettivamente ripristinare
indirizzi sono quelle centinaia qui in è
ci vorrà un’eternità per superare a
rete per ottenere la risposta, naturalmente
è sempre così, ma hai ragione a
sistema di storage è che si deve
roba petizione quindi nel trucco sei tu
non devi pensare al tuo ospite
pensare a dei dati e utilizzati per
pensa all’ospite come a un condotto
per un sacco di blocchi di dati e cosa tu
voler ripristinare non è l’host è il
blocchi di dati e puoi ripristinarli
blocchi di dati in parallelo se diciamo
c’erano 16 blocchi di dati che è tutto
512 gigabyte quindi puoi effettivamente
ripristinali in 30 minuti in parallelo
attraverso molti host così in realtà
non solo per partizionare i dati
attraverso tutti noi anche voi
petizione loro all’interno dei padroni di casa così quando a
l’ospite muore, possiamo solo ripristinarli
pezzi in parallelo in molti sistemi
e quindi in realtà non possiamo davvero
importa quanto l’host del disco ha solo
significa che quando qualcosa muore, noi semplicemente
avere più parallelismo nel
caso abbiamo impostato in modo da lasciare a spostare in
la scala operativa quindi come stai
iniziare a pensare a questo giusto perché
ora un’operazione non riguarda solo a
l’host right è come se tu fossi un hosed
gli occhi devo trovare 16 nuovi host però
Devo iniziare le cose in parallelo 16
cose che non li hanno ordinati
di come da solo e quindi questo posto andare
e parliamo di questo tipo di blocco rosso
e negli occhi sono una cosa del the
sistema di archiviazione è quello
vuoi mantenere il sistema di archiviazione
stesso il più minimale possibile e poi
vuoi avere un sistema laterale che ho
lo chiamò un guscio esterno qualcosa di simile
quello che sa come gestirlo è
una sorta di architettura di servizio micro per
proprio per i servizi di storage
non lo vuoi una specie di
blocco monolitico giusto perché il
sistema operativo, quindi abbiamo una tendenza
per farti sapere che è qualcosa che puoi
aggiornamento molto più veloce e con molto meno
rischio rispetto al tipo di motore di archiviazione co
quindi avere separato questo rende molto
di senso nella pratica e fondamentalmente una volta
operiamo questo diciamo che abbiamo te
conosco qualche migliaio di host che abbiamo
più data center ne abbiamo molti
archivi di dati che vogliamo davvero essere in grado di
Cresci questo sai crescere e crescere e
crescere senza avere più persone per uno
la ragione è che sai che lo è
molto più economico avere meno
le persone che gestiscono sistemi più grandi
il problema più grande è che non puoi
assumere più persone abbastanza velocemente così in alcuni
senti che devi solo aggiustarlo, lo sai
è come se le persone semplicemente non esistessero e
il modo tradizionale di affrontare questo
e questo è in realtà un vero e proprio
screenshot del nostro primo libro di corsa per
facendo una spaccatura così questo lo sai
spaccare le cose è che è molto facile
basta replicare e fare cose dentro
pratica che lo stai facendo sul serio
vita giusta per quei viaggi in corso in questo
sistema e devi fare questo dividere e
se fai qualcosa di male c’è qualcosa
il cattivo accadrà nella vita reale proprio così
c’era un libro a lungo termine con un sacco di
controlli e contrappesi e così via e il
il problema è che una scatola è quella gente
non li leggerò allo stesso modo o loro
dimenticherà qualcosa o il telefono lo farà
ring o dovranno prendere il caffè se
lo leggi alle quattro di sera
il tuo tasso ah, davvero non intendeva quello
Salterò quella parte che conosci così com’è
semplicemente non scalabile facendo questo tipo di
roba così praticamente tutto diventa molto
più difficile con la scala in un certo senso e il
le cose tipiche che sentiamo sempre
come il tubo flessibile non funziona o la bici fallisce e
tutti quei tipi di cose più grandi
il più grande più grosso problema è
dito veramente angosciato
hai un grande sistema su 4000 host
dillo e basta, se non lo fai
tenetene traccia perché alcuni dei
tubo flessibile avrà una versione del modo
alcune versioni avranno alcuni host
su una sorta di mio sequel, quindi aggiornato
alcuni di voi agenti operativi e alcuni
Di loro poi qualcuno ha h in alcuni di
l’host e ha applicato alcuni comandi in
coerentemente con qualche altro posto allora
ce ne sono alcune a metà dell’operazione
pozzi e se non fai qualcosa
finisce per essere il caos completo e
poi in terzo luogo una sorta di ultimo o
separatamente in alcuni sensi che una volta
fatto ma una volta abbiamo fatto il tour di stato del viaggio
eravamo davvero profondamente coinvolti con il
gli sviluppatori che fanno lo stato del viaggio oh
giusto quindi sapevamo che il modello di accesso noi
potrebbe ottimizzare gli indici e così via
ma una volta entrati in scala quando tu
avere centinaia e centinaia di sviluppatori
usando questi archivi dati non lo fai davvero
sapere come stanno i dati in cui stanno salvando
lì non sai come usare il
ambasciate e così via così l’attrezzatura
intorno alla risoluzione dei problemi delle prestazioni
creare nuovi indici e così via
deve essere molto meglio, giusto perché
devono essere in grado di farlo da soli
scala altrimenti non puoi salire a bordo
gli sviluppatori della tua organizzazione a
usa questa roba quindi questo è anche un sito
che spendiamo un sacco di energia sono ma
concentrarsi principalmente su una sorta di operativo
parte su come lavori effettivamente con questo
una sorta di deriva e ce ne sono alcuni
luci famose questa è in realtà una diapositiva
Ho rubato da credo in realtà
guida Microsoft che torna in due
mille dodici hai presentato questi animali domestici
contro l’idea del bestiame questa è una foto di
il coniglio di mia figlia e ha un molto
la vita buona è curata per quello che è
chiamato biscotto e la cosa su questi
cose come quando hai i tuoi animali domestici è
come se ti prendessi cura di loro tutto il tempo anche
quando non sono malati, vai costantemente
e controllali e si scopre che se
sei uno sviluppatore e hai poco
servizio e sai che si va in
lavoro ogni cosa è come sto andando
esegui un dtrace su di esso solo per vedere se lo è
va bene forse forse c’è qualcosa che io
può migliorare ciò che risolve gli sviluppatori
scrivere quello che hai
uno in cui devi entrare in alcuni
Indicare la modalità bestiame in cui le cose
come se avessi molto ragione e ciò che conta
è che ho molto non importa
che so che tutti loro per nome e
se alcuni di loro muoiono ne prenderò un altro
uno perché quello che conta è che io abbia
tutti grandi e stanno vinto la maggior parte dei
per essere sani, naturalmente, quindi e allora
questo significa ok come puoi dire?
se sei in modalità Animali domestici
o nel mondo del bestiame e la morte di
segni ben distinti che si può ordinare di
vedere l’organizzazione in se non sei il
mondo degli animali domestici, quindi lo sviluppatore di alcuni in
la tua organizzazione vai e chiedi a lui
saprebbe tutto del sistema
e se lui non è lì nessuno lo saprebbe
quel tipo di difetto sono tutti i cambiamenti
qualcosa sul blocco nelle macchine
correndo alcuni sai libri di corsa grandi se
sei fortunato a tutti noi, lui solo lo sa
quali comandi eseguire su tutte le cose
nel più eloquente e poi questo è
sicuramente vero è che qualcuno lo sa
come fare questi comandi e lui è
destra immensamente fredda perché è tutto
del mago che conosce tutto l’unix
comandi che risolvono le cose e questo è
come tutte le organizzazioni funzionano così sono carina
certo che sei stato o ci sono due
in una certa misura e questo è dove
deve iniziare quando è piccolo è facile
fare questo genere di cose ma come te
scala si ordina di avere per uscire
questo che vuoi davvero passare a
mondo in cui descrivi quello che vuoi
in realtà non ti importa davvero se
database di archiviazione su un host o il
altro tutto quello che ti interessa è questo
il costo I esiste e ha tre schiavi
e mettilo dove vuoi e questo è
quello che chiamiamo stato d’oro e questo significa
che tutta questa nozione di averli
conosci esperti che conoscono tutto
i comandi è un po ‘come un non-evento
in realtà non voglio nessun esperto tu voglia
tutti i tuoi sviluppatori iniziano a scrivere codice
quello che rende il meglio è meglio e questo
è solo farlo da solo, è come
questo è quello che facciamo così alcuni esempi di
stato d’oro stato d’oro è
Davvero una specie di descrizione di ciò che tu
vuoi in un modo che il sistema stesso possa
rimediare così è un’analogia senza storia
bene se hai un servizio che dici
dire al sistema che ho bisogno di eseguire il loro
servizio ho bisogno di avere cinque istanze
allora il sistema sa che ne hai bisogno di cinque
istanze sapete che l’alternativa è
che entri e dica di distribuire un
istanza sulla macchina X che distribuisce l’istanza
sulla macchina y distribuendo istanze di
macchine conosci il tè o qualcosa del genere
che il dipartimento è se hai specificato
in questo modo ad un sistema allora se uno di
questa macchina scende quindi nel sistema
non ha idea di cosa fare è come bene
la macchina è morta , non lo so
vogliono tre pollici a circa cinque pollici
il tuo statico non ha idea, quindi vuoi
per passare a un’onda modello descrivi cosa
lo fa nel caso in cui qualcosa non funziona
riparate automaticamente se prendete a
guarda questi dal basso
allora puoi vedere che ho appena descritto
resistere alla mia istanza di bisogno X poi il
il sistema dice che ho bisogno di creare un’istanza
va bene ha bisogno di alcuni cluster che quello è
sorta del secondo, quindi eseguo il
grappoli che un cluster deve padroneggiare
database o creare un database master
poi un’altra regola entra a far parte di tutti
i padroni dovrebbero avere schiavi così scriviamo
schiavi e così via se uno schiavo muore a
il calcio di comando ha detto come ah lo schiavo
mancante per questo ne creerò un altro
uno se muore un host, conosci un sacco di
gli schiavi mancheranno da qualche parte il
il sistema può semplicemente entrare e crearlo
potrebbe sembrare un po ‘complicato ma
questo è in realtà un modello abbastanza semplice
che usiamo tutto il tempo che è questo
su come fondamentalmente affrontare questo obiettivo
sistema statale e l’idea è che il
l’operatore non lavora mai direttamente o
qualsiasi cosa lui appena entra e ha cambiato il
modello che descrive ciò che vuole questo è
una sorta di stato obiettivo in alto qui
con la freccia verde e noi costantemente
entrate e soldi quindi qual è l’esatto
stato dopo sistema in qualsiasi punto specificato
mettilo nello stato attuale di noi
fondamentalmente esegui un diff in un certo senso per te
Sappiamo di poter riferire in merito alla deriva sul
diff è in realtà un rapporto sul
deriva sapete quanto è diverso il reale
sistema dal dal dal desiderato
stato
e quindi possiamo fondamentalmente avere regole
quello dice bene basato su questi drift
Avvierò alcuni flussi di lavoro per andare e
rimediare e questo è un continuo
processo che viene eseguito, eseguito ed eseguito
giusto così teniamo costantemente traccia di qualsiasi
tipo di deriva se si tratta di cose semplici
come sai che il sistema operativo è diverso
versioni o o forse sta solo dicendo
quello bene questo ha sempre uno troppo lungo
sai che vogliamo riavviare tutto il nostro
macchine ogni 14 giorni sai che lo faremo
basta andare e farlo e possiamo garantire
che l’intera flotta è fatta e come il
gli sviluppatori questo è solo qualcosa da eseguire
il tempo del soldato è così buono nella sostanza
schema molto molto semplice ma è super
potente quindi un esempio molto semplice di
dove usiamo lo stato obiettivo che effettivamente usiamo
questo in diversi livelli che lo usano al
livello superiore di cui stiamo parlando
database e cluster ma spingono
fino in fondo nell’host così quando
dobbiamo iniziare a eseguire molti più miei
server sequin su ogni host a causa di
questo tipo di chunking per cui dobbiamo fare
ripristinare e in realtà abbiamo un agente su
ogni host e quell’agente e come agenti
sono dovrebbero essere attivi
entità giusta in base alle esigenze dell’agente
questo ciclo di stato obiettivo e va in su
al software di gestione che chiamiamo
ops less e tira quello che è il mio desiderio
stato e poi va e fa locale
fondamentalmente PS Azure togepi s stuff threat
per capire cosa sta effettivamente correndo
all’host e assicura che tutto il
i processi su questo host corrispondono all’oro
affermare che è l’ unica cosa che fa e
poi riporta anche sullo stato attuale tutto
il tempo quindi questo significa che quando noi quando
noi apportiamo una modifica allo stato obiettivo
in qualche modo viene automaticamente coinvolto
tutte le macchine e se stai facendo
un cambiamento e una macchina è giù, va bene
no, è giù per un po ‘di tempo
la rete non funziona, forse è una petizione o
qualunque cosa a un certo punto si presenti e
queste macchine torneranno su e
tirare lo stato e fondamentalmente prenderli
di nuovo dove dovevo
questo è super scalabile per scrivere
perché non abbiamo un processo
deve gestire in qualche modo migliaia di host
attraverso tutti i database questo è un grande
sistema distribuito che attraversa il
tutto così così
esempio molto semplice supponiamo di avere
sorta di due host qui con un maestro e
schiavo nel mio sequel e questa è la base
impostare in questa tabella dicendo che tu
sappi che essere buono dovrebbe essere un maestro
il buon cibo dovrebbe essere uno schiavo
dire che voglio fare uno schiavo da te oceano
sai che puoi immaginare, forse ho fatto
quello con il mio sequel sta eseguendo tutto
tipo di commenti strani ogni web te
aspettare il ritardo di replica per andare
giù e così via, quello che facciamo è
fondamentalmente solo cambiando disco e bastone
poi torniamo indietro o prendiamo un caffè da qualche parte
e che una volta modificato questo stato d’oro
giusto, dobbiamo solo aspettare il largo
meno agenti per tirare fondamentalmente lo stato
questo sta accadendo ASIC in modo che potessero
tiralo dentro in qualsiasi cosa possa arrivare ad uno di
i padroni di casa prima diciamo solo che ottiene
a destra, prima questo dice
così bene che non puoi fare nessun agente siriano
lo sa mentre sono schiavo per
disposizione a un maestro che devo avere
tutti i dati più recenti posso solo garantire
che ho gli ultimi dati se quello
Sto replicando perché è di sola lettura quindi è suo
la faccia è seduta lì ad aspettare ma ma
gli atti del ciclo in realtà avvengono tutti
la via d’uscita sull’host giusto quindi c’è
molto piccola latenza in questo ciclo e
quindi una volta che i dati si propaga in
l’altro ospite dov’è il mio, suppongo
per diventare inattivo non dovrei essere un
padroneggiare significa fondamentalmente che va
in modalità di sola lettura quindi l’altro agente
figure che fuori dicono uh ora quelli che sto
il salvataggio da ora ha smesso di essere un
master è di sola lettura il mio ritardo di replica
è andato a zero divento un maestro e
allora improvvisamente lo fai molto molto
macchine a stati semplici e molto semplici
in esecuzione su due macchine diverse con
molto poco coordinamento e, naturalmente
questo è tutto guidato da una bella interfaccia utente
dove abbiamo tonnellate di flussi di lavoro ovunque
possiamo solo fare questo oh questo è un po ‘
fase uno perché la cosa ideale è di
Certo, perché qualcuno deve fare clic su
e questo è uscire da loro ma ci stiamo muovendo
in questo momento è questa vita
l’emozione, naturalmente, deve avere davvero
molto velocemente, quindi ci stiamo effettivamente muovendo
lontano da fare usando la mia replica segreta
e il mio sequel host viene eseguito nel cluster ref
quindi fondamentalmente abbiamo un processo in testa
di quello che seleziona chi
è il maestro e replica il rap tutto
i diritti utilizzando il protocollo di consenso a
i diversi database e questo significa
che se qualcuno se il database diventa
non disponibile forse anche temporaneo
fa automaticamente l’ elezione principale
in meno di cento millisecondi che
è abbastanza veloce che per la maggior parte
linee che noterebbero di più
corso stanno aumentando nel lac ma noi
raggiungi Weiss e poi è completamente
trasparente, quindi questo è anche un modo di
tipo di spingere questo tipo di oro rimasto
laggiù dicendo che bene ora il rif
consenso Parker è assicurarsi che il tuo
stato d’oro solo per garantire e uno di
loro sono scrivibili e tu gestisci questo così
questa è davvero la fine e penso di esserlo
anche sul nostro tempo, molto molto
veloce di alcuni dei punti salienti di
questo sci benedice o sistema il take-away
ecco, sai una cosa è l’API a
tutto è operativo Pat e
quando tu e te stai facendo una specie di
business online è la parte operativa
super importante, tu davvero ti conosci
sviluppalo tutto il tempo ma anche tu
continua a correre tutto il tempo così tu
spendi molta della tua energia lì e
fare cose facili da usare a
scala è che non è uno sforzo banale noi
ho dedicato seriamente l’ingegneria dei modi
risorse su questo ma questo è davvero
ciò che rende il suo capo è super
cose importanti da fare così finalmente abbiamo avuto
avere un blocco nel caso in cui trovi trovato
questo interessante molto di questa roba
che ho parlato dello schema Lyst
software di migrazione che ci sono tonnellate di
post di blog e quello sul nostro blocco che ho
ne ho scritto uno e una parte sufficiente
della squadra qui ha scritto un mucchio
di loro quindi non li vedrai mai dirci
tutto un mucchio di cose diverse che
lo facciamo e penso che sia così e potremmo
avere il tempo per una sola domanda, forse
parli un po ‘di dove sei
andando ma forse più ne puoi parlare
proprio da dove sta andando così chiaramente
stiamo crescendo, crescendo e crescendo
e l’archiviazione è molto difficile proprio così
in un certo senso questo sistema è tutto del
prima generazione di ciò che abbiamo e io
pensa dove andremo nel futuro
ci sono un sacco di direzioni diverse
una delle cose e la maggior parte è
davvero per garantire che abbiamo il
api giuste che lo rende facile
sviluppare servizi e una delle aree
dove vedo dove possiamo migliorare dove
siamo oggi è come gestisci i dati
c’è una partizione su più dati
centri abbiamo diverse soluzioni oggi
ma penso che possiamo venire meglio
quelli là è definitivamente aree dove voi
voglio un migliore supporto transazionale o
una sorta di isolamento e multiplo di
aggiornamenti quindi questo è anche ciò che siamo
esaminando ma stiamo effettivamente spendendo
un sacco di tempo a pensare a specie
di quali sono le api perfette perché
mentre l’ API della grande tabella è sorta di
molto flessibile a volte ne vuoi un po ‘
astrazioni di alto livello e poi c’è
è sicuramente il cross data center
l’affidabilità è un grande grande obiettivo per
noi nient’altro
ma così la domanda riguarda gli indici come
ci assicuriamo di essere effettivamente aggiornato
coerenza e in realtà non lo facciamo
sono indici secondari e loro
alla fine coerente, quindi non lo facciamo
garantire che siano aggiornati allo stesso
tempo in cui la cella primaria è scritta così
tipico che sarà così sicuramente
prova a farlo, ma se quel database è
giù quel colpo è giù dove l’indice
sta colpendo che sarà solo una specie di
essere messo da parte anche in una sorta di ostacolo
consegnare e applicare più tardi in modo che il
indici secondari I eventuali coerenti
questa è una delle cose che siamo
in realtà cercando in futuro a
pensa di averli fatti
coerente
scusa è stato un singolo su quanto sia grande
questo è un lavoro che stiamo facendo
negli ultimi quasi tre anni a un
ovvio era in quasi così nel caso lo sei
non dalla Danimarca, abbiamo un ufficio uber
in Davos Anubha è come una sorta di si tu
conosci un’azienda globale dove facciamo giri
in tutto il mondo e l’ingegneria
anche l’organizzazione è nostra
distribuito in tutto il mondo, così abbiamo
uffici e in Danimarca abbiamo uffici
in Bulgaria e avanzato di posti in
noi a me e per me, così ho lavorato
lì per circa tre anni principalmente su
archiviazione prima che ho lavorato su un
un sacco di altre società noi e noi siamo
per lo più su VMware in realtà ha fatto ciò che era
chiamato Centro virtuale ma era il
piattaforma di gestione per la creazione di ESX
server in un grande data center così
è in qualche modo simile a quello che noi
finito per fare qui uber di gestire il nostro
enorme flotta di sistemi di stoccaggio e, se del caso
di te ricordi qual è il tuo sito web
è un grazioso massone Mason lasciami solo
sorta di preparare il terreno per questo
sistema di archiviazione così una volta un po ‘
su come funziona goober, presumo che tu abbia scelto
di nessuno con il diritto si installa un’applicazione
sul telefono si richiede il diritto e
così avanti così in cima alla nostra pila di
Ovviamente abbiamo l’app per cellulare e
che fondamentalmente parla di uno strato che chiamiamo
il mercato quindi è qui che siamo
abbinare piloti con i conducenti
sistema di mercato tiene traccia di tutti
viaggi attivi che stanno accadendo in qualsiasi
dato il tempo in modo da monitorare il GPS solido
coordinate coincide con trova il più vicino
auto tenere traccia del percorso e poi così
avanti e poi quando il conducente fa clic su n
viaggio quindi ibiza genera un plop JSON
con tutte le tracce GPS sai chi
Sarebbe arrivato Ida
era una ricerca e ogni tipo di
informazioni interessanti ci sono
venti quaranta campi o qualcosa del genere
quello e che i gay praticamente vengono messi
nella parte posteriore del sistema e il
la parte posteriore del sistema deve farti
sapere mandare una email si ritirerà come addebito
alla fine la carta di credito deve essere inserita
un po ‘di soldi nella banca del guidatore
conti e così via fa molto
frode e poi quel tipo di cose tutte
quei dati tutti quei racconti di viaggio tutti
quelle entrate ovviamente devono essere
memorizzato in una sorta di sistema di archiviazione
e questo è ciò che chiamiamo operativo
archiviazione questa è la spada che
fondamentalmente spinge il tutto ha tutto
le definizioni della città o l’utente
tiene conto di tutti i viaggi che sono stati
fatto e così via ed è quello che sono
andando a parlare di oggi abbiamo anche a
magazzino dove tutto entra
una sorta di grande tipo di Hadoop HDFS
dove puoi fare qualsiasi tipo di domanda
questa non è la parte che sto per fare
parlare di consol sul pad operativo
e la cosa fondamentale della parte operativa
è che questo è in realtà parte del
business online giusto quando sei in
l’app e richiede come voglio
vedere le mie cronologie web passate che voglio vedere
le mie ricevute voglio cercare il mio account
Voglio cambiare il mio numero di telefono e
quel tipo di cose è ciò che è dentro
la memoria operativa ora come la maggior parte
le startup inizi in modo semplice e semplice
quindi non molto tempo fa in realtà due anni
fa tutto era in un singolo Postgres
database praticamente e ovviamente noi
aveva una sorta di scala e comprato un
grande macchina e aveva un sacco di prese in giro Asus
quelli tagliavano le cose ma era una specie di
chiaro questo era all’inizio del 2014 era totale
chiaro che questo non funzionerà
per sempre, probabilmente non sta andando
lavorare con Halloween se non lo facciamo
nulla su questo problema di ridimensionamento
il nostro deposito entro il 2 gennaio
mille Halloween 2014 il nuovo libro
fondamentalmente smetterà di funzionare così è
abbastanza chiaro ora che in realtà
siamo riusciti a risolvere questo problema
ancora qui ovviamente ma ce n’era uno
dei canali che avevamo come cosa
fare
e proprio come sai quando puoi
guardando da solo all’interno di dove eravamo
è abbastanza facile vedere che lo sai
questo era sicuramente qualcosa di cui abbiamo bisogno
fare circa gennaio 2014 è fondamentalmente
dove quell’era era e in quel momento noi
in realtà non ne avevano molti
viaggi oggi facciamo quasi 50 volte di più
viaggi per incontrare in quel sito e questo è
solo due anni e mezzo fa cose così
stanno andando veramente molto velocemente e da allora
siamo passati al sistema di archiviazione
andando a parlare di noi in realtà siamo stati
in grado di adattarsi a questo tipo di massa
crescita abbiamo appena fatto il nostro viaggio di due miliardi
a giugno di quest’anno era una specie di maggiore
pietra miliare ora facciamo proprio così
tipo di riferimento straniero circa 5
milioni di viaggi a settimana che fondamentalmente
significa che ogni secondo c’è 60
persone che escono da un uber attraverso il
mondo quindi è un grande abbastanza se tu
segui se hai paragonato a Twitter di
Certo, sono pochissimi ma questo è
in realtà persone reali che si muovono dentro
il mondo reale ora quando devi
affrontare questo problema a destra quindi abbiamo
questo database di ricerca post che hai
milioni di righe di codice che
fondamentalmente accedere a tutti questi tavoli che avevamo
centinaia di tavoli più per tenere traccia di
questo intero sistema quindi come fai a
vai ad attaccare che non puoi semplicemente
dillo bene tra sei mesi
riscrivi l’ intero sistema e la correzione sarà
bene quindi bisogna sorta di figura fuori
dove attaccarlo così ne abbiamo fatto un po ‘
analisi dei dati che abbiamo avuto nel post
database delle ricerche e non troppo sorprendente
scopre il viaggio in una sorta di grande cosa
giusto questo è fondamentalmente ciò che facciamo
un rotolo di viaggi così il settanta per cento di
i dati erano più o meno in viaggio
Database di Postgres quindi abbiamo deciso di farlo
affrontare questo fronte e dire bene questo
è il primo problema che sta per attaccare
di halle e se riusciamo a fare dei viaggi
ci occuperemo dell’archivio delle ricerche post
buona forma, si scopre che lo era
non solo scala e latenza e quelli
tipo di cose di un problema era
in realtà anche quello che apporta modifiche a a
si è rivelato un grande database relazionale
un po ‘complicato a volte quando
le persone avevano bisogno di un nuovo indice
Diciamo che hai bisogno di un nuovo indice e a
viaggio tabella l’intero database Postgres
si fermerà e poi tutto si fermerà
l’ intero sistema quindi volevamo anche
avere un sistema che gli sviluppatori molto molto
rapidamente potrebbe apportare modifiche ai dati
non ce l’ha e potrebbero farlo
online senza spegnere il sistema
sai che questo è un po ‘come lo sai
il sistema stesso è una specie di nave che ha
lasciato il porto giusto non puoi fermarlo
deve andare avanti non si può mai girare
fuori così tutto ciò che facciamo al sistema
deve essere fatto online in modo molto semplice
che è una sorta di mondo vogliamo ottenere
a quel punto e il mondo siamo
ora dove usiamo ancora Postgres e il mio
sequel e le nostre tecnologie di database per
varie cose ma ma una specie di principale
parte è il sistema di schemi il
il mercato è in realtà gestito per lo più
su Cassandra e quel tipo di cose così
c’è una specie di diverso
tecnologie in gioco il sistema che abbiamo
poi finì per costruire ora due e un
anni e mezzo più tardi mi sono venuti in mente è
è un sistema abbastanza sostanziale che vorrei
dì che non si tratta solo di immagazzinare viaggi
memorizzare un sacco di diversi database per
molti dei nostri servizi è installato
attraverso più data center attraverso il
mondo c’è un’enorme quantità di cellule
servizio e infrastruttura auto-guarigione
e in realtà sto andando a spendere un po ‘
un po ‘ di tempo per parlare di sorta di
aspetti operativi della gestione di un enorme
sistema che attraversa migliaia e
migliaia di host quindi è ancora una volta di
pensando di installare un singolo
database è facile giusto sai una volta che si
voglio avere 300 database in tutto
migliaia di host che diventa
molto interessante quindi una sorta di riassunto rapido
dello stato in cui siamo oggi
circa l’ottanta per cento dei dati
in particolare account utente utente e
i viaggi memorizzati in questo sistema sono andati
da questo singolo viaggio, datastore che noi
effettivamente mirato indietro nel 2014 a più
di 300 negozi di dati e questo è Barry
pensa a questi come a tabelle separate
istanze di database separati se tu
uber è molto micro
architettura orientata al servizio così
fondamentalmente i servizi possono ottenere il loro
stoccaggio e aggiungere nei giorni in cui noi
configurare i primi 48 cluster di macchine su
corri viaggi sai che pensavamo che fosse
enorme che abbiamo rivisto una sorta di nostro
idea di ciò che è enorme ma è qualcosa
quello che scala e n cresce e di nuovo
se hai guardato il grafico fondamentalmente
raddoppiato ogni sei mesi giusto così cose
solo una sorta di bambini in fretta che possono prendere
un ok più grande quindi tuffiamoci in un
un po ‘su come lo schema di Ellis
è stato progettato e funziona e come
tutti i sistemi quando si avvia la costruzione
nel tuo sistema hai una specie di sguardo
come fa a farti sapere cosa?
tipo di funzionalità dovrebbe avere quello che dovrebbe
Sono disponibile ad essere e così via
cosa interessante come sai se tu
guarda tutti questi requisiti è
sempre un compromesso ma non puoi
dire che voglio l’API perfetto che volevo
scala un po ‘senza limiti
deve essere super efficiente deve costare
niente e così via quindi è sempre in ordine
di un trade-off e in particolare con
sistema dolente questo è sicuramente un
il trade-off non puoi essere pieno
coerenza e piena disponibilità e
questo tipo di cose è questo per quello
ad esempio il teorema del cappuccio ci dice così
ci deve essere una sorta di compromesso
e devi davvero capire
di quale modello di archiviazione funziona davvero
per il tuo problema e poi la parte finale
è una specie di momento per il mercato al
tempo in cui abbiamo iniziato a fare ciò che sapevamo
avevamo sei mesi quindi qualsiasi cosa decidessimo
per farlo doveva essere fatto entro le sei
mesi così non lo sei lo sai che non lo sei
andando a reinventare il mondo o spendere
tre specie di prototipazione di un’idea
in realtà vuoi avere qualcosa
piuttosto semplice perché stai andando a
eseguire questo in produzione deve funzionare così
lasciatemi passare rapidamente in qualche modo
i requisiti di base che abbiamo avuto quando abbiamo
ha deciso di progettare il sistema come prima parte
era in questi indici indici era super
importante come tutto il codice che era
gruppo in esecuzione di noi scritto per lavorare
contro il database di Postgres e loro
sono abituati ad avere indici e c’era
molte domande come la conosci l’una
che dovrei avere il giusto dove
stai guardando tutti i viaggi
per utente particolare in un qualche tipo di tempo
intervallo il codice qui è stato scritto nella maggior parte
del codice è stato scritto in Python usando
alchimia segreta direttamente dentro
il database di Postgres quindi a volte noi
erano in realtà in buona forma perché
la gente non ha scritto dichiarazioni sequel
di per sé è stato modellato usando
sequel query riduce le classi e così via
avanti così possiamo essere abbastanza facili se
abbiamo avuto l’ astrazione giusta sorta di
cambia queste classi all’interno dell’esistente
codice e poi sicuramente chiamerò
il sistema di allarme schema il prossimo
il requisito era sull’operazione di pipistrelli quindi se
se pensi a come sei uber
funziona bene è che le persone fanno un viaggio a
il viaggio arriva nel sistema che devi
costruiscilo devi pagare devi
fai un po ‘di rilevamento delle frodi che devi fare
vari tipi di analisi e poi tu
solo una sorta di siede lì così è molto
molto tipo di calcolo nella parte anteriore di
dati o puoi pensare di pensarlo in qualche modo
come un flusso di dati che si sta muovendo
che devi essere in fase di elaborazione
quindi volevamo anche lo stato del viaggio
una sorta di supporto che modella tutto
questi viaggi sono una specie di gocciolamento in noi
fare un sacco di calcoli su di loro noi
idealmente farlo, lo farei in modo importante
non farti pagare sai due volte per il
stesso viaggio o peggio che ci dimentichiamo di pagare
fuori l’ autista quindi dovevamo avere una specie di
il robusto sistema per l’elaborazione di tutti
questi viaggi e poi si sistemano
dormiente e questo è in realtà molto vero
abbiamo fatto delle analisi dove ordiniamo
di guardare il tasso di accesso due viaggi no
dopo aver preso e ti conosco
può immaginare è una specie di una curva che
un po ‘va così non c’è motivo
un po ‘la gente guarda il viaggio
storie ma si conosce al contrario
facebook dove le persone vanno e guardano tutte
tempo che conosci guardando il pastore di
la storia non è una specie di favorita
passatempo ma così è stato il secondo
requisito e poi l’ultimo come me
menzionato prima che siamo grandi in
microservizi in realtà il sistema di Uber
consiste di più di def
austin microservices la maggior parte di loro sono
abbastanza semplice questa è l’idea con
micro servizi che chiamano in altri
micro servizi per eseguire una sorta di
funzione ma un sacco di loro ovviamente
avere lo stato e quindi fondamentalmente ottenere il loro
possedere un database locale o noi lo chiamiamo dati
memorizzare il proprio archivio dati locale questo
può essere una mia base più tardi, ma può farlo
anche essere un archivio dati supportato da
senza schema se è fondamentalmente giusto
scalabile per meglio si desidera memorizzare
viaggi in scala dati di dati roba simile così
è importante costruire un sistema dove
in qualche modo possiamo supportarlo rapidamente
modello di creazione di nuovi archivi di dati
abbattere archivi di dati quando un micro
servizio muore un solido dismesso e
sostituito da altri e in generale
questa sorta di architettura di micro-servizi
sta rendendo molto agile fare cose
giusto perché possiamo facilmente aggiungere un nuovo
caratteristica possiamo facilmente prendere un nuovo
funzione estrarre una funzione che non lo è
necessario più è stato sostituito da un
migliore attuazione come singolo
singoli micro servizi e come questi micro
il servizio ha il proprio spazio di archiviazione è in ordine
di chiaro sai esattamente quali negozi
appartiene a questo possiamo migrarlo in a
nuovo data store se necessario e poi di
Ovviamente l’ovvio che conosci i dati
una sorta di deve essere memorizzato un disco
da qualche parte e questo è un po ‘ il punto cruciale
del problema della scala perché questi
i dischi non sono davvero molto grandi
forse prendi due terabyte forse un 16g
bianco se sei fortunato e poi in realtà
questa uscita del disco è come questa al giorno d’oggi
nel caso sia così carino
con quelli vecchi ma sai che eravamo
onesti o giorni ovviamente molti SSD
e di quante SS ha davvero bisogno
beh, non ci vuole molto
calcolo per tipo di capire quello
diciamo che hai una scheda SSD con due
terabyte ne infili quattro in un
server e hai un server con a
mordere una sedia se vuoi fermarti a
petabyte che è una sorta di scala noi
stai guardando qui sai uno da dire
per petabyte ne hai bisogno almeno uno e
ventotto macchine e non puoi
l’ho visto solo su una macchina, perché
macchine muore Rex collega i segnali dati va
fuori così quello che normalmente facciamo è in realtà
replica dei dati su due data center
e finiamo per avere quattro copie così
significa che per un petabyte ne occorrono cinque
centinaia di macchine così che sia
quantità di macchina già molto seria
l’infrastruttura di cui hai bisogno e
in realtà è solo un petabyte, quindi questo
è solo una specie di punta dell’iceberg
della scala che alla fine
arriveremo a lui puoi chiedere perché hl5 perché
non usi solo una macchina più grande di
Certo che puoi farlo ma il numero
viene comunque pagato e poi vi parlerò di
un po ‘più tardi facendo quel numero
più grande ha anche un diverso set di
problemi in realtà l’API che abbiamo fatto
e di nuovo hai dei corpi ok
viaggi di viaggi è davvero solo un flusso di
dati in arrivo in tutti questi viaggi
seguire gli eventi della vita reale che sono
accadendo nel mondo reale e il
la cosa bella degli eventi è che lo sono
per definizione, immutabile, sai
è successo questo è quello che è successo e
questo è in realtà il modo in cui vogliamo modellare
i nostri dati all’interno su dove si traccia
i viaggi è che è una specie di flusso di
cambia che noi che monitoriamo così così
modo in cui abbiamo progettato questa API e anche
ispirato ad esempio ad un grande tavolo da
da Google e tutti i luoghi in cui
è una sorta di grande colonna sorta di a
API di stile tabella in cui ti sei dato
fila è possibile memorizzare un numero di colonne
e ogni colonna puoi solo tutti i jason
plop quindi questo è lo schema meno aspetto
hai appena visto un blob JSON casuale che puoi
memorizza tutto ciò che gli sviluppatori possono
cambia che Jason plop in qualsiasi momento quelli
hai rubato qualcos’altro che non hai
per apportare modifiche alla tabella a questo
e poi puoi pensare a un viaggio in arrivo
come le sue informazioni di base su a
viaggio sai che questo è quello di scrivere un autista
ecco il percorso è un’altra colonna
con i punti GPS , quindi il processo Sun.
quello è come se fossero basati su questo
Posso calcolare la fiera poi quasi
affare e fondamentalmente abbiamo visto tutto questo
informazioni quindi ogni riga è una specie di
intero tipo di storia computazionale di
un viaggio particolare e questo è tutto
immutabile quindi abbiamo tutto il tracciato noi
può tornare indietro e dire bene a questo dato
tempo sai che abbiamo calcolato questo valore per
questo campo
ed è molto importante perché questo è
in realtà le transazioni sono una specie di
transazioni commerciali che siamo
monitoraggio se si è familiare
con l’architettura taggata di agnello che
loro sostengono molto questo modello dove
neyo scriverà i dati che vuoi veramente
per mantenere tutti i valori nel proprio database
nel caso in cui tu potessi avere il codice
sovrascrivere accidentalmente i tuoi dati e
allora sei un po ‘in un brutto posto così
questo in realtà sta seguendo questo modello
questo significa anche che questa è un’appendice
solo il data store si intende una volta che si scrive
una cella non puoi sovrascriverla di nuovo
quel valore è lì puoi scrivere un nuovo
valore nella stessa curva nello stesso ruolo
e la stessa colonna ma aspetta un altro
data e ora se si desidera e c’è
un po ‘come seguiamo i cambiamenti nel tempo
si scopre che da una scalabilità
prospettiva questa API lo rende anche molto
molto facile da scalare che è anche bello così
in che modo lo scaliamo effettivamente?
layout dei database che prendiamo
ognuna di queste righe sta usando uuid the
UID ne ho solo uno molto breve qui
fallo montare di lato ma dentro
la pratica è uuid a 128 bit e lo facciamo
modulo 4k su quel valore e diviso
pre iniziato in un numero di colpi e
questi scatti sono poi co-localizzati su un set
di classi di basi di dati e il mio paillettes
grappoli quindi non abbiamo dovuto reinventare
una sorta di grande tecnologia di archiviazione noi
Prendete fondamentalmente il mio solido fondamento
sequel il mio sequel ha il supporto per le basi
replicando in schiavi da un capo all’altro
multiplo anche tra i data center e così via
avanti così stiamo riutilizzando l’ asincrono
replica nel mio sequel stiamo riutilizzando
tutte le capacità sinuose in cui gli indici
e così lontano dal mio sequel e appena ho
questo in alcuni gruppi di grida abbastanza sottili
strato in cima al mio sequel per gridarlo
fuori giocatore come questo e poi possiamo
in realtà vieni a conoscere 4000
grappoli qui se vogliamo come abbiamo sparato
ma iniziamo tipicamente
relativamente pochi gruppi diciamo 8 16
e così
e parlerò un po ‘di
come possiamo effettivamente espandere questo
dinamicamente come andiamo ma il trucco qui
di nuovo è che in realtà è molto molto
traduzione semplice e molto molto semplice
in robustezza e questo è davvero ciò che
stiamo cercando la prossima funzione che è
sorta di unico ed effettivamente difficile da trovare
in molte di queste soluzioni fuori scala
gli indici efficienti e come ho detto
prima questa è la cosa fondamentale che noi
doveva supportare per supportare la migrazione
dal vecchio codice base 22 a questo
e l’idea di dove sono gli indici
cubase di specificare l’indice lo vediamo
qui nel posto giusto chiamato il
Indice cliente qualcuno dice ogni volta che si
scrivi la base della colonna quindi prendi il
campo ID cliente e girato su quello e
quindi stalla una voce basata su quel pino
ID e questo è quello che vedete qui a
lasciato se faccio una cella put ora sto mettendo
una colonna di base a te conosce l’uuid qui
è 100 e se ci permetti di assumere solo noi
avere quattro colpi come mostrato qui se lo fai
100 modulare per le sue cellule shot.0 così
sarà memorizzato sotto diversi colpi
in questo momento c’è un indice definito per
la colonna di base qui e poi sulla
ID cliente prendiamo l’ID cliente e anche
girato su quello e questo significa che finiamo
anche avere una voce di indice sul grafico
e questo è basato sull’ID client e
questo ha un riferimento quindi al reale
cella in una riga reale dove è 100 e se
puoi vedere come funziona che facciamo
di ‘questo è l’ ID 10 del cliente e io
fare un altro viaggio, il mio viaggio si fa semplicemente
casuale i tuoi ID in modo che ottengano
distribuito tra tutti gli scatti ma il mio
l’ ID cliente finisce per essere lo stesso e
da adesso l’indice è andato in frantumi
ID cliente tutte le voci dell’indice finiscono
sullo stesso grafico quindi se ora devo fare
una query per trovare tutti i miei viaggi che conosco
puoi farlo sul char due e ottenere tutto
di questi tuoi ID non devo fare a
interrogazione del distributore su tutto il
cluster
per trovarlo, quindi è molto molto efficiente
indici e in questo caso particolare noi
anche incluso la fiera questo è fondamentalmente
quello che noi chiamiamo il campo normalizzato
a cui posso accedere molto velocemente
il tubo della fiera quindi non ho bisogno di sorta di
torna indietro e poi prendilo o meno
celle originali l’ultima caratteristica è la
possibilità di ordinare i viaggi come
entrano e anche questo è un po ‘
molto cool nel senso che come in
aggiungi solo dati stop che significa
anche tu sei davvero solo un log e tu
puoi pensare a tutti i loro spilli se ordini
loro quando sono messi dentro sono
solo una lunga sequenza di blocco e noi
ha effettivamente un’API che ti permette di
tipo di guardare bene cosa è successo in
esattamente questo intervallo sai come ha fatto il
aspetto del database in questo intervallo di tempo che possiamo
in realtà lo vedo e possiamo usarlo
che se solo avessimo un po ‘di memoria
innesca quel tipo di look nella parte anteriore
del database tutte le volte cosa
successo sapete cosa ha messo Dio ora
e quindi in pratica ottieni solo un
la richiamata indica che qualcuno ha chiamato
inserire una colonna di base per questo ruolo
qualcuno ha inserito la colonna del percorso
per questo ruolo e così via, così possiamo
sorta di coda la parte anteriore del database
tutto il tempo e questo è ciò che usiamo
guidare tutta l’elaborazione back-end di tutti
i float e c’è una semplice API
chiamare per fare fondamentalmente questo lo chiamiamo
partizione di lettura si può pensare
una specie di analogia sarebbe una coda su un
file se non sei unix puoi ordinarlo
coda tutto ciò che entra nel
database e quindi il trigger è
fondamentalmente solo una sorta di guardare ah
c’è una colonna di base che entra nel nostro
esiste già un percorso per questo
fila ah posso calcolare equo e poi esso
calcola equo e inserisce le tariffe nel
database quindi c’è un onore Taylor
è come se ci fosse una base e ce n’è una
giusto posso fare la fatturazione del cliente e noi solo
in qualche modo procedendo così
attraverso tutti questi negozi in questo modo noi
effettivamente trattare il database sia come sorta
della memoria operativa principale ma
anche come una specie di coda di cose
ha bisogno di essere processato e quindi non lo facciamo
finire in questo tipo di dobbiamo archiviare
informazioni due volte
possiamo uscire dalla sincronizzazione dobbiamo fare due
fase commettono peccato su due sistemi diversi
e così via, tutta quella roba è fondamentalmente
non necessario che è anche tradotto in
un sistema semplice e più robusto in modo che
sorta di ordinamento di sistema senza schema del
database di base in poche parole e come te
posso vedere che è una grande API in stile tabella così
se usi qualcosa del genere, io
Immagino che tu sia solo se lavori per goon
ma questo è il modo in cui è
si scopre una specie di API standard
che questa API è applicabile molto
luoghi così abbiamo scritto che era
originariamente progettato per fare i viaggi noi
usalo per un sacco di roba ora gira
fuori è giusto per una lunga permanenza a
molti posti ci sono e soprattutto
siamo nella base in cui siamo un po ‘
tenere traccia degli eventi della vita reale è una specie
di quello che vuoi fare tu non vuoi
sovrascrivere non si vuole che si desidera
tenere un registro di tutto ciò che ha
è successo orizzontale scalabile di
gridando che devi fare in alcuni
modo e tutto e fare una scala ciotola io oh
e la capacità aggiungendo più cluster
così bello parlare un po ‘di
disponibilità e una volta entrati
operazione bianchi faranno clic sul
app e una volta il giusto e in qualche modo
deve lavorare tutto il tempo così come fa
questo sistema è giusto nel caso di
disponibilità e questo è un po ‘di dove
dove la gomma colpisce la strada in alcuni
senso giusto ma che chiunque può scrivere a
sistema o è possibile acquistare qualche tipo di cosa
ma sai non importa che tipo di
prodotto che acquisti con qualcosa che tu
so per il giardino per la cucina
di tutti i tuoi dati ha detto che il
differenza è che sai come tiene
sai una volta che inizi a stressarlo
quando tutto inizia a fallire bene
improvvisamente cade da una scogliera
per le prestazioni sagge o lo fa all’improvviso
inizia a perdere dati e non riesci a ottenerli
iniziato per quattro minuti e così via
questo è chiaramente molto importante per noi
che è qualcosa che possiamo avere
alta sicurezza che sta funzionando tutto
e quando non funziona possiamo ripararlo
molto molto rapidamente che è giusto
super importante sai che non c’è tempo
chiamare chiunque quando succede
quindi figuriamoci un po ‘su
cosa succede in realtà e il
cosa fondamentale è tutto nel mio
database segreti, quindi fondamentalmente dobbiamo
assicurati che questi miei sequel di database
quindi è qui che passiamo molto tempo
è tutto di preoccuparsi di tenerli
bene non vogliamo davvero mantenere
li ma vogliamo fare in modo che
quando succede qualcosa di brutto a loro noi
può recuperare rapidamente perché sono
andando a morire di tanto in tanto, i dischi tagliano
le zappe muoiono in cravatta Rex o ottengono
errata configurazione o persone accidentalmente
spegneteli bene sapete cosa succederebbe se a
lo schiavo muore non è un grosso problema, proprio noi
dovrà ancora avere il maestro noi
ha ancora un secondo schiavo tutto ciò che è
bene, quindi la vita va sugli schiavi, davvero
solo per recuperare nel caso in cui il
maestro co-protagonista quindi cosa succede se il tuo
il padrone muore bene dobbiamo fare una specie di
diritto al database sequel quindi se lì
è un viaggio in arrivo che deve scrivere
per esempio a quello scatto come fai tu
sai cosa facciamo di un Reich e
davvero solo due opzioni bene
possiamo fallire come un dispiacere, sai che non posso
scrivi adesso devi aspettare a
un po ‘e questo è in realtà un va bene
rispondere per alcuni casi giusto perché il
molte delle cose che facciamo sono batch
elaborazione come l’invio di ricevute e
viaggi quindi questo è in realtà qualcosa che
possiamo tranquillamente ritardare senza fare nulla
sai troppo male di un’esperienza utente in
qualche senso non significa che tu
non può andare bene, ma quale è il problema
certo che è il chiamante una volta questo
roba da essere mantenuta e replicarlo
quindi non lo perdiamo mai, quindi abbiamo effettivamente
questo ciò che chiamiamo diritti bufferizzati o
cosa succede se sei abituato a Cassandra
terminologia chiamata mano impedita
beh, abbiamo appena archiviato alcuni pozzi
abbiamo più di un vantaggio abbiamo 16 o
abbiamo forse 128 cluster, quindi possiamo
salvalo in uno di questi cluster
quindi vogliamo solo metterlo da parte e detto
Va bene va bene una volta che mi interessa è
alto è replicato non lo perderà mai
ma non puoi leggerlo adesso, lo farai
essere in grado di leggere più tardi che questo tipo di
la garanzia che otteniamo e loro
tu ragazzo è molto semplice, c’è solo il
metti le celle e dici se vuoi questo
semantica se vuoi davvero davvero alto
la disponibilità è davvero di lunga durata
devi solo dire che è ok per buffarlo
bene ho solo bisogno di ottenere per ottenere
questo pensiero non ho bisogno di leggerlo
subito va bene e lo facciamo quando
i viaggi effettivamente scendono dal
mercato nel sistema e il
La ragione per cui questo funziona è perché tutto
questo processo è esattamente successo da
si innesca correttamente in modo che le persone non ne abbiano bisogno
leggere subito i trigger
non ha bisogno di sapere che questo in realtà
messo da parte in una sorta di questo ostacolato
mano fuori tavolo una volta che viene rimesso
nel posto giusto quando i Maestri
vivi due trigger funziona e tutto
funziona perfettamente, quindi questa è una specie di
bella cosa su una programmazione ASIC
modello ora crescita quello che sai come ho detto
stiamo facendo crescere ogni basilico raddoppiando
ogni sei mesi, quindi cosa succede quando
questi gruppi si riempiono e questo è
anche in un certo senso semplice mostrerò a
un po ‘di foto su come sia semplice
davvero era, ma in linea di principio abbiamo solo
creare una nuova classe sul lato che abbiamo
imposta la mia replica segreta in modo che tutto
questi sei database avranno lo stesso
quantità di dati e quindi ora dobbiamo
configurazioni duplicate e quindi possiamo
fondamentalmente li faccio a pezzi così ora
sono separati con gli stessi dati e
allora configureremo semplicemente il
strati di distribuzione avrò il
le ombre su un lato bene sei metà
dall’altra parte e cancellarli e
quindi fondamentalmente facciamo ciò che chiamiamo
aspetto in modo che possiamo sostanzialmente raddoppiare il
dimensione dell’intero sistema facendo cadere tutti
le classi in qualsiasi punto e questo è
in realtà un’operazione abbastanza veloce, quindi il
la cosa fondamentale qui è davvero quella di gestire tutto
queste mie sequenze mi permettono di immergermi in un
un po ‘su come lo facciamo e come
è veloce in realtà possibile
creato il mio database sequel e questo
in realtà è anche interessante che tu abbia
queste reti direttamente a casa e tu
avere dischi su host
e se si desidera ottenere dati in un host
devi farlo attraverso la rete
e se hai 10 gigabyte da 10 gigabit
nic sul tuo host la quantità di dati che tu
può entrare in un host in un’ora
3,6 terabyte che è in realtà sorta
del massimo in pratica puoi
probabilmente ne riceverai molto meno perché lo sei
usare la tua rete in modo duro e se
un ospite muore, il viaggio dev’essere davvero
restaurato idealmente in meno di 30 minuti
molto più veloce, quindi come si fa a fare
con questo nell’esempio precedente prima di me
era un terabyte in spazio su disco in ciascuno
host perché abbiamo ospitato in un molto
più grande come con centinaia di byte e
così via come si può effettivamente ripristinare
indirizzi sono quelle centinaia qui in è
ci vorrà un’eternità per superare a
rete per ottenere la risposta, naturalmente
è sempre così, ma hai ragione a
sistema di storage è che si deve
roba petizione quindi nel trucco sei tu
non devi pensare al tuo ospite
pensare a dei dati e utilizzati per
pensa all’ospite come a un condotto
per un sacco di blocchi di dati e cosa tu
voler ripristinare non è l’host è il
blocchi di dati e puoi ripristinarli
blocchi di dati in parallelo se diciamo
c’erano 16 blocchi di dati che è tutto
512 gigabyte quindi puoi effettivamente
ripristinali in 30 minuti in parallelo
attraverso molti host così in realtà
non solo per partizionare i dati
attraverso tutti noi anche voi
petizione loro all’interno dei padroni di casa così quando a
l’ospite muore, possiamo solo ripristinarli
pezzi in parallelo in molti sistemi
e quindi in realtà non possiamo davvero
importa quanto l’host del disco ha solo
significa che quando qualcosa muore, noi semplicemente
avere più parallelismo nel
caso abbiamo impostato in modo da lasciare a spostare in
la scala operativa quindi come stai
iniziare a pensare a questo giusto perché
ora un’operazione non riguarda solo a
l’host right è come se tu fossi un hosed
gli occhi devo trovare 16 nuovi host però
Devo iniziare le cose in parallelo 16
cose che non li hanno ordinati
di come da solo e quindi questo posto andare
e parliamo di questo tipo di blocco rosso
e negli occhi sono una cosa del the
sistema di archiviazione è quello
vuoi mantenere il sistema di archiviazione
stesso il più minimale possibile e poi
vuoi avere un sistema laterale che ho
lo chiamò un guscio esterno qualcosa di simile
quello che sa come gestirlo è
una sorta di architettura di servizio micro per
proprio per i servizi di storage
non lo vuoi una specie di
blocco monolitico giusto perché il
sistema operativo, quindi abbiamo una tendenza
per farti sapere che è qualcosa che puoi
aggiornamento molto più veloce e con molto meno
rischio rispetto al tipo di motore di archiviazione co
quindi avere separato questo rende molto
di senso nella pratica e fondamentalmente una volta
operiamo questo diciamo che abbiamo te
conosco qualche migliaio di host che abbiamo
più data center ne abbiamo molti
archivi di dati che vogliamo davvero essere in grado di
Cresci questo sai crescere e crescere e
crescere senza avere più persone per uno
la ragione è che sai che lo è
molto più economico avere meno
le persone che gestiscono sistemi più grandi
il problema più grande è che non puoi
assumere più persone abbastanza velocemente così in alcuni
senti che devi solo aggiustarlo, lo sai
è come se le persone semplicemente non esistessero e
il modo tradizionale di affrontare questo
e questo è in realtà un vero e proprio
screenshot del nostro primo libro di corsa per
facendo una spaccatura così questo lo sai
spaccare le cose è che è molto facile
basta replicare e fare cose dentro
pratica che lo stai facendo sul serio
vita giusta per quei viaggi in corso in questo
sistema e devi fare questo dividere e
se fai qualcosa di male c’è qualcosa
il cattivo accadrà nella vita reale proprio così
c’era un libro a lungo termine con un sacco di
controlli e contrappesi e così via e il
il problema è che una scatola è quella gente
non li leggerò allo stesso modo o loro
dimenticherà qualcosa o il telefono lo farà
ring o dovranno prendere il caffè se
lo leggi alle quattro di sera
il tuo tasso ah, davvero non intendeva quello
Salterò quella parte che conosci così com’è
semplicemente non scalabile facendo questo tipo di
roba così praticamente tutto diventa molto
più difficile con la scala in un certo senso e il
le cose tipiche che sentiamo sempre
come il tubo flessibile non funziona o la bici fallisce e
tutti quei tipi di cose più grandi
il più grande più grosso problema è
dito veramente angosciato
hai un grande sistema su 4000 host
dillo e basta, se non lo fai
tenetene traccia perché alcuni dei
tubo flessibile avrà una versione del modo
alcune versioni avranno alcuni host
su una sorta di mio sequel, quindi aggiornato
alcuni di voi agenti operativi e alcuni
Di loro poi qualcuno ha h in alcuni di
l’host e ha applicato alcuni comandi in
coerentemente con qualche altro posto allora
ce ne sono alcune a metà dell’operazione
pozzi e se non fai qualcosa
finisce per essere il caos completo e
poi in terzo luogo una sorta di ultimo o
separatamente in alcuni sensi che una volta
fatto ma una volta abbiamo fatto il tour di stato del viaggio
eravamo davvero profondamente coinvolti con il
gli sviluppatori che fanno lo stato del viaggio oh
giusto quindi sapevamo che il modello di accesso noi
potrebbe ottimizzare gli indici e così via
ma una volta entrati in scala quando tu
avere centinaia e centinaia di sviluppatori
usando questi archivi dati non lo fai davvero
sapere come stanno i dati in cui stanno salvando
lì non sai come usare il
ambasciate e così via così l’attrezzatura
intorno alla risoluzione dei problemi delle prestazioni
creare nuovi indici e così via
deve essere molto meglio, giusto perché
devono essere in grado di farlo da soli
scala altrimenti non puoi salire a bordo
gli sviluppatori della tua organizzazione a
usa questa roba quindi questo è anche un sito
che spendiamo un sacco di energia sono ma
concentrarsi principalmente su una sorta di operativo
parte su come lavori effettivamente con questo
una sorta di deriva e ce ne sono alcuni
luci famose questa è in realtà una diapositiva
Ho rubato da credo in realtà
guida Microsoft che torna in due
mille dodici hai presentato questi animali domestici
contro l’idea del bestiame questa è una foto di
il coniglio di mia figlia e ha un molto
la vita buona è curata per quello che è
chiamato biscotto e la cosa su questi
cose come quando hai i tuoi animali domestici è
come se ti prendessi cura di loro tutto il tempo anche
quando non sono malati, vai costantemente
e controllali e si scopre che se
sei uno sviluppatore e hai poco
servizio e sai che si va in
lavoro ogni cosa è come sto andando
esegui un dtrace su di esso solo per vedere se lo è
va bene forse forse c’è qualcosa che io
può migliorare ciò che risolve gli sviluppatori
scrivere quello che hai
uno in cui devi entrare in alcuni
Indicare la modalità bestiame in cui le cose
come se avessi molto ragione e ciò che conta
è che ho molto non importa
che so che tutti loro per nome e
se alcuni di loro muoiono ne prenderò un altro
uno perché quello che conta è che io abbia
tutti grandi e stanno vinto la maggior parte dei
per essere sani, naturalmente, quindi e allora
questo significa ok come puoi dire?
se sei in modalità Animali domestici
o nel mondo del bestiame e la morte di
segni ben distinti che si può ordinare di
vedere l’organizzazione in se non sei il
mondo degli animali domestici, quindi lo sviluppatore di alcuni in
la tua organizzazione vai e chiedi a lui
saprebbe tutto del sistema
e se lui non è lì nessuno lo saprebbe
quel tipo di difetto sono tutti i cambiamenti
qualcosa sul blocco nelle macchine
correndo alcuni sai libri di corsa grandi se
sei fortunato a tutti noi, lui solo lo sa
quali comandi eseguire su tutte le cose
nel più eloquente e poi questo è
sicuramente vero è che qualcuno lo sa
come fare questi comandi e lui è
destra immensamente fredda perché è tutto
del mago che conosce tutto l’unix
comandi che risolvono le cose e questo è
come tutte le organizzazioni funzionano così sono carina
certo che sei stato o ci sono due
in una certa misura e questo è dove
deve iniziare quando è piccolo è facile
fare questo genere di cose ma come te
scala si ordina di avere per uscire
questo che vuoi davvero passare a
mondo in cui descrivi quello che vuoi
in realtà non ti importa davvero se
database di archiviazione su un host o il
altro tutto quello che ti interessa è questo
il costo I esiste e ha tre schiavi
e mettilo dove vuoi e questo è
quello che chiamiamo stato d’oro e questo significa
che tutta questa nozione di averli
conosci esperti che conoscono tutto
i comandi è un po ‘come un non-evento
in realtà non voglio nessun esperto tu voglia
tutti i tuoi sviluppatori iniziano a scrivere codice
quello che rende il meglio è meglio e questo
è solo farlo da solo, è come
questo è quello che facciamo così alcuni esempi di
stato d’oro stato d’oro è
Davvero una specie di descrizione di ciò che tu
vuoi in un modo che il sistema stesso possa
rimediare così è un’analogia senza storia
bene se hai un servizio che dici
dire al sistema che ho bisogno di eseguire il loro
servizio ho bisogno di avere cinque istanze
allora il sistema sa che ne hai bisogno di cinque
istanze sapete che l’alternativa è
che entri e dica di distribuire un
istanza sulla macchina X che distribuisce l’istanza
sulla macchina y distribuendo istanze di
macchine conosci il tè o qualcosa del genere
che il dipartimento è se hai specificato
in questo modo ad un sistema allora se uno di
questa macchina scende quindi nel sistema
non ha idea di cosa fare è come bene
la macchina è morta , non lo so
vogliono tre pollici a circa cinque pollici
il tuo statico non ha idea, quindi vuoi
per passare a un’onda modello descrivi cosa
lo fa nel caso in cui qualcosa non funziona
riparate automaticamente se prendete a
guarda questi dal basso
allora puoi vedere che ho appena descritto
resistere alla mia istanza di bisogno X poi il
il sistema dice che ho bisogno di creare un’istanza
va bene ha bisogno di alcuni cluster che quello è
sorta del secondo, quindi eseguo il
grappoli che un cluster deve padroneggiare
database o creare un database master
poi un’altra regola entra a far parte di tutti
i padroni dovrebbero avere schiavi così scriviamo
schiavi e così via se uno schiavo muore a
il calcio di comando ha detto come ah lo schiavo
mancante per questo ne creerò un altro
uno se muore un host, conosci un sacco di
gli schiavi mancheranno da qualche parte il
il sistema può semplicemente entrare e crearlo
potrebbe sembrare un po ‘complicato ma
questo è in realtà un modello abbastanza semplice
che usiamo tutto il tempo che è questo
su come fondamentalmente affrontare questo obiettivo
sistema statale e l’idea è che il
l’operatore non lavora mai direttamente o
qualsiasi cosa lui appena entra e ha cambiato il
modello che descrive ciò che vuole questo è
una sorta di stato obiettivo in alto qui
con la freccia verde e noi costantemente
entrate e soldi quindi qual è l’esatto
stato dopo sistema in qualsiasi punto specificato
mettilo nello stato attuale di noi
fondamentalmente esegui un diff in un certo senso per te
Sappiamo di poter riferire in merito alla deriva sul
diff è in realtà un rapporto sul
deriva sapete quanto è diverso il reale
sistema dal dal dal desiderato
stato
e quindi possiamo fondamentalmente avere regole
quello dice bene basato su questi drift
Avvierò alcuni flussi di lavoro per andare e
rimediare e questo è un continuo
processo che viene eseguito, eseguito ed eseguito
giusto così teniamo costantemente traccia di qualsiasi
tipo di deriva se si tratta di cose semplici
come sai che il sistema operativo è diverso
versioni o o forse sta solo dicendo
quello bene questo ha sempre uno troppo lungo
sai che vogliamo riavviare tutto il nostro
macchine ogni 14 giorni sai che lo faremo
basta andare e farlo e possiamo garantire
che l’intera flotta è fatta e come il
gli sviluppatori questo è solo qualcosa da eseguire
il tempo del soldato è così buono nella sostanza
schema molto molto semplice ma è super
potente quindi un esempio molto semplice di
dove usiamo lo stato obiettivo che effettivamente usiamo
questo in diversi livelli che lo usano al
livello superiore di cui stiamo parlando
database e cluster ma spingono
fino in fondo nell’host così quando
dobbiamo iniziare a eseguire molti più miei
server sequin su ogni host a causa di
questo tipo di chunking per cui dobbiamo fare
ripristinare e in realtà abbiamo un agente su
ogni host e quell’agente e come agenti
sono dovrebbero essere attivi
entità giusta in base alle esigenze dell’agente
questo ciclo di stato obiettivo e va in su
al software di gestione che chiamiamo
ops less e tira quello che è il mio desiderio
stato e poi va e fa locale
fondamentalmente PS Azure togepi s stuff threat
per capire cosa sta effettivamente correndo
all’host e assicura che tutto il
i processi su questo host corrispondono all’oro
affermare che è l’ unica cosa che fa e
poi riporta anche sullo stato attuale tutto
il tempo quindi questo significa che quando noi quando
noi apportiamo una modifica allo stato obiettivo
in qualche modo viene automaticamente coinvolto
tutte le macchine e se stai facendo
un cambiamento e una macchina è giù, va bene
no, è giù per un po ‘di tempo
la rete non funziona, forse è una petizione o
qualunque cosa a un certo punto si presenti e
queste macchine torneranno su e
tirare lo stato e fondamentalmente prenderli
di nuovo dove dovevo
questo è super scalabile per scrivere
perché non abbiamo un processo
deve gestire in qualche modo migliaia di host
attraverso tutti i database questo è un grande
sistema distribuito che attraversa il
tutto così così
esempio molto semplice supponiamo di avere
sorta di due host qui con un maestro e
schiavo nel mio sequel e questa è la base
impostare in questa tabella dicendo che tu
sappi che essere buono dovrebbe essere un maestro
il buon cibo dovrebbe essere uno schiavo
dire che voglio fare uno schiavo da te oceano
sai che puoi immaginare, forse ho fatto
quello con il mio sequel sta eseguendo tutto
tipo di commenti strani ogni web te
aspettare il ritardo di replica per andare
giù e così via, quello che facciamo è
fondamentalmente solo cambiando disco e bastone
poi torniamo indietro o prendiamo un caffè da qualche parte
e che una volta modificato questo stato d’oro
giusto, dobbiamo solo aspettare il largo
meno agenti per tirare fondamentalmente lo stato
questo sta accadendo ASIC in modo che potessero
tiralo dentro in qualsiasi cosa possa arrivare ad uno di
i padroni di casa prima diciamo solo che ottiene
a destra, prima questo dice
così bene che non puoi fare nessun agente siriano
lo sa mentre sono schiavo per
disposizione a un maestro che devo avere
tutti i dati più recenti posso solo garantire
che ho gli ultimi dati se quello
Sto replicando perché è di sola lettura quindi è suo
la faccia è seduta lì ad aspettare ma ma
gli atti del ciclo in realtà avvengono tutti
la via d’uscita sull’host giusto quindi c’è
molto piccola latenza in questo ciclo e
quindi una volta che i dati si propaga in
l’altro ospite dov’è il mio, suppongo
per diventare inattivo non dovrei essere un
padroneggiare significa fondamentalmente che va
in modalità di sola lettura quindi l’altro agente
figure che fuori dicono uh ora quelli che sto
il salvataggio da ora ha smesso di essere un
master è di sola lettura il mio ritardo di replica
è andato a zero divento un maestro e
allora improvvisamente lo fai molto molto
macchine a stati semplici e molto semplici
in esecuzione su due macchine diverse con
molto poco coordinamento e, naturalmente
questo è tutto guidato da una bella interfaccia utente
dove abbiamo tonnellate di flussi di lavoro ovunque
possiamo solo fare questo oh questo è un po ‘
fase uno perché la cosa ideale è di
Certo, perché qualcuno deve fare clic su
e questo è uscire da loro ma ci stiamo muovendo
in questo momento è questa vita
l’emozione, naturalmente, deve avere davvero
molto velocemente, quindi ci stiamo effettivamente muovendo
lontano da fare usando la mia replica segreta
e il mio sequel host viene eseguito nel cluster ref
quindi fondamentalmente abbiamo un processo in testa
di quello che seleziona chi
è il maestro e replica il rap tutto
i diritti utilizzando il protocollo di consenso a
i diversi database e questo significa
che se qualcuno se il database diventa
non disponibile forse anche temporaneo
fa automaticamente l’ elezione principale
in meno di cento millisecondi che
è abbastanza veloce che per la maggior parte
linee che noterebbero di più
corso stanno aumentando nel lac ma noi
raggiungi Weiss e poi è completamente
trasparente, quindi questo è anche un modo di
tipo di spingere questo tipo di oro rimasto
laggiù dicendo che bene ora il rif
consenso Parker è assicurarsi che il tuo
stato d’oro solo per garantire e uno di
loro sono scrivibili e tu gestisci questo così
questa è davvero la fine e penso di esserlo
anche sul nostro tempo, molto molto
veloce di alcuni dei punti salienti di
questo sci benedice o sistema il take-away
ecco, sai una cosa è l’API a
tutto è operativo Pat e
quando tu e te stai facendo una specie di
business online è la parte operativa
super importante, tu davvero ti conosci
sviluppalo tutto il tempo ma anche tu
continua a correre tutto il tempo così tu
spendi molta della tua energia lì e
fare cose facili da usare a
scala è che non è uno sforzo banale noi
ho dedicato seriamente l’ingegneria dei modi
risorse su questo ma questo è davvero
ciò che rende il suo capo è super
cose importanti da fare così finalmente abbiamo avuto
avere un blocco nel caso in cui trovi trovato
questo interessante molto di questa roba
che ho parlato dello schema Lyst
software di migrazione che ci sono tonnellate di
post di blog e quello sul nostro blocco che ho
ne ho scritto uno e una parte sufficiente
della squadra qui ha scritto un mucchio
di loro quindi non li vedrai mai dirci
tutto un mucchio di cose diverse che
lo facciamo e penso che sia così e potremmo
avere il tempo per una sola domanda, forse
parli un po ‘di dove sei
andando ma forse più ne puoi parlare
proprio da dove sta andando così chiaramente
stiamo crescendo, crescendo e crescendo
e l’archiviazione è molto difficile proprio così
in un certo senso questo sistema è tutto del
prima generazione di ciò che abbiamo e io
pensa dove andremo nel futuro
ci sono un sacco di direzioni diverse
una delle cose e la maggior parte è
davvero per garantire che abbiamo il
api giuste che lo rende facile
sviluppare servizi e una delle aree
dove vedo dove possiamo migliorare dove
siamo oggi è come gestisci i dati
c’è una partizione su più dati
centri abbiamo diverse soluzioni oggi
ma penso che possiamo venire meglio
quelli là è definitivamente aree dove voi
voglio un migliore supporto transazionale o
una sorta di isolamento e multiplo di
aggiornamenti quindi questo è anche ciò che siamo
esaminando ma stiamo effettivamente spendendo
un sacco di tempo a pensare a specie
di quali sono le api perfette perché
mentre l’ API della grande tabella è sorta di
molto flessibile a volte ne vuoi un po ‘
astrazioni di alto livello e poi c’è
è sicuramente il cross data center
l’affidabilità è un grande grande obiettivo per
noi nient’altro
ma così la domanda riguarda gli indici come
ci assicuriamo di essere effettivamente aggiornato
coerenza e in realtà non lo facciamo
sono indici secondari e loro
alla fine coerente, quindi non lo facciamo
garantire che siano aggiornati allo stesso
tempo in cui la cella primaria è scritta così
tipico che sarà così sicuramente
prova a farlo, ma se quel database è
giù quel colpo è giù dove l’indice
sta colpendo che sarà solo una specie di
essere messo da parte anche in una sorta di ostacolo
consegnare e applicare più tardi in modo che il
indici secondari I eventuali coerenti
questa è una delle cose che siamo
in realtà cercando in futuro a
pensa di averli fatti
coerente
Please follow and like us: