Skip to content

vyber_install_nonsql

cosmo-cz edited this page Aug 6, 2014 · 1 revision

Table of Contents

Aplikační server

Od začátku byl jako jediný kandidát brán node.js s výhodnými vlastnostmi:

  • integrovaný webový server moderní architektury (ne více procesový nebo více vláknový ale postavený kolem systémového volání epoll)
  • event driven – může současně probíhat mnoho tisíc operací bez potřeby synchronizace
  • všechny systémové a externí operace jsou neblokující, po dokončení je volána callback funkce
  • programován ve skriptovacím jazyce – rychlé úpravy a vývoj

Uvažované databáze

CouchBase

Designem se zdá CouchBase řešení výhodnější:

  • může běžet celé v paměti, distribuované přes více levných serverů
  • databáze CouchDB se využívá pouze pro perzistenci
  • nativní multi master replikace více vyhovuje požadovanému robustnímu řešení (geograficky oddělené frontendy)

MongoDB

Prakticky je ale MongoDB v současnosti lepší volba:

  • rychleji se vyvíjí, větší komunita
  • lepší konektory do node.js
  • bezproblémová podpora utf8
  • více bližší klasickému databázovému modelu (CouchBase je zatím ne úplně sladěné spojení key-value databáze MemBase s CouchDB)

CBVK

  • posílena síťová konektivita
  • posíleno výkonné diskové pole
  • využita virtualizace výkonného serveru s redundancí
Toto odpovídá spíše klasickému pojetí třívrstvé aplikace než cloudové databázi v paměti

Závěry

  • Zvoleno MongoDB, více vyhovuje zvolené hardwarové architektuře a topologii zvolené CBVK
  • V případě potřeby enormního výkonu je možné do budoucna uvažovat o předřazení MemCache vrstvy, nebo zvážit přeportování frontnedu na CouchBase (pokud se po zhodnocení ukáže jako výhodnější). V obou případech bude potřeba mnohem více paměti než v současnosti bez velkých nároků na úložiště, stávající hardware může být dále využíván na provoz backendu.
Clone this wiki locally