2016-03-30 21 views
6

Sto pensando di utilizzare BoltDB come DB principale di backend e ho poche domande con il mio codice Go; anche la tua opinione sull'utilizzo di BoltDB come DB principale di back-end.BoltDB prestazioni come backend DB

  1. Sto usando Go's net/http e uso boltDb come variabile globale.
  2. All'avvio del programma, verrà letto BoltDB e il file verrà aperto fino alla chiusura del programma.
  3. Quando le richieste (http) vengono inviate al programma, accederà a BoltDB. (HandleFunc)
  4. Non ho usato alcun canale.

Q1. La domanda più importante è BoltDB in grado di produrre con 1000 connessioni simultanee? Q2. Se ci fossero domande di scrittura simultanee, BoltDB elaborerà automaticamente uno per uno?

Grazie mille. Sono nuovo di Go e BoltDB e mi chiedo se sto usando DB giusto con la giusta direzione.

risposta

6

A1. Sì, lo usiamo con più di 1000 connessioni simultanee.

A2. Sì, il bullone è thread-safe, quando chiami db.Update, bloccherà il database, quindi sai che i tuoi dati saranno sempre coerenti.

Anche un suggerimento, non fare mai alcun sollevamento pesante all'interno della funzione di aggiornamento.

+0

Grazie mille! – Gon

+1

È possibile aggiungere una variabile * bolt.DB a un'implementazione http.Handler anziché a una variabile globale in modo da poterla testare più facilmente (e in parallelo). –

+1

Inoltre, è in grado di gestire la concorrenza in parallelo ad alta parallela ma le scritture verranno serializzate. Finché le tue 1000 richieste non stanno facendo tutte le scritture (o stanno facendo piccole scritture) dovresti stare bene. –