Digg porzuca MySQL

13.03.2010 17:28, Autor: Grzegorz Niemirowski (gniemirowski), Kategoria: News
NewsImage

Serwis Digg podjął decyzję o porzuceniu oprogramowania bazodanowego MySQL na rzecz koncepcji NoSQL.

Powodem zmiany są coraz większe problemy w tworzeniu wysoko wydajnej aplikacji zapisującej duże ilości danych w coraz większym zbiorze informacji. Dotychczas starano się obejść te problemy poprzez podział danych, zarówno horyzontalny jak i wertykalny. Niestety spowodowało to zniknięcie zalet jakie ma relacyjna baza danych (MySQL), podczas gdy pozostał wywoływany przez nią narzut. Ważna jest także możliwość rozproszenia operacji na wiele centrów danych oraz wymiana i dodawania węzłów bez przerywania działania aplikacji. Tutaj także MySQL przestał być wystarczający.

Rozwiązaniem tych problemów, przy założeniu możliwości poluzowania wymogów spójności danych, jest koncepcja NoSQL. Zrywa ona z pojęciem relacyjności, często nie ma określonego schematu tabel, unika operacji join oraz zazwyczaj skaluje się horyzontalnie. Rozwiązaniami służącymi do przechowywania danych, opartymi o NoSQL, jest m.in. BigTable opracowane przez Google oraz Dynamo od Amazona. Projektem Open Source tego typu jest Cassandra, to właśnie ona została wybrana przez Digga. Cassandra łączy w pewnym stopniu tamte rozwiązania: jest rozproszoną bazą danych z modelem danych zaczerpniętym z BigTable oraz infrastrukturą podobną do Dynamo. Cechuje się bardzo dużą niezawodnością, nie posiada punktu, którego uszkodzenie uniemożliwiłoby pracę reszty systemu. Cassandra jest bardzo skalowalna a szybkość jej działania rośnie liniowo wraz z dodawaniem nowych węzłów. Zapisanie 50 GB danych może zająć nawet jedynie 0,12 sekundy, a więc wielokrotnie szybciej niż byłoby to możliwe na MySQL.

W tej chwili większość funkcji Digga działa już na Cassandrze. Serwis wprowadził też swoje ulepszenia do tego projektu.

Źródło: Digg
r   e   k   l   a   m   a

Komentarze (27)  

AvatarUżytkownik jest nieaktywny
jaczula | 13.03.2010 17:40#1

Jeśli przy większej ilości danych czas zapisu rośnie liniowo, to 50 GB / 0.12 s = 417 GB/s. Imponująca liczba.

Avatar
M. (niezalogowany) | 13.03.2010 18:40#2

Oczywiście autor artykułu zapomniał napisać ze taką szybkość zapisu można osiągnąć tylko na papierze, gdyż aktualnie żadna forma przechowywania danych nie pozwala na tak szybki zapis,
a jezeli będzie to In-Memory-DB to max zapis będzie ograniczony do poziomu szybkości szyny.

Avatar
ExPerrt (niezalogowany) | 13.03.2010 21:06#3

Wchodzę co jakiś czas na DP od momentu ukazania się tego wpisu żeby zobaczyć wypowiedzi użytkowników na ten temat a tu ciągle tylko dwa komentarze.
Czyżby brakowało tutaj ekspertów w dziedzinie baz danych?
Wszyscy albo łindołsiarze albo linuksowcy ewentualnie firefoksiarze albo operowcy?

Avatar
Sqlowiec (niezalogowany) | 13.03.2010 21:22#4

A ty ExPerrt czym jesteś ?

Avatar
badwray (niezalogowany) | 13.03.2010 21:32#5

Też ostatnio zastanawiałem się nad migracją w moim projekcie na inny system bazy danych niż mysql, ta baza od paru lat nie oferują za bardzo nic nowego. System relacji w porównaniu do postgre to jest porażka ;), już nie wspomnę o trigerach.

Nie wspominam już o niepewnej przyszłości tej bazy, przez zakup Oracle.

Avatar
kask w chełmie (niezalogowany) | 13.03.2010 23:02#6

"Czyżby brakowało tutaj ekspertów w dziedzinie baz danych?"

Jest za mało informacji. Pojawią się newsy o DB2 to sie zacznie wyścig zbrojeń :D

Avatar
pl/sql rulze ;) (niezalogowany) | 13.03.2010 23:23#7

Ja na co dzień pracuje na bazie Oracle. Danych w bazie jest w ciul. Nie wyobrażam sobie pracy na innej bazie danych, tym bardziej bazie która nie jest oparta o relacje.

AvatarUżytkownik jest nieaktywny
hINDUss | 13.03.2010 23:31#8

@gniemirowski
piękny art, rzucasz wysoce technicznych żargonem, nie wyjaśniając go ani o jotę
skalowalność/podział danych horyzontalny, wertykalny? relacyjność i jej brak? poluzowanie wymogów spójności danych? węzły?

nikt, ale to NIKT, kto nie ma profesjonalnie kontakt z bazami danych, lub nie miał tego na studiach nic, ale to nic nie zrozumie z tego newsa...

AvatarUżytkownik jest nieaktywny
Aule | 14.03.2010 0:06#9

E tam. Ja rozumiem. A Cassandra nie jest przypadkiem wykorzystywana już na Facebooku?

Avatar
Anonim (niezalogowany) | 14.03.2010 0:34#10

hinduss, a czy to serwis dla przedszkolaków?

Avatar
Anonim (niezalogowany) | 14.03.2010 1:19#11

Czy w języku polskim brakuje słowa poziomo/pionowo? Co to za pseudo tłumaczenia horyzontalnie i wertykalnie? Jest skalowalność pozioma i pionowa a nie jakaś tam wertykalna...

AvatarUżytkownik jest nieaktywny
Limak | 14.03.2010 1:38#12

to że relacyjne bazy danych mają wiele minusów wiadomo nie od dziś - problem w tym, że są tak popularne iż ciężko się teraz z tego wycofać...

AvatarUżytkownik jest nieaktywny
n-pigeon | 14.03.2010 8:46#13

@ Aule

Facebook zdaje się rozpoczął ten projekt i jest jego głównym twórcom, ale głowy nie dam.

Avatar
Mateusz Bogusz (niezalogowany) | 14.03.2010 11:01#14

jaczula i M. czytajcie uważnie.

"...szybkość jej działania rośnie liniowo wraz z dodawaniem nowych węzłów."

Prędkość zapisu da się zwiększać dodając nowe węzły.

AvatarUżytkownik jest nieaktywny
M@ster | 14.03.2010 12:07#16

@etam
Ale w odniesieniu do skalowalności zwykle używa się pionowa/pozioma... to że słowo istnieje to inna kwestia.

AvatarUżytkownik jest nieaktywny
Gitma-Dżones ;< | 14.03.2010 16:37#17

Nie każdy przecież jest twórca facebooka. Większość i tak korzysta z MySqL i jest zadowolona.

Avatar
glx (niezalogowany) | 14.03.2010 21:41#18

Dla mnie 50GB/0,12s to bardzo dużo ale pewnie w wielkich zastosowaniach i to może nie wystarczyć, więc było lepsze rozwiazanie to je wybrali.

AvatarUżytkownik jest nieaktywny
noose | 15.03.2010 7:42#19

Dla ludzi którzy nie chcą się bawić w cassandrę (mi nie pasuje API chociażby:P) to polecam MongoDB. Proste, szybkie (2x QuadCore 2.8GHz, 12GB ramu, 4x dysk SATA II w raid 10 - 1mln insertów po 30kB / min)

Avatar
xoxo (niezalogowany) | 15.03.2010 8:17#20

Hasło NoSQL na wiki:
"NoSQL is a movement promoting a loosely defined class of non-relational data stores that break with a long history of relational databases and ACID guarantees.[1] These data stores may not require fixed table schemas, usually avoid join operations and typically scale horizontally"

Czy nie wygląda to znajomo?

Avatar
kriss1 (niezalogowany) | 15.03.2010 10:12#21

@M@ster
Takie błedy w tłumaczeniu wynikają z tego, że autor nie za bardzo ma pojęcie o technologii

Avatar
grrrrrr (niezalogowany) | 15.03.2010 10:24#22

ano MySQL jest dla średniej klasy biznesu, przy olbrzymich bazach wysiada... wiec prędzej czy póżniej musieli zmienić baze danych, przy takim tempie wzrostu danych

Avatar
Anonim (niezalogowany) | 15.03.2010 10:38#23

Brak przypisu = plagiat:)

Co do NoSQL to ciekawe - muszę się przyjrzeć temu rozwiązaniu.

Avatar
kriss1 (niezalogowany) | 15.03.2010 12:34#24

@marines
Hinduss ma rację.
Często na DP autorzy newsów po prostu tłumaczą je z zagranicznych serwisów bez wgryzania się w szczegóły techniczne.
Chociaż i tak od pewnego czasu się to poprawiło. Przykładem są np. opisy zmian w kernelach linuxa.

@grrrrrr
Z tego co pamiętam to Yahoo od lat używa (podrasowanego) MySql. A nie jest to mała firma z niedużą ilością danych

AvatarUżytkownik jest nieaktywny
Docent (redakcja) | 15.03.2010 13:14#25

@hINDUss:

Niektórych rzeczy po prostu nie da się opisać w bardziej przystępny sposób, niewymagający choć szczątkowej znajomości tematu. W tym przypadku chyba tak jest - dobreprogramy mają bardzo szerokie grono czytelników, od tych całkiem początkujących do naprawdę starych wyjadaczy IT ;) Staramy się tak balansować poziomem naszych publikacji, by wszyscy znaleźli coś dla siebie - ten news należy właśnie do tych bardziej zaawansowanych. Z definicji bowiem użytkowników, którzy nie wiedzą, co to jest horyzontalne partycjonowanie danych nie interesuje, że jakiś serwis zmienił silnik bazodanowy X na Y...

Avatar
spacmisiechce (niezalogowany) | 15.03.2010 21:49#26

Bardzo częstym "przeoczeniem" przy przesiadkach jest niedostrzeganie możliwości optymalizacji i bazy i zapytań SQL. To jak przy zmianie komputera - nikt nie ma czasu by "przesiać" i zweryfikować posiadany stan - tylko kopiuje "na pałę" jak leci wszystko.

Dopiero po jakimś czasie jak przypadkiem wraca do przesiewki stwierdza :: qrde - w sumie to mało zostało. Każdy kod, program, i bazę danych można zoptymalizować.

Zapraszam kolegów i koleżanki do szacowania wielkości możliwych posiadanych danych przez znane serwisy jak Facebook czy Digg, albo narodowe :: allegro, NK, wykop, DP :)

AvatarUżytkownik jest nieaktywny
hINDUss | 16.03.2010 21:21#27

@Docent: no właśnie, dowiedziałem się czegoś ciekawego, czego nie wiedziałem, ale przez szybką formę newsa tylko rzucono hasłami bez wyjaśnienia w czym leży rzecz...
ja wiem że czas goni, rutyna i kolejny newsik czeka itd... ale cieszyłbym się z mini artykułu bliżej opisującego daną technologię z okazji pierwszego jej opisania na łamach DP

Dodaj komentarz

Zasady publikowania komentarzy
Autor
Treść
 
Program tygodnia
GIMP 2.6.12

Ocena: 8.8
icon
Polecamy
Test: Samsung 830 256 GB

Dysk SSD warty uwagi
Dolina Charlotty
Top programy
  •  
Top programy ostatnie 7 dni
  •  
Top programy ostatnie 30 dni
  •  
Skanery antywirusowe
skaner av