MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Współbieżność w gopkg.in/mgo.v2 (Mongo, Go)

mgo.Session jest bezpieczny do równoczesnego użytku. Cytując z jego dokumentu:

Wszystkie metody sesji są bezpieczne dla współbieżności i mogą być wywoływane z wielu gorutyn.

Ale to nie znaczy, że nie powinieneś tworzyć i używać więcej z nich równolegle, wywołując Session.Copy() lub Session.Clone() , w początkowej sesji uzyskanej podczas wybierania numeru.

Zapewnienie bezpieczeństwa dla współbieżności i czerpanie korzyści z używania większej liczby z nich nie wyklucza się nawzajem (nie wykluczają się wzajemnie ). Chociaż możesz użyć jednego mgo.Session z dowolnej liczby gorutyn, które nie będą się dobrze skalować, które nie będą się skalować w ogóle . Sesje automatycznie zarządzają pulą połączeń, może nawet z wieloma węzłami serwerów, ale jeśli używasz jednej Session , nie wykorzystujesz tego. Tworząc nową Session na początku każdego żądania (jeśli to konieczne) i poprawnie zamykając je na końcu (za pomocą Session.Close(); najlepiej wywoływane przy użyciu defer ), korzystasz z potencjalnego korzystania z wielu połączeń w tym samym czasie, prawdopodobnie z wieloma węzłami serwerów (jeśli są dostępne), a tym samym lepiej wykorzystujesz zasoby serwera; i uzyskanie szybszych czasów odpowiedzi (zarówno z bazy danych, jak i ostatecznie dla użytkowników końcowych HTTP). Wywołanie Session.Close() nie zamyka podstawowego połączenia z serwerem, po prostu przywróci połączenie z powrotem do puli, gotowe do przejęcia przez inną sesję.

Zobacz także powiązane pytanie dotyczące użycia Session s:mgo — wydajność zapytań wydaje się stale niska (500-650 ms)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wybierz dokumenty, w których wszystkie wartości w polu tablicy istnieją w innej tablicy

  2. Konfigurowanie połączenia singleton z node.js i mongo

  3. ABC NestJS:Przewodnik dla początkujących z MongoDB (Mongoose).

  4. Czy możesz użyć mongo $push prepend zamiast append?

  5. Prosta strona logowania w nodejs przy użyciu ekspresu i paszportu z mongodb