
[Musica]
così veloce spettacolo di mani che qui ha fatto
qualsiasi lavoro su come un paradigma surrealista
usando AWS lambda o altre funzioni come
servizio giusto e chi ha fatto
qualsiasi lavoro in blockchain o distribuito
il libro mastro va d’ accordo, quindi ho intenzione di farlo
portare entrambi questi argomenti insieme
qualcosa da sapere su distribuito
ledger è sul ciclo di hype Gartner è
al picco in questo momento, ma è così
amico blockchain è nel mezzo del
attraverso la disillusione, quindi stiamo andando
calci mentre è basso e parlare
basta fare il registro distribuito senza
anche la lista dei server blockchain è presente in a
posizione abbastanza buona sul ciclo di hype
quindi questo potrebbe essere il più buzzword di
tutti i discorsi oggi mi chiamo Chris
Anderson sono il direttore del prodotto di
fauna e whew il mio background è come a
co-fondatore di Couchbase e tecnico
contributore a couchdb patchy così il
filo comune attraverso tutto ciò che è
costruire tecnologie che conosci
super avvincente facile e divertente per
sviluppatori con cui essere più produttivi
Sono Jake Reyes su Twitter e tu puoi
entrare in contatto con me lì o email me a
chris at fauna comm whoo so my screen is
non contrazioni così la blockchain è a
la struttura dei dati è essenzialmente un collegamento
elenca dove ogni elemento della lista ha un
puntatore all’elemento precedente ed è
non solo un puntatore con cui è un puntatore
una firma crittografica quindi cosa
significa che è per ogni dato capo di quello
catena puoi convalidare quella storia
tutto allineato
e lavora insieme quindi non lo è
particolarmente utile in sé e per sé
eccetto per convalidare, conosci il
storia del set di dati ora ha blockchain
stato combinato con altre cose
prova del lavoro specifico da realizzare
litigare per chi deciderà su questo
prossimo capo della catena in quel tipo di
processo che significa che quello il tutto
la struttura dei dati diventa immutabile perché
una volta aggiunti alcuni collegamenti a
davanti a qualsiasi legame profondo le possibilità di esso
cambiare è molto sottile quindi la blockchain
in realtà non sai prenderci molto
salvo alcune garanzie circa
immutabilità se si volesse costruire un
libro mastro distribuito sai che potresti essere
in grado di farcela a farlo senza
la blockchain e quindi spero di no
conosci te, ma io penso anche io
che il Bitcoin e la blockchain
il mondo potrebbe essere più fantasioso è questi
le cose sembrano solo i soldi
siamo abituati, ma questo è su un
lato in entrambi i casi vediamo cosa possiamo
fare senza la blockchain e il
l’hashtag per il discorso di oggi è no
blockchain quindi se vuoi, se vuoi
twittare su questo poi possiamo tutti noi
tutti possono unirsi al ciclo di hype insieme così
un libro mastro sostiene una molto semplice
concetto di contabilità è solo l’idea di
una tabella di transazioni che conosci da un
account a un altro account e banchieri
può guardare oltre il libro mastro per vedere chi ha
quanti soldi così il registro è un vecchio
la tecnologia è una specie di
ragioni per cui gli umani hanno inventato la scrittura così
non dovrebbe essere troppo sorprendente ma
la domanda è come sai come puoi
arriviamo da lì a un distribuito
libro mastro
senza una blockchain, quindi di cosa abbiamo bisogno
abbiamo bisogno di un consenso abbiamo bisogno di tutto il
siti di replica del libro mastro per concordare
sugli stessi dati e se abbiamo quello
allora abbiamo un libro mastro distribuito
non c’è niente nella definizione di a
ledger distribuito che dice che deve
essere immutabile non c’è nulla che dice
deve usare una blockchain di cui ha bisogno
per essere lo stesso saldo del conto
i siti di replica quindi con Bitcoin
tutti quelli che hanno una copia di te conoscono il
il database completo Bitcoin ha il libro mastro
nell’architettura di cui parlerò
su chiunque stia eseguendo un database
cluster ha il libro mastro così distribuito
ledger penso che non gli piaccia
le fotografie sono solo troppi dati ma
un libro mastro distribuito sarà di nuovo dove
possiamo tutti essere d’accordo sulla stessa colonna di
numeri non importa che tu sappia quale sito
siamo a così se vogliamo aggiungere un
transazione in un posto che dobbiamo sapere
per certo che sta andando appare in tutta la
gli altri posti allo stesso tempo così
Parlerò di come costruire questo
libro mastro distribuito al di fuori del
mondo blockchain e l’idea che esso
dammi che sai che potrebbe essere gentile
di ovvio a questo punto perché tu hai
mi ha parlato allo stand ma questo
libro mastro che abbiamo guardato solo la pianura
semplice libro mastro sembra un normale
applicazione di database sembra proprio
una tabella di database e si scopre che
quando vai a guardare come le persone
implementato Ledger’s sai per il
storia dei computer fino ad ora loro usano
il database è lo strumento giusto per
lavoro così la mia idea è come se tu avessi
un database distribuito forse a
libro mastro distribuito c’è solo un
applicazione di database può essere il libro mastro
di per sé non ha bisogno di preoccuparsi
il meccanismo di distribuzione quindi parleremo
di
come possiamo ottenere ciò e in particolare
nel contesto di fauna DB quindi il nostro logo
è un colibrì, ma mi piace guardare
veri colibrì quindi questo lo sai
solo una possibilità per tutti noi di essere felici
sulla gloria della natura e relax e
guarda ora colibrì come stiamo andando
per costruire questo registro distribuito in cima
di un database distribuito bene tipo di
prima di andare effettivamente prima di entrare
così che quello che ho fatto è che ho pensato questo
è un’idea super facile come se fosse solo un
applicazione di database usando sai
domande per mantenere i saldi dei conti
Farò una demo e così ho fatto un animale domestico
archivia l’ applicazione perché sai se
farai tutte le transazioni
inizia con un negozio di animali e questo
dovrebbe essere un video della demo ma cosa
e cosa vedresti se il video è
giocare è essenzialmente c’è più
i giocatori e tutti hanno un account
saldi e puoi mettere un oggetto per
vendita e potresti comprare un oggetto e te
sapere quando si acquista un oggetto i soldi vanno
da quel giocatore dall’account degli acquirenti
al cliente dei venditori e quando tu
sai provare a comprare un oggetto e tu no
avere abbastanza soldi nel tuo account allora
si ottiene un errore di fondi insufficiente quindi
è roba di base molto semplice, solo gentile
di un e-commerce o di un’applicazione bancaria
e il tavolo sottostante quello
lo supporta o il sottostante che conosci
il database sembra così è uno che sai
ecco i prezzi degli acquisti
e l’acquirente e il venditore siamo
elencato nella tabella in modo da poter guardare
questo libro mastro distribuito e sfogliarlo
come sai come qualsiasi altro dato
questa demo è una specie di giocattolo intendo io
lo ha costruito in un fine settimana non è stato progettato
in realtà essere completamente distribuito
applicazione ledger è distribuito ma
alcuni dei problemi di sicurezza non lo sono
completamente implementato
quello che faremo in questo discorso è andare a guardare
su come prenderesti quella demo e
renderlo serio
quindi la prima cosa che vogliamo fare è
dare un’occhiata e capire come DB fana
implementa il consenso globale e cosa
questo significa per un libro mastro distribuito
applicazione quindi andremo a guardare
la query di transazione effettiva e il
codice che implementa il conto corrente
equilibri e crediti in movimento da uno
conto ad un altro e cambiando il
proprietà di un oggetto e quindi è tutto
eseguire in una singola transazione che ottiene
inviato al cluster DB fana e
corre e restituisce un risultato e noi prenderemo
un’occhiata a quel codice e poi a qualcosa del genere
una volta che hai capito il globale
coerenza e il modo in cui abbiamo
implementato la transazione allora lo farai
probabilmente hanno alcune domande di sicurezza
perché se hai a che fare con il reale
i soldi ci saranno persone che lo sono
motivato a fare la tua domanda
cose diverse da ciò che speravi
sarebbe quindi mi parlare di sicurezza
modello come applicazione e livello oggetto
modello di sicurezza ce n’è tantissimo
preoccupazioni sulla crittografia a riposo o in corso
il filo forse posso rispondere alle domande
più avanti, ma questa parte del discorso
parlerà del modello di sicurezza così com’è
implementato nell’oggetto del database
livello quindi torna a questa immagine di globale
consenso se quello che stiamo cercando di fare è
mantenere questi Ledger in sincronia
quindi l’architettura che sono
suggerendo è che implementiamo ogni Ledger
come un cluster DB fana quindi questo può essere il
database nel nostro linguaggio dei diagrammi
per oggi e cosa vedrà questo
come in pratica è così che ne hai uno
un gruppo di membri del libro mastro e tu
sa forse questo è un buon momento ero un
Poco distratto prima di quello che volevo
per dire è che se non ti fidi di
persone che stai cercando di eseguire a
libro mastro distribuito con
non farlo in questo modo per quando
sai chi sono i tuoi controparti sono così
come se tu avessi un gruppo di banche
lavoriamo tutti insieme per mantenere un
transazione Clearing House o se tu avessi
sai un po ‘come essenzialmente nessuno
gruppo di attori dove potresti farti sapere
identificarli e affrontarli tramite il
sistema legale invece di un qualche tipo di te
conosci una cosa blockchain quindi i membri
di questo consorzio di voi conoscete membri
del mercato ognuno corre alto
disponibilità del cluster di DB fauna in modo che
cluster può essere più macchine e questo
potrebbe anche essere in più siti fisici
stesso ma da un punto di vista logico
quello di cui stiamo parlando è ciascun membro
del libro mastro ha una copia del libro mastro
in esecuzione in un database e possono
interagire con esso utilizzando query di database
ora all’interno di ognuno di questi cluster
che contiene la copia completa dei dati
impostato ce ne sono probabilmente più di uno
macchina in modo da poter avere alto
disponibilità che Fano DB gestirà
partizionare i dati su tutto il
macchine disponibili e aggiunta e
rimozione di macchine che si replicano tra
macchine e mantenendo tutto questo cluster
in sincrono con gli altri cluster, quindi se
le tue operazioni DevOps persona potresti
mi chiedo come dovrei fare a entrare
stand uno di questi cluster è a
molto semplice operativamente avete
database che viene consegnato come un barattolo
e lo lanci nella confezione giusta
per il tuo ambiente, se è così
contenitori o file Deb o rpm, quindi è così
tipo di architettura fisica del
cluster che sosterrà il nostro
registro aggiornato ora come facciamo
coerenza attraverso quello fisico
architettura c’è un protocollo chiamato
Calvin che è venuto fuori dalla ricerca di
Yale
e quello che fa fornisce acido
transazioni creando una distribuzione
registrati così come nello stesso modo
la blockchain è piuttosto un log distribuito
piuttosto che far rispettare quella semantica
via tramite quel tipo di tecnologia che usiamo
il protocollo calven che usa il nostro
chiunque abbia familiarità con zattera o Paxos così
questi sono il consenso distribuito
protocolli che consentono un gruppo di macchine
essere d’accordo su qualcosa con il
numero minimo di viaggi andata e ritorno quindi usiamo
zattera per decidere quale sarà il prossimo segmento di registro
c’è qualche salsa segreta?
sai assicurarti che il
le transazioni sono ordinate all’interno del registro
in un modo che tu sai ha senso
secondo il transazionale
requisiti quindi se due persone si presentano
transazioni per toccare lo stesso tasto su
allo stesso tempo, il sistema ordinerà
li in un modo o nell’altro ma una volta
è ordinato, quindi sarà stabile e
serializzabile questo è lo stesso tipo di
cosa che succede dentro la tua
database relazionali che sei
familiarità con
quindi questo ceppo di Kalvin che ha il
le transazioni in esso sono dove il commit
in realtà si verifica così proprio come quando tu
impegnarsi a Postgres è una voce scritta
nel registro di destra e se c’era
un arresto anomalo del server che potrebbe essere ripristinato da
prima di tutto entra nello stesso modo in
il registro di calven che conosci precede il
archiviazione fisica degli indici di archiviazione ecc
tutto ciò che accade al database
lo strato è deterministico basato sul
transazioni che stato accettato nella
log in modo da rendere il consenso relativamente
economico e focalizzato sul throughput c’è
un modello alternativo sul mercato
per consenso distribuito se lo hai
sentito parlare di Google spanner usano a
protocollo diverso su cui si basa
finestre temporali e guardando a destra
effetti della transazione dopo di esso
gioca e riprova le cose quando loro
conflitto così
e pratica ciò che significa è quello
sotto discussione stile di Google spanner
il sistema rallenta le letture mentre
per i DB di fauna in genere le letture possono essere
fatto da istantanee nello scoordinato
modo ma sotto contenimento rallenterebbe
giù sotto scrive quindi è diverso
trade-off penso che la fauna DB
il trade-off è più adatto per
applicazioni interattive dal più
le applicazioni sono per lo più leggere così se
ti interessa saperne di più
il protocollo Calvin c’è questo blog
pubblicare sul nostro sito Web che confronta
chiave contro Calvin e passa attraverso a
molti dei trade-off e tu conosci il tipo
di trova ci sono gli scenari al
limitare dove uno di loro sarebbe migliore
rispetto agli altri in un modo più chiaro e poi
come si applicano tali trade-off in fase di esecuzione
quindi è così che forse capiamo
un po ‘ come offriamo questo globale
coerenza ora che lo comprendiamo
puoi avere transazioni acide a livello globale
scala bene su cosa stiamo andando a correre
per fare il lavoro così questo è il
codice di transazione effettivo è destinato a
sembra complicato, spero che i tuoi occhi siano brillanti
un po ‘ entreremo e guarderemo
su di esso una riga alla volta dove è possibile
effettivamente vedere che il linguaggio di query
sembra la storia che sto raccontando
qui con questo è solo per te
capire che la logica complessa di
come può essere una transazione ricca e reale
scritto come una singola query e inviato
come un cluster finale in cui si impegnerà
atomicamente quindi passerò prima di
tutti in grassetto le linee che contano fino a
raccontando la storia di cosa sta succedendo e
poi andrò attraverso e ti mostri cosa
lo fanno così questo primo è solo facendo
certo che l’oggetto è in vendita non possiamo
prova a comprare qualcosa che non è sul
per la lista di vendita proprio qui proprio non ci siamo
vuoi che tu lo vendi a te stesso, invece
di vendere un oggetto a te stesso
in questo
lo rimuoviamo dalla vendita, quindi quelli sono
solo un paio di precondizioni da soddisfare
ecco da dove abbiamo effettivamente rimosso
vendita non devi preoccuparti troppo
su questo tranne che per vedere che siamo
semplicemente impostando un flag di applicazione qui
questo ultimo bit è l’ultimo
controllo preliminare che stiamo facendo
Assicurarsi che l’acquirente ha abbastanza soldi in
ci sono abbastanza crediti e il loro account
per acquistare l’oggetto se non lo fanno allora
otterranno un errore di fondi insufficiente
quindi la seconda metà della query è dove
la transazione è in realtà scritta a
gli oggetti qui stiamo creando a
record di acquisto è solo essenzialmente
conosci la ricevuta di quel particolare
transazione con l’acquirente o il venditore
il prezzo e l’articolo in modo che tu possa guardare
nella storia di tutti gli acquisti
attraverso il tuo sistema nello stesso blocco
quindi stiamo anche aggiornando l’acquirente di
sottraendo il prezzo dell’articolo dal loro
bilanciamento e aggiornamento del venditore da parte di
aggiungendo il prezzo dell’articolo al loro saldo
e finalmente contrassegniamo l’oggetto con
un nuovo proprietario
quindi per riassumere tutto ciò che stiamo assicurando
che l’oggetto è in vendita stiamo facendo
certo che l’acquirente non è il venditore e
ci stiamo assicurando che l’acquirente abbia abbastanza
soldi, allora stiamo scrivendo un acquisto
registra e deduciamo dal
gli acquirenti si equilibrano aggiungendo al venditore
bilanciare e aggiornare il proprietario dell’articolo e
tutto ciò che commette atomicamente, quindi se tu
aveva un acquirente molto occupato e hanno presentato
conosci più ordini di acquisto e
conosci contemporaneamente alcuni di quelli
avrebbe successo, ma solo fino al
il saldo del conto sarebbe lo sai
dedotto sotto zero dal prossimo così
non c’è mai una capacità di spendere il
i soldi prima che il sistema si è accorto che
l’hai speso è sempre coerente
sono lì se vai a seguire il link
per github puoi
il resto dell’applicazione c’è il
transazione o piuttosto la query che
elenca tutti gli articoli in vendita
c’è la query che conosci le liste
per ogni giocatore quali oggetti hanno
e quanti soldi ci sono nel loro bilancio
quindi è tutto un database molto standard
interazioni su cui si interroga il database e
dipingi roba per l’interfaccia utente così qui lo farà
guarda un esempio di come la query
la lingua effettivamente guarda da vicino così
quello che sta succedendo qui è in realtà a
generatore di query questo testo non viene spedito a
il server questo accade in fase di esecuzione e
crea un albero di sintassi astratto e
l’albero sintattico astratto a cui erano spediti
il server, quindi cosa significa questo in
questo caso particolare la lingua madre
è JavaScript ma puoi scrivere lo stesso
query in Ruby e avrà lo stesso
albero di sintassi astratto e darti il
stesso risultato quindi abbiamo clienti
disponibile in Java JavaScript Scala che
è ciò che è il server di database
implementato in Ruby c-sharp Python go
e Swift e se hai bisogno di interrogare il
database da una lingua che noi non conosciamo
supportare l’interfaccia filo è JSON e
HTTP quindi dovresti essere in grado di inviare
domande così anche per riassumere
questa sezione sulle transazioni acide I
penso sia importante notare che io ho
parlato molto di finanziaria
servizi e la ragione per cui sono stato
parlarne è perché
l’industria è stato lasciato fuori della no sequel
rivoluziona tutti questi database scalabili
è uscito ma non avevano
supporto alle transazioni e così finanziario
i servizi erano bloccati, sai, mentre correvano
loro Oracle e loro Postgres ma
ora che abbiamo transazioni acide a
scala globale i servizi finanziari
aziende che volevano esplorare queste nuove
database su larga scala, ma l’ho trovato
non avevano le caratteristiche per incontrarsi
i requisiti tutto ad un tratto hanno
questa opzione
così dalla mia prospettiva nel
mercato sapendo che ha funzionato
attraverso la prima ondata di non sequel e
quindi vedere quali diversi clienti e
gli utenti stanno facendo ora le aziende sono molte
più pronti che capiscono come
valutare la tecnologia del database come a voi
sappi provare due o tre alternative
e capire quale è la soluzione migliore
e stanno usando quella comprensione
essenzialmente per valutare fana DB contro
sai che non c’è molto altro contro
Postgres o Oracle o Google spanner
che sai che sei bloccato
in esecuzione all’interno del cloud di Google ma così
mettiamo da parte i servizi finanziari per
ora perché trovo anche quella scrittura
applicazioni di database utilizzando eventualmente
database coerenti possono essere un mal di testa
potresti scrivere qualcosa nel
database e poi tornare a leggerlo e
non è ancora lì e quindi significa
Pratica tutto il tuo codice che tocchi mai
un database alla fine coerente come
dynamo DB o cassandra deve essere pronto
per quello scenario peggiore e ottieni
una tonnellata di complessità del codice e lavori di riparazione
e i tuoi sviluppatori sono un po ‘di più
cercando di indovinare il database di
in realtà stanno scrivendo il
applicazione quindi se si utilizza un coerente
database che conosci come Postgres o a
font ODB quei problemi vanno via e tu
non devi indovinare cosa c’è nel
database che sei in grado di scrivere
domande e ottenere le risposte previste
ora sai che sono solo le leggi di
fisica che per noi per commettere a
Transazione di Kalvin su più dati
centra la velocità della luce tra quelli
i data center iniziano a essere importanti e così
certo come è possibile avere più basso
giusto Layton vede con un alla fine
database coerente ma non ne sono sicuro
che rende effettivamente le tue applicazioni
più veloce perché sai che stai scrivendo
ma c’è questa nuvola di incertezza
e poi devi sempre controllare
quell’incertezza quando stai facendo il tuo
legge e così può bilanciare quello
che anche per pagare in un piccolo viaggio di andata e ritorno
il costo del tempo per scrivere tutto il
semplificazione delle letture e a
semplificazione dello sviluppo contro di esso
potrebbe significare che conosci un’applicazione più semplice
e potenzialmente migliore esperienza utente
quindi abbiamo questa idea mi scuso su come
costruire un libro mastro distribuito usando il
query di database e consenso globale
e le transazioni di beni ma non l’ho fatto
ha affrontato il modello di sicurezza a tutti così
questo è un tipo che sai dare
la sensazione che tu sappia il
approccio a come eviterai
privilegiare l’escalation e ottenere alcuni dei
semantica di cui le persone apprezzano
la blockchain senza averti saputo
alcuni degli svantaggi così tu lo sai
così la blockchain è immutabile
tranne quando non lo facciamo e nella stessa cosa
come vuoi sapere cosa sei tu
voglio sapere che il tuo codice di transazione
puoi solo sapere scrivere nuove transazioni
e non cambierà la storia ma
potresti avere il codice amministratore necessario
cambia la cronologia così prendiamo un layered
approccio dove essenzialmente abbiamo te
conoscere il codice utente nel browser
codice dell’applicazione in esecuzione in lambda ma
il codice dell’applicazione ha il minimo
privilegi per parlare al database che
ha il suo che conosci definito dall’utente
funzioni che hanno il minimo
privilegi di nuovo per parlare con il reale
parti di memoria del database così è
molto tu non ci sono percorsi per a
escalation dei privilegi che consentirebbe a
utente non fidato per eseguire le transazioni
non dovrebbero, quindi parlerò
su quelli a sua volta e come sai come
gli strati lavorano insieme così Lambda è un
funziona come un fornitore di servizi
molti di loro per gli scopi di questo discorso
Là
essenzialmente intercambiabile è solo un
Funzione JavaScript o in un’altra
linguaggio che viene eseguito in risposta all’utente
eventi così questo potrebbe essere lo sai
autenticazione degli utenti su una richiesta HTTP
e eseguendo una funzione che prende il via
transazione ma è anche come almeno
in pratica quando parlo con persone che lo fanno
un sacco di roba con AWS lambda sono
tipo di usarlo per leggero
Riduci mappa
quindi magari elaborando i file ogni volta
sono caricati in s3 a cavalcioni
entrambi quei mondi nel nostro caso siamo
utilizzandolo per attivare il codice interattivo
le transazioni nel database, quindi cosa?
avremo è una funzione JavaScript che
usa il client DB fana per inviare a
query sembra molto semplice così
query complessa che abbiamo visto è stato
tutta la faccenda era tutto
logica attuale che succederà ma
non vogliamo che i nostri lambda siano in grado di farlo
eseguire quella logica, perché piace cosa se loro
ne ha eseguito solo una parte, cosa hai avuto a
cattivo programmatore e la tua organizzazione e
hanno scritto una funzione per la vendita di oggetti
giocatori senza dedurre dal loro
giusto equilibrio poi tutto ad un tratto si
potrebbe averti fatto sapere pagare te stesso
quei soldi o qualcosa così potrebbe essere
errori molto costosi ma invece di
avere una chiamata lambda
quella funzione complessa che abbiamo visto abbiamo a
chiamare una funzione predefinita, quindi questo è
lo sai simile al database relazionale
L’API è dove puoi registrare una query
e l’hanno chiamato c’è essenzialmente
frammenti di query che si registra con
il database e altre query possono chiamare
in loro e possono avere diversi
privilegia quindi la funzione che è
chiamato può solo fa ciò che fa dentro
la divisione con l’ amministratore abase lo sa
quello che fa ed è l’unica cosa
quel lambda può chiamare la funzione stessa
IT di interni sarà simile che
transazione complessa che abbiamo visto
quindi è facile da chiamare ma non da dare
hai ragione l’ hai detto solo un po ‘
argomenti e fa tutto il lavoro così
come un trigger in un database relazionale
e ancora quella funzione non ha
accesso amministratore quindi qualcuno
la creazione di quell’innesco non sarebbe possibile
andare e azzerare conto di tutti
equilibrio sarebbero solo in grado di te
sapere interagire con le classi che
dovrebbero ora essere l’ultimo tipo di
caratteristica importante per la sostituzione del
blockchain in questa applicazione è fana
Dati temporali incorporati del DB che possono essere
usato qui per assicurarci che capiamo
quale sia la storia degli oggetti quale essa
può anche essere usato in applicazioni per
auditing o per quelle volte in cui tu
Devo cambiare il passato, quindi cosa?
architettura di cui stiamo parlando per a
registro distribuito senza server
applicazione le funzioni che sono
toccando i dati e le tabelle lo faranno
correre con privilegi che possono solo parlare
per il momento con cui non possono scherzare
il passato e anche loro non possono cambiare il
schema che non vuoi che siano in grado di
cambiare le regole in modo che queste funzioni con
privilegi limitati ma nella vita reale
a volte le cose accadono come un utente
potrebbe colpire uno zero in più e trasferirti
conosci ventimila dollari invece di
duemila e rotolando che torna su a
l’applicazione basata su blockchain può essere molto
costoso perché la storia è
in realtà immutabile e devi
inventare una transazione di compensazione
quello compenserebbe per quello vecchio e
probabilmente non sono solo quelli diciotto
mille dollari è probabilmente la tassa
implicazioni per lo sai il dieci
ore prima che il bug venisse catturato o
qualunque sia, è meglio avere un
client amministrativo con aggiuntivo
privilegi che possono tornare nel
storia e dire che non intendevo davvero
20.000 sono in duemila e quando tu
cambiarlo lì poi ovviamente tutto il
domande che stai facendo sapere
cose come le tasse, ecc da che sono
andando a correre su questa storia riveduta
invece di sul sai invece che su
i dati errati i dati temporali
supportarlo dovrebbe seguire doodle
memorizzare come 30 giorni di storia che si potrebbe
alzalo o puoi abbassarlo ma
non supporta solo questo tipo di
interrogare le domande ma anche supportare il
capacità di leggere da istantanee in modo che
puoi leggere da una versione coerente
del database senza attendere
in volo scrive per completare così è
l’architettura di questo distribuito
applicazione di registro su una distribuzione
database e sono felice di rispondere alle domande
ora sicuro che la domanda riguardi il
teorema di cappuccio e come se avessimo la priorità
coerenza rispetto alla disponibilità che conosci
cosa fa cosa vuol dire quando?
c’è un problema di disponibilità così dentro
pratica, noi sappiamo che è raro
perché non abbiamo bisogno di disponibilità al 100%
di tutte le macchine nel cluster noi
solo bisogno di mantenere un quorum così come
Finché manterremo il quorum, allora il
registro delle transazioni può continuare ad essere
elaborati e abbiamo uptime ma se noi
andare sotto il quorum, quindi non possiamo
elaborare le transazioni a tutte le domande così
sì, otteniamo la coerenza che ottieni
sai che le persone usano in due fasi
Impegna perché usiamo il protocollo raft per
ciò che è un’ottimizzazione su come
un commit a due fasi o uno stile paxos
algoritmo di consenso e c’è un grande
sito web penso che se impari google zattera
sarà una macchina statale che ti permette
vedere esattamente come il protocollo della zattera
viene eseguito su un registro e noi essenzialmente
usa lo stesso protocollo quindi è come
commit a due fasi ma con alcuni
ottimizzazioni per ridurre
intorno ai viaggi e dove si inserisce nel nostro
l’architettura è come decidiamo il
l’ordine di quel registro nel registro di destra
per Calvin una volta che l’ ordine dei registri è stabile
e congelato quindi tutto ciò che accade
sui nodi del database è deterministico
quindi tutto ciò che dobbiamo fare è concordare il registro
ordinando e quindi diventiamo serializzabili
coerenza da lì ho un paio
di domande da parte mia perché dovrei usare
telefono in quel modo qual è il caso d’uso
per essere finalmente certi specifici
è la coerenza per i vari
ragioni per cui ho delineato alcune applicazioni
alcuni casi d’uso richiedono coerenza in
per alcuni casi d’ uso con cui aiuta
produttività ma penso che la vera ragione
da usare non conosco almeno un database
come sviluppatore che valuta il nuovo
tecnologie su base regolare come noi
piace pensare che siamo razionali e
che stiamo adottando un approccio misurato
tutto il tempo, ma penso che probabilmente
quello che sta veramente succedendo è che ci piace
un gioco high-stakes di scegliere ciò che è
il percorso a basso attrito e così se
qualcosa ti dà attrito anche per un
motivo non correlato come probabilmente lo sei tu
intenzione di buttarlo fuori e provare qualcosa
altro perché piace oh l’attrito lì
deve essere un indicatore ci sarà
attrito in altri posti così con quello
la filosofia in testa ci ha provato molto duramente
a Fawna per rendere le rampe facili così
dovresti essere in grado di andare a Fano comm
e iscriviti e stai usando l’api per
libero in pochi minuti se rimane facile
poi si sa non ci sarà l’attrito
e non avrai nemmeno bisogno di buoni motivi per
usalo una domanda un po ‘
accanto a quello che ha scoperto rispetto
a Cassandra certo che fauna e Cassandra
avere caratteristiche di scalabilità simili
lo sai una specie di rozza dimensione di
cluster che ci aspettiamo che le persone eseguano
circa lo stesso è la latenza di lettura
simile
e serve come la quantità di
I / O aggregato che un determinato nodo può fare
simile quando inizi a fare comparativo
punti di riferimento sono anche molto vicini
alcuni carichi di lavoro abbiamo un throughput
vantaggio perché stiamo eseguendo il batching
transazioni insieme in un modo che è
più facile da gestire per i sistemi di I / O
ma negli altri carichi di lavoro sei con Fana
starai aspettando i tempi di andata e ritorno
e coerenti si impegna a non farlo
Bisogna aspettare con Cassandra
ovviamente poi con Cassandra sul
dall’altra parte dovresti andare pulito
riempire di leggere e avere un sacco di
codice aggiuntivo per gestire i loro casi e
così Sona ha trovato che per essere quanto più coerenti
e partizione e involucro ne hanno un po ‘di più
di come la disponibilità è interessata allora
il partizionamento ora trovato alla base
coerente e diviso così puoi
dì un po ‘di più su come è la disponibilità
li affliggono forse quello elaborato
scrivi questa domanda si, intendo che lo ero
parlando un po ‘di
partizionamento in modo tale da consentirci effettivamente
dividere il log calvo in più di
un registro in modo da sapere se il file
il rendimento sul registro calven è più
che una singola macchina può gestire poi
puoi diffonderlo attraverso le macchine
ma tipicamente starai meglio
performance con circa tre Kalvin
partizioni è attraverso un open source
versione no non siamo open source
siamo implementati in Scala tutti i nostri
i driver sono open source ma la consegna
è un file jar e il generatore di query
sembra consideri la semplificazione del
API con un DSL che viene compilato con un asterisco
quindi la domanda riguarda la query
costruttore e tu sai se lo abbiamo
considerate semplici API così noi
considerato che abbiamo seriamente considerato
come una API della folla in stile riposo ed è dentro
c’è ma è uh appena scopre che
il punto debole
per un database come questo è necessario inviare un
query complessa, quindi qualcosa come carico
è aumentato da un indice di un particolare
intervallo e quindi loop su tutte quelle righe
all’interno della transazione e caricare
documenti basati su quelle file da alcuni
di questi documenti sono condizionali
logica che forse carica altri dati e
quindi aggiorna alcuni di loro in base a tutti
quello e quello commettono atomicamente così
solo farlo sul resto non fa
molto senso è più come se ti conoscessi
vuoi scrivere alcune delle tue applicazioni
logico nel linguaggio di query e
spingerlo al cluster una domanda in meno
blocco cambiare il significato delle nostre letture pubbliche
tutti possono iscriversi a una rete
il dibattito finale ha anche permesso di costruire tale
sistemi aperti sicuri quindi la domanda è
circa potresti usare questo tipo di sistema
al posto della blockchain di Bitcoin e
la risposta è no, non è quello che è
per se hai bisogno di eseguire questo tipo di
applicazioni tra le parti non fidate
allora hai bisogno di sapere un modo
conosci la prova del lavoro o altro
facendo in modo che la gente non può non può gioco
il sistema con quello di cui stiamo parlando
un consorzio di mercato di fiducia
i partecipanti ci sono sai che non l’ho fatto
andare in quella parte dell’architettura
ma ci sono posti nel sistema in cui
potresti mettere i monitor su
registro delle transazioni e assicurarsi che no
uno sai che stai cercando di confondere il sistema
o qualcosa del genere, ma sai in genere se
qualcuno avrebbe saputo chi era
facendolo e potresti parlare con loro così
quello è un caso d’uso diverso
fondamentalmente va bene
qualsiasi altra domanda dalla stanza sì così
la domanda riguarda il TTL
tempo di vivere la caratteristica che ci consente
in realtà ho due serie di TTL così io
abbiamo parlato di come manteniamo la cronologia degli oggetti
in giro per 30 giorni per impostazione predefinita e quindi
puliscilo ma abbiamo anche il
gli oggetti stessi possono cancellare automaticamente dopo
una certa quantità di tempo così è
davvero utile per casi d’ uso come il PIL
noi
conosci il diritto di cancellare la terra
qualunque sia così particolarmente intermedio
i processori potrebbero voler avere un sacco di
i loro dati usano TTL
in modo che quando hanno finito di elaborarlo
si ripulisce è utile lo sai
non solo per gdpr ma anche per te lo sai
Casi di utilizzo della cache o qualsiasi cosa in cui tu
vuoi che il database a te non sappia solo
crescere continuamente nel tempo, sicuro che il
elenco dei clienti alla maggior parte di loro non posso
parlare di abbiamo solo lanciato il cloud
prodotto all’inizio di quest’anno e lo saremo
lancio di Enterprise on-premise
versione in primavera al momento
NVIDIA sta gestendo un grande social network
in cima al database di fauna selvatica e hanno avuto zero
tempi di inattività quindi ci piace anche Starbucks
Parla molto spesso alle conferenze
sulla costa occidentale di usarci per
roba di carte di pagamento e programmi fedeltà
quindi essenzialmente conosci i punti finanziari
attraverso tutte le loro posizioni di vendita al dettaglio
a parte questo, tu sai molto
le innovative banche americane che conosci
avere programmi in corso per valutare nuovi
tecnologie quindi siamo in quello spazio per
sicuro grazie mille
[Applausi]
così veloce spettacolo di mani che qui ha fatto
qualsiasi lavoro su come un paradigma surrealista
usando AWS lambda o altre funzioni come
servizio giusto e chi ha fatto
qualsiasi lavoro in blockchain o distribuito
il libro mastro va d’ accordo, quindi ho intenzione di farlo
portare entrambi questi argomenti insieme
qualcosa da sapere su distribuito
ledger è sul ciclo di hype Gartner è
al picco in questo momento, ma è così
amico blockchain è nel mezzo del
attraverso la disillusione, quindi stiamo andando
calci mentre è basso e parlare
basta fare il registro distribuito senza
anche la lista dei server blockchain è presente in a
posizione abbastanza buona sul ciclo di hype
quindi questo potrebbe essere il più buzzword di
tutti i discorsi oggi mi chiamo Chris
Anderson sono il direttore del prodotto di
fauna e whew il mio background è come a
co-fondatore di Couchbase e tecnico
contributore a couchdb patchy così il
filo comune attraverso tutto ciò che è
costruire tecnologie che conosci
super avvincente facile e divertente per
sviluppatori con cui essere più produttivi
Sono Jake Reyes su Twitter e tu puoi
entrare in contatto con me lì o email me a
chris at fauna comm whoo so my screen is
non contrazioni così la blockchain è a
la struttura dei dati è essenzialmente un collegamento
elenca dove ogni elemento della lista ha un
puntatore all’elemento precedente ed è
non solo un puntatore con cui è un puntatore
una firma crittografica quindi cosa
significa che è per ogni dato capo di quello
catena puoi convalidare quella storia
tutto allineato
e lavora insieme quindi non lo è
particolarmente utile in sé e per sé
eccetto per convalidare, conosci il
storia del set di dati ora ha blockchain
stato combinato con altre cose
prova del lavoro specifico da realizzare
litigare per chi deciderà su questo
prossimo capo della catena in quel tipo di
processo che significa che quello il tutto
la struttura dei dati diventa immutabile perché
una volta aggiunti alcuni collegamenti a
davanti a qualsiasi legame profondo le possibilità di esso
cambiare è molto sottile quindi la blockchain
in realtà non sai prenderci molto
salvo alcune garanzie circa
immutabilità se si volesse costruire un
libro mastro distribuito sai che potresti essere
in grado di farcela a farlo senza
la blockchain e quindi spero di no
conosci te, ma io penso anche io
che il Bitcoin e la blockchain
il mondo potrebbe essere più fantasioso è questi
le cose sembrano solo i soldi
siamo abituati, ma questo è su un
lato in entrambi i casi vediamo cosa possiamo
fare senza la blockchain e il
l’hashtag per il discorso di oggi è no
blockchain quindi se vuoi, se vuoi
twittare su questo poi possiamo tutti noi
tutti possono unirsi al ciclo di hype insieme così
un libro mastro sostiene una molto semplice
concetto di contabilità è solo l’idea di
una tabella di transazioni che conosci da un
account a un altro account e banchieri
può guardare oltre il libro mastro per vedere chi ha
quanti soldi così il registro è un vecchio
la tecnologia è una specie di
ragioni per cui gli umani hanno inventato la scrittura così
non dovrebbe essere troppo sorprendente ma
la domanda è come sai come puoi
arriviamo da lì a un distribuito
libro mastro
senza una blockchain, quindi di cosa abbiamo bisogno
abbiamo bisogno di un consenso abbiamo bisogno di tutto il
siti di replica del libro mastro per concordare
sugli stessi dati e se abbiamo quello
allora abbiamo un libro mastro distribuito
non c’è niente nella definizione di a
ledger distribuito che dice che deve
essere immutabile non c’è nulla che dice
deve usare una blockchain di cui ha bisogno
per essere lo stesso saldo del conto
i siti di replica quindi con Bitcoin
tutti quelli che hanno una copia di te conoscono il
il database completo Bitcoin ha il libro mastro
nell’architettura di cui parlerò
su chiunque stia eseguendo un database
cluster ha il libro mastro così distribuito
ledger penso che non gli piaccia
le fotografie sono solo troppi dati ma
un libro mastro distribuito sarà di nuovo dove
possiamo tutti essere d’accordo sulla stessa colonna di
numeri non importa che tu sappia quale sito
siamo a così se vogliamo aggiungere un
transazione in un posto che dobbiamo sapere
per certo che sta andando appare in tutta la
gli altri posti allo stesso tempo così
Parlerò di come costruire questo
libro mastro distribuito al di fuori del
mondo blockchain e l’idea che esso
dammi che sai che potrebbe essere gentile
di ovvio a questo punto perché tu hai
mi ha parlato allo stand ma questo
libro mastro che abbiamo guardato solo la pianura
semplice libro mastro sembra un normale
applicazione di database sembra proprio
una tabella di database e si scopre che
quando vai a guardare come le persone
implementato Ledger’s sai per il
storia dei computer fino ad ora loro usano
il database è lo strumento giusto per
lavoro così la mia idea è come se tu avessi
un database distribuito forse a
libro mastro distribuito c’è solo un
applicazione di database può essere il libro mastro
di per sé non ha bisogno di preoccuparsi
il meccanismo di distribuzione quindi parleremo
di
come possiamo ottenere ciò e in particolare
nel contesto di fauna DB quindi il nostro logo
è un colibrì, ma mi piace guardare
veri colibrì quindi questo lo sai
solo una possibilità per tutti noi di essere felici
sulla gloria della natura e relax e
guarda ora colibrì come stiamo andando
per costruire questo registro distribuito in cima
di un database distribuito bene tipo di
prima di andare effettivamente prima di entrare
così che quello che ho fatto è che ho pensato questo
è un’idea super facile come se fosse solo un
applicazione di database usando sai
domande per mantenere i saldi dei conti
Farò una demo e così ho fatto un animale domestico
archivia l’ applicazione perché sai se
farai tutte le transazioni
inizia con un negozio di animali e questo
dovrebbe essere un video della demo ma cosa
e cosa vedresti se il video è
giocare è essenzialmente c’è più
i giocatori e tutti hanno un account
saldi e puoi mettere un oggetto per
vendita e potresti comprare un oggetto e te
sapere quando si acquista un oggetto i soldi vanno
da quel giocatore dall’account degli acquirenti
al cliente dei venditori e quando tu
sai provare a comprare un oggetto e tu no
avere abbastanza soldi nel tuo account allora
si ottiene un errore di fondi insufficiente quindi
è roba di base molto semplice, solo gentile
di un e-commerce o di un’applicazione bancaria
e il tavolo sottostante quello
lo supporta o il sottostante che conosci
il database sembra così è uno che sai
ecco i prezzi degli acquisti
e l’acquirente e il venditore siamo
elencato nella tabella in modo da poter guardare
questo libro mastro distribuito e sfogliarlo
come sai come qualsiasi altro dato
questa demo è una specie di giocattolo intendo io
lo ha costruito in un fine settimana non è stato progettato
in realtà essere completamente distribuito
applicazione ledger è distribuito ma
alcuni dei problemi di sicurezza non lo sono
completamente implementato
quello che faremo in questo discorso è andare a guardare
su come prenderesti quella demo e
renderlo serio
quindi la prima cosa che vogliamo fare è
dare un’occhiata e capire come DB fana
implementa il consenso globale e cosa
questo significa per un libro mastro distribuito
applicazione quindi andremo a guardare
la query di transazione effettiva e il
codice che implementa il conto corrente
equilibri e crediti in movimento da uno
conto ad un altro e cambiando il
proprietà di un oggetto e quindi è tutto
eseguire in una singola transazione che ottiene
inviato al cluster DB fana e
corre e restituisce un risultato e noi prenderemo
un’occhiata a quel codice e poi a qualcosa del genere
una volta che hai capito il globale
coerenza e il modo in cui abbiamo
implementato la transazione allora lo farai
probabilmente hanno alcune domande di sicurezza
perché se hai a che fare con il reale
i soldi ci saranno persone che lo sono
motivato a fare la tua domanda
cose diverse da ciò che speravi
sarebbe quindi mi parlare di sicurezza
modello come applicazione e livello oggetto
modello di sicurezza ce n’è tantissimo
preoccupazioni sulla crittografia a riposo o in corso
il filo forse posso rispondere alle domande
più avanti, ma questa parte del discorso
parlerà del modello di sicurezza così com’è
implementato nell’oggetto del database
livello quindi torna a questa immagine di globale
consenso se quello che stiamo cercando di fare è
mantenere questi Ledger in sincronia
quindi l’architettura che sono
suggerendo è che implementiamo ogni Ledger
come un cluster DB fana quindi questo può essere il
database nel nostro linguaggio dei diagrammi
per oggi e cosa vedrà questo
come in pratica è così che ne hai uno
un gruppo di membri del libro mastro e tu
sa forse questo è un buon momento ero un
Poco distratto prima di quello che volevo
per dire è che se non ti fidi di
persone che stai cercando di eseguire a
libro mastro distribuito con
non farlo in questo modo per quando
sai chi sono i tuoi controparti sono così
come se tu avessi un gruppo di banche
lavoriamo tutti insieme per mantenere un
transazione Clearing House o se tu avessi
sai un po ‘come essenzialmente nessuno
gruppo di attori dove potresti farti sapere
identificarli e affrontarli tramite il
sistema legale invece di un qualche tipo di te
conosci una cosa blockchain quindi i membri
di questo consorzio di voi conoscete membri
del mercato ognuno corre alto
disponibilità del cluster di DB fauna in modo che
cluster può essere più macchine e questo
potrebbe anche essere in più siti fisici
stesso ma da un punto di vista logico
quello di cui stiamo parlando è ciascun membro
del libro mastro ha una copia del libro mastro
in esecuzione in un database e possono
interagire con esso utilizzando query di database
ora all’interno di ognuno di questi cluster
che contiene la copia completa dei dati
impostato ce ne sono probabilmente più di uno
macchina in modo da poter avere alto
disponibilità che Fano DB gestirà
partizionare i dati su tutto il
macchine disponibili e aggiunta e
rimozione di macchine che si replicano tra
macchine e mantenendo tutto questo cluster
in sincrono con gli altri cluster, quindi se
le tue operazioni DevOps persona potresti
mi chiedo come dovrei fare a entrare
stand uno di questi cluster è a
molto semplice operativamente avete
database che viene consegnato come un barattolo
e lo lanci nella confezione giusta
per il tuo ambiente, se è così
contenitori o file Deb o rpm, quindi è così
tipo di architettura fisica del
cluster che sosterrà il nostro
registro aggiornato ora come facciamo
coerenza attraverso quello fisico
architettura c’è un protocollo chiamato
Calvin che è venuto fuori dalla ricerca di
Yale
e quello che fa fornisce acido
transazioni creando una distribuzione
registrati così come nello stesso modo
la blockchain è piuttosto un log distribuito
piuttosto che far rispettare quella semantica
via tramite quel tipo di tecnologia che usiamo
il protocollo calven che usa il nostro
chiunque abbia familiarità con zattera o Paxos così
questi sono il consenso distribuito
protocolli che consentono un gruppo di macchine
essere d’accordo su qualcosa con il
numero minimo di viaggi andata e ritorno quindi usiamo
zattera per decidere quale sarà il prossimo segmento di registro
c’è qualche salsa segreta?
sai assicurarti che il
le transazioni sono ordinate all’interno del registro
in un modo che tu sai ha senso
secondo il transazionale
requisiti quindi se due persone si presentano
transazioni per toccare lo stesso tasto su
allo stesso tempo, il sistema ordinerà
li in un modo o nell’altro ma una volta
è ordinato, quindi sarà stabile e
serializzabile questo è lo stesso tipo di
cosa che succede dentro la tua
database relazionali che sei
familiarità con
quindi questo ceppo di Kalvin che ha il
le transazioni in esso sono dove il commit
in realtà si verifica così proprio come quando tu
impegnarsi a Postgres è una voce scritta
nel registro di destra e se c’era
un arresto anomalo del server che potrebbe essere ripristinato da
prima di tutto entra nello stesso modo in
il registro di calven che conosci precede il
archiviazione fisica degli indici di archiviazione ecc
tutto ciò che accade al database
lo strato è deterministico basato sul
transazioni che stato accettato nella
log in modo da rendere il consenso relativamente
economico e focalizzato sul throughput c’è
un modello alternativo sul mercato
per consenso distribuito se lo hai
sentito parlare di Google spanner usano a
protocollo diverso su cui si basa
finestre temporali e guardando a destra
effetti della transazione dopo di esso
gioca e riprova le cose quando loro
conflitto così
e pratica ciò che significa è quello
sotto discussione stile di Google spanner
il sistema rallenta le letture mentre
per i DB di fauna in genere le letture possono essere
fatto da istantanee nello scoordinato
modo ma sotto contenimento rallenterebbe
giù sotto scrive quindi è diverso
trade-off penso che la fauna DB
il trade-off è più adatto per
applicazioni interattive dal più
le applicazioni sono per lo più leggere così se
ti interessa saperne di più
il protocollo Calvin c’è questo blog
pubblicare sul nostro sito Web che confronta
chiave contro Calvin e passa attraverso a
molti dei trade-off e tu conosci il tipo
di trova ci sono gli scenari al
limitare dove uno di loro sarebbe migliore
rispetto agli altri in un modo più chiaro e poi
come si applicano tali trade-off in fase di esecuzione
quindi è così che forse capiamo
un po ‘ come offriamo questo globale
coerenza ora che lo comprendiamo
puoi avere transazioni acide a livello globale
scala bene su cosa stiamo andando a correre
per fare il lavoro così questo è il
codice di transazione effettivo è destinato a
sembra complicato, spero che i tuoi occhi siano brillanti
un po ‘ entreremo e guarderemo
su di esso una riga alla volta dove è possibile
effettivamente vedere che il linguaggio di query
sembra la storia che sto raccontando
qui con questo è solo per te
capire che la logica complessa di
come può essere una transazione ricca e reale
scritto come una singola query e inviato
come un cluster finale in cui si impegnerà
atomicamente quindi passerò prima di
tutti in grassetto le linee che contano fino a
raccontando la storia di cosa sta succedendo e
poi andrò attraverso e ti mostri cosa
lo fanno così questo primo è solo facendo
certo che l’oggetto è in vendita non possiamo
prova a comprare qualcosa che non è sul
per la lista di vendita proprio qui proprio non ci siamo
vuoi che tu lo vendi a te stesso, invece
di vendere un oggetto a te stesso
in questo
lo rimuoviamo dalla vendita, quindi quelli sono
solo un paio di precondizioni da soddisfare
ecco da dove abbiamo effettivamente rimosso
vendita non devi preoccuparti troppo
su questo tranne che per vedere che siamo
semplicemente impostando un flag di applicazione qui
questo ultimo bit è l’ultimo
controllo preliminare che stiamo facendo
Assicurarsi che l’acquirente ha abbastanza soldi in
ci sono abbastanza crediti e il loro account
per acquistare l’oggetto se non lo fanno allora
otterranno un errore di fondi insufficiente
quindi la seconda metà della query è dove
la transazione è in realtà scritta a
gli oggetti qui stiamo creando a
record di acquisto è solo essenzialmente
conosci la ricevuta di quel particolare
transazione con l’acquirente o il venditore
il prezzo e l’articolo in modo che tu possa guardare
nella storia di tutti gli acquisti
attraverso il tuo sistema nello stesso blocco
quindi stiamo anche aggiornando l’acquirente di
sottraendo il prezzo dell’articolo dal loro
bilanciamento e aggiornamento del venditore da parte di
aggiungendo il prezzo dell’articolo al loro saldo
e finalmente contrassegniamo l’oggetto con
un nuovo proprietario
quindi per riassumere tutto ciò che stiamo assicurando
che l’oggetto è in vendita stiamo facendo
certo che l’acquirente non è il venditore e
ci stiamo assicurando che l’acquirente abbia abbastanza
soldi, allora stiamo scrivendo un acquisto
registra e deduciamo dal
gli acquirenti si equilibrano aggiungendo al venditore
bilanciare e aggiornare il proprietario dell’articolo e
tutto ciò che commette atomicamente, quindi se tu
aveva un acquirente molto occupato e hanno presentato
conosci più ordini di acquisto e
conosci contemporaneamente alcuni di quelli
avrebbe successo, ma solo fino al
il saldo del conto sarebbe lo sai
dedotto sotto zero dal prossimo così
non c’è mai una capacità di spendere il
i soldi prima che il sistema si è accorto che
l’hai speso è sempre coerente
sono lì se vai a seguire il link
per github puoi
il resto dell’applicazione c’è il
transazione o piuttosto la query che
elenca tutti gli articoli in vendita
c’è la query che conosci le liste
per ogni giocatore quali oggetti hanno
e quanti soldi ci sono nel loro bilancio
quindi è tutto un database molto standard
interazioni su cui si interroga il database e
dipingi roba per l’interfaccia utente così qui lo farà
guarda un esempio di come la query
la lingua effettivamente guarda da vicino così
quello che sta succedendo qui è in realtà a
generatore di query questo testo non viene spedito a
il server questo accade in fase di esecuzione e
crea un albero di sintassi astratto e
l’albero sintattico astratto a cui erano spediti
il server, quindi cosa significa questo in
questo caso particolare la lingua madre
è JavaScript ma puoi scrivere lo stesso
query in Ruby e avrà lo stesso
albero di sintassi astratto e darti il
stesso risultato quindi abbiamo clienti
disponibile in Java JavaScript Scala che
è ciò che è il server di database
implementato in Ruby c-sharp Python go
e Swift e se hai bisogno di interrogare il
database da una lingua che noi non conosciamo
supportare l’interfaccia filo è JSON e
HTTP quindi dovresti essere in grado di inviare
domande così anche per riassumere
questa sezione sulle transazioni acide I
penso sia importante notare che io ho
parlato molto di finanziaria
servizi e la ragione per cui sono stato
parlarne è perché
l’industria è stato lasciato fuori della no sequel
rivoluziona tutti questi database scalabili
è uscito ma non avevano
supporto alle transazioni e così finanziario
i servizi erano bloccati, sai, mentre correvano
loro Oracle e loro Postgres ma
ora che abbiamo transazioni acide a
scala globale i servizi finanziari
aziende che volevano esplorare queste nuove
database su larga scala, ma l’ho trovato
non avevano le caratteristiche per incontrarsi
i requisiti tutto ad un tratto hanno
questa opzione
così dalla mia prospettiva nel
mercato sapendo che ha funzionato
attraverso la prima ondata di non sequel e
quindi vedere quali diversi clienti e
gli utenti stanno facendo ora le aziende sono molte
più pronti che capiscono come
valutare la tecnologia del database come a voi
sappi provare due o tre alternative
e capire quale è la soluzione migliore
e stanno usando quella comprensione
essenzialmente per valutare fana DB contro
sai che non c’è molto altro contro
Postgres o Oracle o Google spanner
che sai che sei bloccato
in esecuzione all’interno del cloud di Google ma così
mettiamo da parte i servizi finanziari per
ora perché trovo anche quella scrittura
applicazioni di database utilizzando eventualmente
database coerenti possono essere un mal di testa
potresti scrivere qualcosa nel
database e poi tornare a leggerlo e
non è ancora lì e quindi significa
Pratica tutto il tuo codice che tocchi mai
un database alla fine coerente come
dynamo DB o cassandra deve essere pronto
per quello scenario peggiore e ottieni
una tonnellata di complessità del codice e lavori di riparazione
e i tuoi sviluppatori sono un po ‘di più
cercando di indovinare il database di
in realtà stanno scrivendo il
applicazione quindi se si utilizza un coerente
database che conosci come Postgres o a
font ODB quei problemi vanno via e tu
non devi indovinare cosa c’è nel
database che sei in grado di scrivere
domande e ottenere le risposte previste
ora sai che sono solo le leggi di
fisica che per noi per commettere a
Transazione di Kalvin su più dati
centra la velocità della luce tra quelli
i data center iniziano a essere importanti e così
certo come è possibile avere più basso
giusto Layton vede con un alla fine
database coerente ma non ne sono sicuro
che rende effettivamente le tue applicazioni
più veloce perché sai che stai scrivendo
ma c’è questa nuvola di incertezza
e poi devi sempre controllare
quell’incertezza quando stai facendo il tuo
legge e così può bilanciare quello
che anche per pagare in un piccolo viaggio di andata e ritorno
il costo del tempo per scrivere tutto il
semplificazione delle letture e a
semplificazione dello sviluppo contro di esso
potrebbe significare che conosci un’applicazione più semplice
e potenzialmente migliore esperienza utente
quindi abbiamo questa idea mi scuso su come
costruire un libro mastro distribuito usando il
query di database e consenso globale
e le transazioni di beni ma non l’ho fatto
ha affrontato il modello di sicurezza a tutti così
questo è un tipo che sai dare
la sensazione che tu sappia il
approccio a come eviterai
privilegiare l’escalation e ottenere alcuni dei
semantica di cui le persone apprezzano
la blockchain senza averti saputo
alcuni degli svantaggi così tu lo sai
così la blockchain è immutabile
tranne quando non lo facciamo e nella stessa cosa
come vuoi sapere cosa sei tu
voglio sapere che il tuo codice di transazione
puoi solo sapere scrivere nuove transazioni
e non cambierà la storia ma
potresti avere il codice amministratore necessario
cambia la cronologia così prendiamo un layered
approccio dove essenzialmente abbiamo te
conoscere il codice utente nel browser
codice dell’applicazione in esecuzione in lambda ma
il codice dell’applicazione ha il minimo
privilegi per parlare al database che
ha il suo che conosci definito dall’utente
funzioni che hanno il minimo
privilegi di nuovo per parlare con il reale
parti di memoria del database così è
molto tu non ci sono percorsi per a
escalation dei privilegi che consentirebbe a
utente non fidato per eseguire le transazioni
non dovrebbero, quindi parlerò
su quelli a sua volta e come sai come
gli strati lavorano insieme così Lambda è un
funziona come un fornitore di servizi
molti di loro per gli scopi di questo discorso
Là
essenzialmente intercambiabile è solo un
Funzione JavaScript o in un’altra
linguaggio che viene eseguito in risposta all’utente
eventi così questo potrebbe essere lo sai
autenticazione degli utenti su una richiesta HTTP
e eseguendo una funzione che prende il via
transazione ma è anche come almeno
in pratica quando parlo con persone che lo fanno
un sacco di roba con AWS lambda sono
tipo di usarlo per leggero
Riduci mappa
quindi magari elaborando i file ogni volta
sono caricati in s3 a cavalcioni
entrambi quei mondi nel nostro caso siamo
utilizzandolo per attivare il codice interattivo
le transazioni nel database, quindi cosa?
avremo è una funzione JavaScript che
usa il client DB fana per inviare a
query sembra molto semplice così
query complessa che abbiamo visto è stato
tutta la faccenda era tutto
logica attuale che succederà ma
non vogliamo che i nostri lambda siano in grado di farlo
eseguire quella logica, perché piace cosa se loro
ne ha eseguito solo una parte, cosa hai avuto a
cattivo programmatore e la tua organizzazione e
hanno scritto una funzione per la vendita di oggetti
giocatori senza dedurre dal loro
giusto equilibrio poi tutto ad un tratto si
potrebbe averti fatto sapere pagare te stesso
quei soldi o qualcosa così potrebbe essere
errori molto costosi ma invece di
avere una chiamata lambda
quella funzione complessa che abbiamo visto abbiamo a
chiamare una funzione predefinita, quindi questo è
lo sai simile al database relazionale
L’API è dove puoi registrare una query
e l’hanno chiamato c’è essenzialmente
frammenti di query che si registra con
il database e altre query possono chiamare
in loro e possono avere diversi
privilegia quindi la funzione che è
chiamato può solo fa ciò che fa dentro
la divisione con l’ amministratore abase lo sa
quello che fa ed è l’unica cosa
quel lambda può chiamare la funzione stessa
IT di interni sarà simile che
transazione complessa che abbiamo visto
quindi è facile da chiamare ma non da dare
hai ragione l’ hai detto solo un po ‘
argomenti e fa tutto il lavoro così
come un trigger in un database relazionale
e ancora quella funzione non ha
accesso amministratore quindi qualcuno
la creazione di quell’innesco non sarebbe possibile
andare e azzerare conto di tutti
equilibrio sarebbero solo in grado di te
sapere interagire con le classi che
dovrebbero ora essere l’ultimo tipo di
caratteristica importante per la sostituzione del
blockchain in questa applicazione è fana
Dati temporali incorporati del DB che possono essere
usato qui per assicurarci che capiamo
quale sia la storia degli oggetti quale essa
può anche essere usato in applicazioni per
auditing o per quelle volte in cui tu
Devo cambiare il passato, quindi cosa?
architettura di cui stiamo parlando per a
registro distribuito senza server
applicazione le funzioni che sono
toccando i dati e le tabelle lo faranno
correre con privilegi che possono solo parlare
per il momento con cui non possono scherzare
il passato e anche loro non possono cambiare il
schema che non vuoi che siano in grado di
cambiare le regole in modo che queste funzioni con
privilegi limitati ma nella vita reale
a volte le cose accadono come un utente
potrebbe colpire uno zero in più e trasferirti
conosci ventimila dollari invece di
duemila e rotolando che torna su a
l’applicazione basata su blockchain può essere molto
costoso perché la storia è
in realtà immutabile e devi
inventare una transazione di compensazione
quello compenserebbe per quello vecchio e
probabilmente non sono solo quelli diciotto
mille dollari è probabilmente la tassa
implicazioni per lo sai il dieci
ore prima che il bug venisse catturato o
qualunque sia, è meglio avere un
client amministrativo con aggiuntivo
privilegi che possono tornare nel
storia e dire che non intendevo davvero
20.000 sono in duemila e quando tu
cambiarlo lì poi ovviamente tutto il
domande che stai facendo sapere
cose come le tasse, ecc da che sono
andando a correre su questa storia riveduta
invece di sul sai invece che su
i dati errati i dati temporali
supportarlo dovrebbe seguire doodle
memorizzare come 30 giorni di storia che si potrebbe
alzalo o puoi abbassarlo ma
non supporta solo questo tipo di
interrogare le domande ma anche supportare il
capacità di leggere da istantanee in modo che
puoi leggere da una versione coerente
del database senza attendere
in volo scrive per completare così è
l’architettura di questo distribuito
applicazione di registro su una distribuzione
database e sono felice di rispondere alle domande
ora sicuro che la domanda riguardi il
teorema di cappuccio e come se avessimo la priorità
coerenza rispetto alla disponibilità che conosci
cosa fa cosa vuol dire quando?
c’è un problema di disponibilità così dentro
pratica, noi sappiamo che è raro
perché non abbiamo bisogno di disponibilità al 100%
di tutte le macchine nel cluster noi
solo bisogno di mantenere un quorum così come
Finché manterremo il quorum, allora il
registro delle transazioni può continuare ad essere
elaborati e abbiamo uptime ma se noi
andare sotto il quorum, quindi non possiamo
elaborare le transazioni a tutte le domande così
sì, otteniamo la coerenza che ottieni
sai che le persone usano in due fasi
Impegna perché usiamo il protocollo raft per
ciò che è un’ottimizzazione su come
un commit a due fasi o uno stile paxos
algoritmo di consenso e c’è un grande
sito web penso che se impari google zattera
sarà una macchina statale che ti permette
vedere esattamente come il protocollo della zattera
viene eseguito su un registro e noi essenzialmente
usa lo stesso protocollo quindi è come
commit a due fasi ma con alcuni
ottimizzazioni per ridurre
intorno ai viaggi e dove si inserisce nel nostro
l’architettura è come decidiamo il
l’ordine di quel registro nel registro di destra
per Calvin una volta che l’ ordine dei registri è stabile
e congelato quindi tutto ciò che accade
sui nodi del database è deterministico
quindi tutto ciò che dobbiamo fare è concordare il registro
ordinando e quindi diventiamo serializzabili
coerenza da lì ho un paio
di domande da parte mia perché dovrei usare
telefono in quel modo qual è il caso d’uso
per essere finalmente certi specifici
è la coerenza per i vari
ragioni per cui ho delineato alcune applicazioni
alcuni casi d’uso richiedono coerenza in
per alcuni casi d’ uso con cui aiuta
produttività ma penso che la vera ragione
da usare non conosco almeno un database
come sviluppatore che valuta il nuovo
tecnologie su base regolare come noi
piace pensare che siamo razionali e
che stiamo adottando un approccio misurato
tutto il tempo, ma penso che probabilmente
quello che sta veramente succedendo è che ci piace
un gioco high-stakes di scegliere ciò che è
il percorso a basso attrito e così se
qualcosa ti dà attrito anche per un
motivo non correlato come probabilmente lo sei tu
intenzione di buttarlo fuori e provare qualcosa
altro perché piace oh l’attrito lì
deve essere un indicatore ci sarà
attrito in altri posti così con quello
la filosofia in testa ci ha provato molto duramente
a Fawna per rendere le rampe facili così
dovresti essere in grado di andare a Fano comm
e iscriviti e stai usando l’api per
libero in pochi minuti se rimane facile
poi si sa non ci sarà l’attrito
e non avrai nemmeno bisogno di buoni motivi per
usalo una domanda un po ‘
accanto a quello che ha scoperto rispetto
a Cassandra certo che fauna e Cassandra
avere caratteristiche di scalabilità simili
lo sai una specie di rozza dimensione di
cluster che ci aspettiamo che le persone eseguano
circa lo stesso è la latenza di lettura
simile
e serve come la quantità di
I / O aggregato che un determinato nodo può fare
simile quando inizi a fare comparativo
punti di riferimento sono anche molto vicini
alcuni carichi di lavoro abbiamo un throughput
vantaggio perché stiamo eseguendo il batching
transazioni insieme in un modo che è
più facile da gestire per i sistemi di I / O
ma negli altri carichi di lavoro sei con Fana
starai aspettando i tempi di andata e ritorno
e coerenti si impegna a non farlo
Bisogna aspettare con Cassandra
ovviamente poi con Cassandra sul
dall’altra parte dovresti andare pulito
riempire di leggere e avere un sacco di
codice aggiuntivo per gestire i loro casi e
così Sona ha trovato che per essere quanto più coerenti
e partizione e involucro ne hanno un po ‘di più
di come la disponibilità è interessata allora
il partizionamento ora trovato alla base
coerente e diviso così puoi
dì un po ‘di più su come è la disponibilità
li affliggono forse quello elaborato
scrivi questa domanda si, intendo che lo ero
parlando un po ‘di
partizionamento in modo tale da consentirci effettivamente
dividere il log calvo in più di
un registro in modo da sapere se il file
il rendimento sul registro calven è più
che una singola macchina può gestire poi
puoi diffonderlo attraverso le macchine
ma tipicamente starai meglio
performance con circa tre Kalvin
partizioni è attraverso un open source
versione no non siamo open source
siamo implementati in Scala tutti i nostri
i driver sono open source ma la consegna
è un file jar e il generatore di query
sembra consideri la semplificazione del
API con un DSL che viene compilato con un asterisco
quindi la domanda riguarda la query
costruttore e tu sai se lo abbiamo
considerate semplici API così noi
considerato che abbiamo seriamente considerato
come una API della folla in stile riposo ed è dentro
c’è ma è uh appena scopre che
il punto debole
per un database come questo è necessario inviare un
query complessa, quindi qualcosa come carico
è aumentato da un indice di un particolare
intervallo e quindi loop su tutte quelle righe
all’interno della transazione e caricare
documenti basati su quelle file da alcuni
di questi documenti sono condizionali
logica che forse carica altri dati e
quindi aggiorna alcuni di loro in base a tutti
quello e quello commettono atomicamente così
solo farlo sul resto non fa
molto senso è più come se ti conoscessi
vuoi scrivere alcune delle tue applicazioni
logico nel linguaggio di query e
spingerlo al cluster una domanda in meno
blocco cambiare il significato delle nostre letture pubbliche
tutti possono iscriversi a una rete
il dibattito finale ha anche permesso di costruire tale
sistemi aperti sicuri quindi la domanda è
circa potresti usare questo tipo di sistema
al posto della blockchain di Bitcoin e
la risposta è no, non è quello che è
per se hai bisogno di eseguire questo tipo di
applicazioni tra le parti non fidate
allora hai bisogno di sapere un modo
conosci la prova del lavoro o altro
facendo in modo che la gente non può non può gioco
il sistema con quello di cui stiamo parlando
un consorzio di mercato di fiducia
i partecipanti ci sono sai che non l’ho fatto
andare in quella parte dell’architettura
ma ci sono posti nel sistema in cui
potresti mettere i monitor su
registro delle transazioni e assicurarsi che no
uno sai che stai cercando di confondere il sistema
o qualcosa del genere, ma sai in genere se
qualcuno avrebbe saputo chi era
facendolo e potresti parlare con loro così
quello è un caso d’uso diverso
fondamentalmente va bene
qualsiasi altra domanda dalla stanza sì così
la domanda riguarda il TTL
tempo di vivere la caratteristica che ci consente
in realtà ho due serie di TTL così io
abbiamo parlato di come manteniamo la cronologia degli oggetti
in giro per 30 giorni per impostazione predefinita e quindi
puliscilo ma abbiamo anche il
gli oggetti stessi possono cancellare automaticamente dopo
una certa quantità di tempo così è
davvero utile per casi d’ uso come il PIL
noi
conosci il diritto di cancellare la terra
qualunque sia così particolarmente intermedio
i processori potrebbero voler avere un sacco di
i loro dati usano TTL
in modo che quando hanno finito di elaborarlo
si ripulisce è utile lo sai
non solo per gdpr ma anche per te lo sai
Casi di utilizzo della cache o qualsiasi cosa in cui tu
vuoi che il database a te non sappia solo
crescere continuamente nel tempo, sicuro che il
elenco dei clienti alla maggior parte di loro non posso
parlare di abbiamo solo lanciato il cloud
prodotto all’inizio di quest’anno e lo saremo
lancio di Enterprise on-premise
versione in primavera al momento
NVIDIA sta gestendo un grande social network
in cima al database di fauna selvatica e hanno avuto zero
tempi di inattività quindi ci piace anche Starbucks
Parla molto spesso alle conferenze
sulla costa occidentale di usarci per
roba di carte di pagamento e programmi fedeltà
quindi essenzialmente conosci i punti finanziari
attraverso tutte le loro posizioni di vendita al dettaglio
a parte questo, tu sai molto
le innovative banche americane che conosci
avere programmi in corso per valutare nuovi
tecnologie quindi siamo in quello spazio per
sicuro grazie mille
[Applausi]
Please follow and like us: