Které české weby používají NoSQL databáze? rubrika: Databáze: NoSQL

10 Michal Illich
položil/-a 9.9.2010
 
upravil/-a 26.2.2013

Více o nějakých českých webových projektech, které používají NoSQL databáze? (couchdb, mongodb, cassandra, atd.)

Jsou někde popsané jejich zkušenosti, tedy proč a jak vybrali danou nosql databázi a jak vše probíhalo?

Komentáře

  • honzajavorek : Tohle bych čekal spíš v NoSQL rubrice :) 15.2.2013
  • Michal Illich : No jo, tu jsme ale v září 2010 ještě neměli :) - změněno teď... 26.2.2013
odkaz
1 ales.kafka
odpověděl/-a 22.4.2012

Na začátku vývoje SUPRAPHONline.cz jsme přemýšleli, jak co nejlépe reprezentovat umělce u alb a skladeb. Většina hudebních služeb založí záznam v tabulce artist, přičemž jednotlivé umělce oddělí čárkou, a pracuje s unikátním ID a vztahem 1:N. To má značnou nevýhodu při procházení katalogu, protože u dílčích umělců nejsou (bez dalších úprav) k dispozici alba, na kterých se podílelo umělců více. Proto jsme zvolili vztah N:M a pro procházení umělců používáme MongoDB, která podporuje sekundární index nad polem hodnot.

Rychlost Monga jsme využili i pro kešování výsledků našeptávání, čímž byla docílena prakticky okamžitá odezva na hledaný výraz. Nabízela se možnost využít i defaultní kešování z Nette (pomocí souborů), ale kvůli velkému množství záznamů (desítky tisíc) jsme tuto variantu zavrhli. MongoDB nám navíc dovoluje udržovat statistiku hitů a nejžádanější výrazy pak při změně katalogu prioritně předgenerovávat.

Interně testujeme (a plánujeme použít zejména v budoucích projektech) kvalitní podporu Geospatial indexu a některé další databáze:

  • ElasticSearch pro fulltextové vyhledávání
  • Cassandru pro ukládání velkého množství uživatelských dat a logování
  • Redis pro ukládání PHP SESSIONS, pro práci s dočasnými množinami (s využitím řazení dle score) a také pro zajištění rychlé komunikace mezi klienty, Node.js a PHP (pomocí SUB/PUB messaging systému).

Komentáře

  • ehmo : Mozem otazku? Ako viete, ako to robi vacsina podobnych sluzieb a preco by niekto vobec pridaval zaznam ku skladbe systemom "umelec, umelec, umlec". To nedava zmysel v ziadnom databazovom navrhu. Ja osobne milujem MongoDB, u nas pouzivame napr. aj Redis aj ElasticSearch. No neviem si uplne vysvetlit tu cast, ktoru ste pisali na zaciatku. 26.4.2012
  • mrazicek : Preco nekesujes do memcache alebo niecoho co je na tento ucel vytvorene? 12.10.2012
  • ales.kafka : @ehmo: Většina vydavatelství při výpisu alba vyžaduje zobrazení takzvaného display artist (např. 'Pražská komorní filharmonie, Jiří Bělohlávek'), který se právě často skládá z více oddělených umělců. I pro takové projekty jako Deezer je nejjednodušší založit nový záznam a jako bonus jej udělat klikatelný. Podobným způsobem pak vznikají umělci 'Various Artists', kde se seskupuje tisíce rozdílných titulů. My nic takového na SUPRAPHONline.cz nemáme, vše je dostupné na podstránkách jednotlivých participujících umělců. @mrazicek: Pokud bychom kešovali neměnné vykreslované snippety (alba, výpis výsledků, atd.), tak bychom zajisté použili Memcache. Nicméně potřebujeme nad nakešovanými výsledky našeptávání provádět určitě operace, ke kterým je potřeba udržovat informace o počtu hitů a posledním vygenerování. Např. zajistit, aby se při hromadném zinvalidování nejprve předgenerovaly ty nejpoužívanější dotazy, anebo invalidovat všechny záznamy, které obsahují konkrétní podvýraz. 15.10.2012

Pro zobrazení všech 13 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.