konto usunięte

Temat: [RDBMS][OLTP] Open Source

Witajcie,

Mam pytanie dotyczące relacyjnej bazy pracującej w modelu OLTP. Czy mielibyście coś godnego do polecenia? Moje wymagania to:

- licencja open source
- elastyczna skalowalność
- kompatybilność z hibernate
- mechanizmy replikacji/failoveru

Wiem, że są to dość ogólne wymagania, aczkolwiek na ten etap dla mnie najistotniejsze. Ciekaw jestem Waszych opinii.

PS. Próbuje znaleźć alternatywę dla Oracle ;)

konto usunięte

Temat: [RDBMS][OLTP] Open Source

PostgreSQL -> http://www.postgresql.org/
MySql

konto usunięte

Temat: [RDBMS][OLTP] Open Source

Jak rozumiem PostreSQL można klastrować?
Andrzej W.

Andrzej W. Oracle Database
Developer

Temat: [RDBMS][OLTP] Open Source

Można ale jest to realizowane przez dodatkowe oprogramowanie i chyba większość wspiera tylko odczyt, ale to już trzeba by było poczytać.

konto usunięte

Temat: [RDBMS][OLTP] Open Source

Właśnie czytam i wychodzi, że albo jest to dość drogie (pgcluster - min 6 maszyn) albo w wersji beta jak Postgres-XC. Zastanawiam się więc, czy jedyną metodą skalowania postgres'a jest kupienie bardziej wypasionej maszyny ;/

konto usunięte

Temat: [RDBMS][OLTP] Open Source

A ma ktoś doświadczenia z MySQL Cluster?

konto usunięte

Temat: [RDBMS][OLTP] Open Source

Marcin Romanowski:
Właśnie czytam i wychodzi, że albo jest to dość drogie (pgcluster - min 6 maszyn) albo w wersji beta jak Postgres-XC. Zastanawiam się więc, czy jedyną metodą skalowania postgres'a jest kupienie bardziej wypasionej maszyny ;/

Jeszce możesz popatrzeć na http://www.pgpool.net

konto usunięte

Temat: [RDBMS][OLTP] Open Source

Rozważam też rezygnację z klastra. Jednak musiałbym wiedzieć, jakie wyniki TPS osiąga Postgres dla np 1, 2, 4, 16, 32 CPU. Można by określić wtedy mniej więcej skalowalność tej bazy. Jeśli ktoś dysponowałby takimi wynikami byłbym wdzięczny:)
Łukasz Dudek

Łukasz Dudek Database
Administrator

Temat: [RDBMS][OLTP] Open Source

pff ... konkrety prosim.
select/insert,delete,update/sekundę
i co rozumiesz przez klaster ...

konto usunięte

Temat: [RDBMS][OLTP] Open Source

No nie wiem co tu nie jest jasne. TPS czyli transactions per second - liczba atomowych operacji wykonanych w czasie 1 sekundy. Dla bazy danych podaje się to głównie dla operacji insert/update/delete/commit/rollback. Natomiast klaster bazodanowy to grupa połączonych ze sobą serwerów/instancji baz danych, które współpracują ze sobą w celu udostępnienia zintegrowanego środowiska pracy, w tym przykładzie dostępu do bazy danych.

konto usunięte

Temat: [RDBMS][OLTP] Open Source

Przecież to zależy nie tylko od CPU. To zależy od dysków, konfiguracji, CPU, ilości ramu… To jakby podać zależność prędkości samochodu od liczby cylindrów bez wzięcia pod uwagę, że jeden jedzie pod górę, a drugi z góry.

Ostatni press release (http://www.postgresql.org/about/press/presskit92/pl/) podaje

Do 350 000 odczytów na sekundę
Do 14 000 zapisów danych na sekundę

Gdzieś miałem informacje, na jakiej maszynie to testowano. Poszukać?

konto usunięte

Temat: [RDBMS][OLTP] Open Source

Pogrzebałem sobie :)

Tu jest mały teścik (maszyna miała 64 CPU):

http://rhaas.blogspot.jp/2012/04/did-i-say-32-cores-ho...

Do testów postgresa standardowo używa się pgbench, programu, który robi testy prawie zgodnie z TPC-B.Szymon G. edytował(a) ten post dnia 06.03.13 o godzinie 15:31

konto usunięte

Temat: [RDBMS][OLTP] Open Source

Oczywiście, że zależy. Ale jeśli wszystko pozostaje stałe, a dokładamy tylko liczbę corów to mamy jakieś odniesienie. To ja też już odnalazłem. Jednak wydaje mi się to zbyt idelane, żeby mogło być prawdziwe. Ciekawe czy ktoś publikuje to dla jakiegoś rzeczywistego systemu. Przy takich badaniach jest to powtarzanie tej samej sekwencji zapytań - głównie odczytów. A takie zachowanie nie jest charakterystyczne dla aplikacji udostępnionej użytkownikom.

konto usunięte

Temat: [RDBMS][OLTP] Open Source

A rzeczywiście, dopiero teraz zauważyłem, że tam były testowane tylko odczyty… (parametr -S).

Nie wiem czego oczekujesz, może sam sobie zrób takie testy, to jest całkiem proste. Akurat nie mam pod ręką maszynki z tyloma rdzeniami do zabawy. Rzeczywisty system ma to do siebie, że sama charakterystyka aplikacji wpływa na wydajność, nie da się tego z niczym porównać. Samo dołożenie replikacji, czy robienie kopii w tle, może zakłócić wyniki.

Nie sądzę, żeby jakiekolwiek wyniki były miarodajne. Dajmy na to zestaw trzech serwerów, z różną liczbą rdzeni i różnymi dyskami… na jeden idą zapisy, całość jest replikowana na dwa pozostałe serwery. Transakcje są różne, aplikacje używają cachowania danych, lecą raporty, importy i backup. Jak powiem, że tam jest aktualnie 300 TPS, to coś to powie o czymkolwiek?

A za chwilę mogę mieć 1000 TPS, bo backup się zrobił, importy też i dyski śpią…

Za chwilę ktoś inny może pokazać inne wyniki, ale dla większej liczby rdzeni może mieć więcej TPS, albo mniej… bo ma inną aplikację.

Kiedyś napisałem fajną zabawkę do importowania danych. Transakcja szła 4 godziny. Dzięki temu, że to jedna transakcja, to było szybciej, niż bez. Osiągnąłem 0.00007 TPS i było OK.

Chyba nie oczekujesz, że w takim systemie, nagle dołożę rdzeń, żeby testy porobić?

Obawiam się, że zadajesz niewłaściwe pytanie i nie dostaniesz na nie sensownej odpowiedzi.Szymon G. edytował(a) ten post dnia 06.03.13 o godzinie 16:08

konto usunięte

Temat: [RDBMS][OLTP] Open Source

Nie chodzi mi o konkretne wartości, a jedynie o skalowalność, chociażby uzysk %. A to uśredniając da się zmierzyć, nie koniecznie dokładając fizyczne cory. No ale jest szansa, ze coś takiego uzyskam. Postaram się podzielić tym :)
Łukasz Dudek

Łukasz Dudek Database
Administrator

Temat: [RDBMS][OLTP] Open Source

Marcin Romanowski:
No nie wiem co tu nie jest jasne. TPS czyli transactions per second - liczba atomowych operacji wykonanych w czasie 1 sekundy. Dla bazy danych podaje się to głównie dla operacji insert/update/delete/commit/rollback.
To się zdziwisz jak ci powiem że ilość zapisów podawanym tps jest dosyć mała :) atomowe opracje to głównie proste selecty :) + zapisy ale to jest zwykle mniej niż 20%. (każdy dobiera ten wskaźnik jak mu się podoba i jak uważa modelowe użycie bazy danych), W dodatku sql sqlowi nie równy, a w czasie selecta może także zachodzić potrzeba zapisu (disk sorts, itd).
Chciałem stosunek odczyt do zapisu gdyż postgresowe mvc nie jest zbyt szczęśliwe przy bardzo częstych update. Za to mysql nie jest szczęśliwym wyborem przy bardzie skomplikowanym modelu bazodanowym czy bardziej skomplikowanych zapytaniach.

>Natomiast klaster bazodanowy
to grupa połączonych ze sobą serwerów/instancji baz danych, które współpracują ze sobą w celu udostępnienia zintegrowanego środowiska pracy, w tym przykładzie dostępu do bazy danych.

Ładna definicja. Ale co chcesz osiągnąć. Prawie każdy realizuje tą definicje inaczej. Chodzi ci o load balancing czy o high aviability a może partycjonowanie poziome/pionowe po maszynach czy tzw partycjonowanie geograficzne :)

Mysql cluster jest jeszcze bardziej ograniczony niż mysl, a spotkalem sie z opinią że mysql cluster swietnie sprawdza się jako hash->value NOSQL'owy a użycie tego jako rdbms to strzał w stopę.

Jak kolega zauważył zadajesz niewłaściwe pytania... Jak napiszesz konkrety czego potrzebujesz będziemy bardziej pomocni.Łukasz Dudek edytował(a) ten post dnia 06.03.13 o godzinie 18:25



Wyślij zaproszenie do