Press "Enter" to skip to content

GOTO 2015 • Highly Available & Scalable Solutions with RavenDB • Maxim Buryak


ciao ragazzi e sono qui per parlare con voi
su come possiamo creare scalabile e
applicazioni altamente disponibili usando il
burrone DB docomo database ma prima lasciare
mi presento questo è ogni giorno me
Sono uno sviluppatore di software e torno
qui con esso funzionerà effettivamente con a
uccello così è il mio livello di parlare in pubblico
qualcosa come meno 100 quindi non lo sono
andando a mostrarvi eventuali tiri di vendita o
cose del genere ti mostrerò
cose che so come fare, a
codifica che è una dimostrazione dal vivo e
andiamo avanti con Reven DB ever’thin DB
hai mai visto su un roll up e al
fuori è un database di documenti e
documento in quel modo in realtà no
stallo o documenti o PDF che memorizza a
Oggetti JSON ma sai che non sto andando
per parlare con te di come ti modelli
dati nei database del documento e come
di solito stai solo andando a mostrare
tu che ho intenzione di licenziare reven d11 DB
istanza e un altro per dopo
in realtà se puoi vederlo in realtà
ascolta i mezzi della porta 8080
che la sua API è a è il resto api e via
base di questa API abbiamo costruito una gestione
studio e
è così che sembra fantastico
eccoci qui ho questo messaggio magico
perché sto mentendo su Windows 7 e lì
non ci sono prese per il web in Windows 7 quindi vai
avanti e creare un database di esempio buono
e creare un nuovo documento ora sono stato
pensando a ciò che voglio presentare e
in realtà e quello che mi piace di più è il mio
fidanzato e poi i miei biglietti così e ho
due gatti e quindi proviamo dai gatti
Creerò un qualsiasi documento e lo farò
crea il mio primo figlio il cui nome è Chaka
è fantastico, ha otto chilogrammi
piuttosto carina paffuto e la sua casa
Io me e il mio fidanzato che stanno arrivando al massimo
e Gilly e questo è tutto
il primo documento è questa cosa è
in realtà un oggetto JSON che è quello che è
ora Shaco ha un fratellastro come si chiama
meglio è un po ‘più in forma che aspetta 6
chilogrammi e abbiamo un cucciolo di gatto e
il nome è una vaniglia e lei è davvero
Cincisona qualcosa come quattro, io penso che va bene
questo è quello che abbiamo ora è fino ad ora
è una sorta di archivio di chiavi di valore chiave
come hai visto gli animali 1 2 3
il giorno JSON documenta ma per il a
database che non è abbastanza in realtà
vuoi interrogare i dati e
questo è quello che ti mostrerò ora
Vado a scegliere la dinamica
indice e cercherò di ottenere
vedere scioccato
e
ma
un momento che non è accaduto in dentro
la loro famiglia
Ho intenzione di dargli un titolo un paio di
un paio di secondi e continuerò
se non possiamo andare avanti
per provarlo
beh, non importa, ce ne sono alcuni
inaspettata la condizione e così lo farò
continua ad andare quello che volevo volevo
mostra come è in realtà Evan DB
le domande documentano come in base a qualsiasi
qualsiasi campo che si entra si sa come
elaborare tutti i documenti e in realtà
sulla strada indicizzali così per il prossimo
cosa l’operazione sarà molto
più veloce così che era il rimedio essere
in generale mi dispiace per il piccolo
problema tecnico spero bene non noi
voglio sperimentarlo più ma sono venuto
parlarti prima dell’alta
disponibilità su come ottenere un altro NDB
alta disponibilità la otteniamo usando
applicazione lo so se qualcuno lo è
qui alla plicatura dell’acqua come funziona
Spiegherò che ne abbiamo due diversi
istanze indipendenti del database
ognuno di essi ha il proprio spazio e
la propria applicazione e comunicano
tra di loro e si sincronizzano
a vicenda ora lasciami mostrare solo
vai avanti e usa il mio demo helper è a
piccola applicazione che fa un paio di
cose che non volevo fare
durante la conversazione con te
compresa la creazione e voi database e
configurandoli ma diamo un’occhiata a questo
nel database 8080 vediamo lo zoo
appare il database e in realtà tutto il resto
la dimostrazione è ha l’animale
impostazione e diamo un’occhiata è
in realtà piuttosto vuoto ma ha un
configurazione di replica ed è così
sembra ed è così che un sistema tipico
l’amministratore di sistema dovrebbe configurarlo
e la cosa molto molto simile è nell’80
81 istanza
qui vai come puoi vedere di nuovo è
molto molto semplice tu dichiari l’URL
database di destinazione e questo è tutto
funziona come lo dimostrerò
a te ogni volta che premo un pulsante
d’ora in poi un nuovo documento sarà
memorizzato sul database 8080 in seguito
l’8080 che i rifiuti ti copieranno tu
documentare sull’istanza 80 81, quindi qui
noi andiamo e possiamo vedere che abbiamo grande
quantità di animali negli anni 8080 e 80
81 database e in realtà no
sincronizzare ma cosa succede se vedi ora è un no
il miglior caso di applicazione leader può essere
usato per nessun backup molto veloce e vivo
ma sono venuto a parlarti del
disponibilità nulla al fine di
dimostrare la disponibilità che devo fare
qualcosa di non disponibile quindi lasciami andare
avanti e uccidere l’istanza 8080
e non è più con noi ricaricherò
la pagina niente risponde nessuno Ricomincio
la pagina qui 881 è ancora viva e io sono
tornerò alla mia demo up
e premi di nuovo il tasto okay, in realtà noi
vedi che ci è voluto un po ‘più di tempo
spiegare perché ciò che l’API client ha fatto
effettivamente accedere una volta all’istanza 8080
non ha risposto e ha detto okay forse
è una specie di fallimento della rete
cerchiamo di mescolare di nuovo le gomme ancora abbatte
ancora una volta per la terza volta glielo dice
va bene proviamo la replica
altro l’altro gioco lo fa e il
l’operazione è completa da ora in poi
continua a parlare con l’altro
repliche e tutto sta andando come
senza intoppi come prima ora cosa accadrà
se torneremo di nuovo lontano nel database 8080 ora
cosa ti aspetti che succeda ora e
Immagino che ci si aspetterebbe che
dovrai chiedere al sistema
amministratore per copiare tutti i file
i file di dati dall’80 81 sono istanza a
l’8080 e loro per chiedere i database
continua davvero cosa succede
il reddito è che il database 8080
quando entra entra in vita agisce chiedere
l’80 81 altrimenti il ​​tuo compagno che
cosa è cambiato dall’ultima volta che noi
parlato in lui gli dice come sai cosa
in realtà ha ricevuto un sacco di nuovi documenti
e qui andiamo abbiamo 30 abbiamo inclinato
ai documenti nel database 8080
stessa quantità nel 80 81
significa che dopo l’incidente dopo il
l’amministratore di sistema ha ottenuto la macchina
vivo, continuiamo ad andare avanti
adesso
come abbiamo fatto in realtà la sintassi
che usiamo e qui ti mostro il
la versione API del client.net e anche io
avere una versione di API client java e il
dispersione possiamo mostrarti al nostro avvio
apriamo solo una nuova sessione in realtà
sembra un po ‘come un gufo
hibernaculum chiediamo di conservarne uno nuovo
animale Salva le modifiche e questo è tutto
è bello andare così devi dirlo
te stesso bene così forse la connessione a
il database è più complesso e abbiamo
fare più lavoro e in realtà non lo fai
questo è tutto ciò che devi fare per
configurare la connessione al cluster
dichiari l’URL che hai impostato nel database
sei bello andare a quello che succede nel
API client che richiede il database 8080
bene chi è il tuo repliche e il
risposte e il cliente che ho pagato sa
quale dovrebbe essere il suo comportamento d’ora in poi
quindi tutto il lavoro è fatto dai ragazzi che
configurare il database e come hai fatto
visto prima è in realtà piuttosto carina
facile
e quindi avremmo un problema ma
questo momento è in realtà il primo momento
quando accendi l’intero ambiente
quando lo fai la maggior parte dei casi, penso che
sei sicuro che tutto sia finito
i problemi capitano dopo che lo sai
dopo che andiamo alla produzione ora
c’è l’elettricità, un incidente o
qualcosa del genere in realtà c’è un
modo che puoi configurare anche in
lato client questa struttura e in questo
caso in questo caso saremo effettivamente in grado
per farlo funzionare oggi, il giorno successivo
Voglio parlarti del carico
equilibrando vedi quello che abbiamo fatto ora è
per ottenere una disponibilità elevata noi
ti ha fatto comprare due macchine per gravità
istanze e tu dici bene ora pago così
così tanto sai che ho pagato così tanti soldi
per il per il hover e pago per il
le licenze e tutto ciò che ottengo è a
failover per qualsiasi cosa in realtà consentiamo
di utilizzare questo cluster per uno sforzo ridotto
per bilanciamento del carico in questo modo nel
condizioni regolari siamo bilanciati dal carico
e quale fu il c’è uno scontro a
crash andiamo avanti e si
sarà un po ‘più stressante sul
database di sopravvivenza
ora che detto immaginiamo un il prossimo
CT situazione Sono solo per questa diapositiva che sono
sto per lasciare la squadra di animali che sono
andando a fare le cose bancarie immagina
che hai una banca e l’hai
account un account aziendale e tu dai
via la tua carta ha rubato i tuoi dipendenti
e tutto quello che fanno tutto il giorno sta per
Bancomat e poi prelevare denaro
del tuo account e c’è uno specifico
momento in cui sono andati gli utenti diversi
al bancomat e ritirato $ 100 che cosa
capita ora quale sarà il the
situazione del conto in realtà 11 DB
sa come individuare queste situazioni DCT
e ti aiuterà a risolvere questo
conflitto e questo è quello il prossimo
la dimostrazione riguarda la dimostrazione
stesso sarà nel flusso animale giusto
per renderlo più semplice e cosa è
sta per accadere ora è quello che lo zoo
database verrà ricreato e
ogni volta che preme un pulsante un conflitto
sarà creato perché lo stesso animale
sarà creato in entrambi i database e
Revin DB dovrà capire per
un capire cosa fare e facciamo un
Guarda
va bene così e spero che tu lo veda
avere qui sotto gli stampi cinque
abbiamo animali cinque conflitti alcuni buoni
e tutte le mod 5 hanno copiato qualche altro gioco
vediamo quello che vediamo che abbiamo
cane numero di nome 5a attendere cane zeri e
l’altro è il nome finisce con
una B quindi diamo un’occhiata agli animali cinque
documento e ciò che vediamo qui vediamo
qui in realtà il Trevin sarà elaborato
entrambe le versioni del documento e trova
il campo in conflitto e ora come dicono
lei ti dice bene che ho visto questo pieno
con valore cani numero 5a e ho visto
questo riempì di valore i cani un’altra fav preferita
essere ciò che vogliono fare e lasciarmi
rispondergli cosa voglio fare è che io
vuoi che il nome sia cani numero 5 c e
questo è ciò che vedranno ora
che gli altri due documenti quello
rappresentato i conflitti sono andati
perché la pistola del conflitto è risolta
abbiamo la versione finale del numero di Doc 5
c e nell’80 81 nel database e
gli animali cinque hanno già il finale
versione ora e quindi diremo ok
trova il mio problema ma non lo hai risolto
e in realtà credo nei casi in cui
potrebbero esserci centinaia di conflitti
così in un minuto questa soluzione
non funzionerà per te altrimenti lo avrai
avere ora solo centinaia di lavoratori
Alla ricerca di società è per questo che noi
in realtà hanno la capacità di permetterti
avere la tua risoluzione del conflitto
logica così continuerà solo come te
voglio ma c’è un altro caso c’è a
caso a cui non ti importa non farlo
cura che tu dica ok, qualunque cosa me lo faccia fare
continua a lavorare e e e basta capirlo
fuori per questo caso se torniamo al
configurazione dell’applicazione che possiamo vedere
che abbiamo questa risoluzione del conflitto
campo per ora non è nessuno nessuno significa quello
non facciamo nulla che potremmo scegliere
queste altre opzioni che sceglierò risolveranno
to latest che significa che l’ultimo
vittorie
e lo farò sull’altro applicatore
eccoci qui
d’ora in poi posso crearne altrettanti
documenti come uno e tutti i conflitti
sarà risolto da solo come vedi
tu non abbiamo nessun altro conflitto
indicazioni che è stato facile, giusto
sai che considerando tutto questo
è necessario inserire l’interfaccia utente Web e
cambiali alcune configurazioni ora bene cosa
abbiamo avuto fino ad ora abbiamo visto che noi
può configurare l’applicazione tra due
server in un minuto che abbiamo visto che noi
failover senza alcun codice scritto su
il lato client da te è tutto il
il codice è già stato scritto da noi sai
abbastanza ricco un pianeta API e vedi
che sai che sappiamo come risolvere
conflitti e in per bilanciare il carico ora se
questo non basta parliamo di
scalabilità
in realtà e in entrata stiamo ottenendo
scalabilità gridando noi in realtà
consentire agli utenti di dividere il set di dati
in diverse macchine in questo modo il
il carico sarà diviso tra diversi
macchine di un burrone DB e questo conduce
alla mia terza e dimostrazione
ok ora lasciatemi solo spiegare la configurazione
perché questa volta è un po ‘di più
complicato okay quello che abbiamo ora è
che abbiamo dei cani in cui avere la replica
8018 e replica di cani e katsu nel
80 81 come vedi è una specie di incrocio
quindi ogni database ha le hale
scopo principale e ha il ritorno per
l’altro acquista in questo modo il nostro cluster
caso che una delle parti del
i grappoli lo schiacciano davvero
continuare ad andare avanti e avanti e avanti e lasciare
io ti mostro e sto solo mantenendo
premendo il pulsante e io continuo a tenere
generare animali casuali e avere
un’occhiata, abbiamo 31 anni
il numero non è il modo se 6063
gli animali nei cani sono nell’80 18 noi
avere 64 animali nella zona del gatto e il
stessa situazione è il in 80 81 come
Puoi vedere
adesso
avresti detto che avresti detto forse questo
la configurazione richiederà anche a te
davvero tanto lavoro e in realtà non lo è
questo è tutto ciò che è necessario per configurare e
la connessione lato client a questo
cluster definiamo una dog shop per il cane
valore della specie che chi è il
database predefinito cane zoo nell’URL
ci sono gli 80 18 centesimi e noi abbiamo il
gatto il cui principale giorno urologico è l’80 81
istanza e il database predefinito è il
Quetzal e in seguito definiamo il
spingere la strategia e siamo a posto
e in realtà il suo utilizzo è semplice come
hai visto prima che diciamo solo che creiamo
una nuova sessione ti chiediamo di archiviare e
il cliente appare secondo il tutto
la configurazione che abbiamo visto prima del naso
a cui uno dei server per inviare il
dati ora solo per il
dimostrazione da vedere mi piacerebbe chiudere
in basso una delle istanze
e vedi cosa succede
in realtà dopo il primo avvio prima
ritardo che abbiamo visto nel loro
scenario applicativo, continuiamo ad andare avanti
possiamo guardare il database 80 81 e
vedere che continua ad aggiornare e come te
può vedere i numeri solo aggiornare di nuovo in
questo scenario anche noi spariamo di nuovo il
Istanza 8080 e
se questo è è sincronizzato e in
questa volta possiamo uccidere l’altra istanza
anche e avere gli stessi risultati
ok
bene
come puoi vedere qui, continuiamo a tenere
andando e se spareremo di nuovo l’ 80 81
esempio
andrà bene ora vedo che io
ha parlato un po ‘prima e quindi mi piacerebbe
mostraci un paio di altre cose che noi
può fare con le entrate essere e non solo
non perdere tempo, quindi vado avanti
e vai all’8080 e al database e loro
creare un nuovo database Northwind e ora
è vuoto e in realtà una cosa carina
quello che abbiamo è che permettiamo di creare
esempio che so solo avere
qualcosa con cui giocare e qui abbiamo
è bello e allora diamoci da fare
dai un’occhiata ai nostri indici in realtà
Indica che secondo molte cose
come i totali degli ordini ma abbiamo
questo in questo indice che è solo 89
voci e questo in questo indice è
in realtà un indice MapReduce ora che cosa
successo qui è quello e revin DB
permette di fare una MapReduce pre calcolata
il che significa che a differenza di altri
casi in cui devi andare a tutto il
documenti per ogni query e mettere e fare
l’operazione MapReduce lo fa è
tempo libero e poi lo memorizza nel
indice leucino in questo modo questo record
vedi della società conta in totale
può essere interrogato e OH purtroppo
ancora una volta ho la stessa freccia da provare
superarlo
No
ok
e
vedi cos’altro mi piacerebbe mostrarti
beh, va bene, mostrerò la patch di ipi
in realtà ti permettiamo di inviare un Java
codice che elaborerà un tutto molto molto
grande quantità del documento e il
lato server, quindi tu vuoi che lo sappia
interrogare il documento per cambiarlo e inviarlo
torna indietro lascia che sia il database a fare il
tutto e solo per esempio io sono
andando a prendere una collezione dire una società
e per chiederlo
bene
appena
hmm
creando un nuovo campo di creazione e
in realtà in peso
in modo molto semplice possiamo ottenere
come si può vedere ogni nuova società che
abbiamo creato l’avevamo con cui ce l’abbiamo
questa discarica ok domande sì sì
per prima cosa si tratta di come guardiamo
transazioni MongoDB è un buon primo
database e per quanto ne so
le transazioni finiscono con l’essere dei dati
salvato nella rampa nella sua ottimizzazione è
a scegliere da solo il momento giusto per
prendere tutte le modifiche che devono essere
salvato e servirlo per l’archiviazione noi
prenditi il ​​tempo e aspettiamo i dati
è in realtà nel database, nel caso in cui
che la rottura del sistema è qualcosa di simile
che sappiamo che l’archiviazione ha il
dati il ​​suo primo secondo come guardiamo al
interroga chiunque usi MongoDB a meno che non lo sia
un caso molto semplice che vorrei
in realtà integrarlo con qualche ricerca
motore potrebbe scegliere di implementarlo
da solo per implementarlo su base di
la stessa macchina o scegli lo sai
motori come LA o elettrici
elasticsearch su cui si basano anche
perdere che è solo un molto intelligente
tecnologia per interrogare in 11 DB
sei solo pronto ad andare non hai
per fare queste integrazioni il
la diluizione è integrata in internet
è un pessimo sito perderlo
integrato all’interno del venditore essere così è
tutto su semplicità come hai visto il
la sintassi è tutto e tutto sono come te
solo può iniziare a lavorare e ottenere il
i risultati sono stati molto veloci
perché non ho una moglie una connessione
qui userò semplicemente il codice demo perché
altrimenti dovrò scaricare il
client da nugget fino al tempo richiesto
no non voglio visualizzare l’anteprima della licenza
al di sopra di
e
diciamo che abbiamo una somma
Più persona è
eccoci qui
a partire dal
mmm
è dispiaciuto che la mamma tardino cosa fai
significa nello spettacolo interattivo che è il
uno non ho potuto commentare ma non tu
avere la qualità che devi scrivere un
per connettersi al database a
autenticare sì, in realtà abbiamo il
riposa api e che puoi fare puoi fare
la stessa stessa query che
non restituisce valori in realtà e
è così che la loro ricerca sembra così sì se
vuoi essere molto, lo sai
Chiamata di basso livello conosci una ricerca di riposo
l’utente che puoi fare tutto ciò che è l’API del cliente
basato sul ragazzo rustico
questo vuol dire per gente in crosta
Comunque
la dashboard mostra il database
le prove che stavano facendo sharding ne avevano 100
di questi attraverso la ricetta come nel
modo
per il vero il resto api dovrete farlo
sì, devi ricordarlo da solo
un cliente un abbonamento a pagamento il cliente in
l’a attraverso la ricetta dovrà
implementare tutte le logiche gridanti
in realtà si raffredda sul lato client così
dovrai implementarlo tutto da
te stesso ma ancora una volta abbiamo il punteggiato
client e il client Java così nella maggior parte
casi sarà abbastanza sarà buono
inoltre abbiamo clienti che hanno scelto di utilizzare
il resto api e sono felici con esso
la mia domanda è se volessi usarlo in
un ritmo veloce
r
si e avresti lasciato il database
avere l’informazione che c’è un
conflitto e utilizzare una specifica API fare a
aiuta a ricevere tutto il possibile
risoluzioni e sceglierne uno o creare o
uno dei tuoi grazie mille per
ascoltando

Please follow and like us: