BerkeleyDB współbieżności

głosy
25
  • Jaki jest optymalny poziom współbieżności, że implementacja C ++ z BerkeleyDB można racjonalnie wspierać?
  • Ile mogę mieć gwinty młotkiem daleko na DB przed przepustowość zaczyna cierpieć z powodu niezgody zasobów?

Czytałem instrukcję i wiedzieć, jak ustawić liczbę zamków, szafki, bazy danych, rozmiar strony itp ale ja podobnie jak kilka rad od kogoś, kto ma doświadczenie w świecie rzeczywistym z BDB współbieżności.

Moja aplikacja jest dość prosta, będę robić dostaje i stawia zapisów, które są o 1 KB każdy. Brak kursory, nie usunięciem.

Utwórz 02/08/2008 o 00:28
źródło użytkownik
W innych językach...                            


5 odpowiedzi

głosy
4

Czy to nie zależy od sprzętu, jak również liczby wątków i rzeczy?

Chciałbym zrobić prosty test i uruchomić go z rosnącą ilością wątków młotkiem i zobaczyć, co wydaje się najlepiej.

Odpowiedział 02/08/2008 o 19:21
źródło użytkownik

głosy
10

To zależy od tego, jaki rodzaj aplikacji, którą budują. Tworzenie reprezentatywny scenariusz testowy i rozpocząć młotkiem dala. Wtedy poznacie ostateczną odpowiedź.

Poza Twoim przypadku użycia, to również zależy od procesora, pamięci, magistrali FSB, systemu operacyjnego, ustawień pamięci podręcznej, etcetera.

Poważnie, po prostu przetestować swój własny scenariusz.

Jeśli potrzebujesz kilka liczb (który faktycznie może oznaczać nic w swoim scenariuszu):

Odpowiedział 03/08/2008 o 13:34
źródło użytkownik

głosy
1

Co zrobiłem podczas pracy z bazą danych o nieznanej wydajności było mierzyć czas realizacji na moje pytania. Ciągle upping thread count aż odwrócić czas spadły, i upuszczanie thread count aż odwrócić czas poprawie (dobrze, to procesy w moim otoczeniu, ale co tam).

Były średnie ruchome i wszelkiego rodzaju danych zaangażowanych, ale lekcja wynos było: po prostu dostosować do tego, jak rzeczy działają w tej chwili. Nigdy nie wiadomo, kiedy będzie DBA zwiększyć wydajność lub sprzęt zostanie uaktualniony, a może inny proces będzie przyjść w dół, aby załadować system natomiast używasz. Tak dostosować.

Aha, i jeszcze jedno: unikać proces przełącza jeśli możesz - partia rzeczy.


Och, muszę zrobić to jasne: to wszystko wydarzyło się w czasie wykonywania, a nie w trakcie rozwoju.

Odpowiedział 04/08/2008 o 08:45
źródło użytkownik

głosy
2

Sposób, w jaki rozumiemy rzeczy, Samba stworzony TDB , aby umożliwić „wielu jednoczesnych pisarzy ” dla konkretnego pliku bazy danych. Więc jeśli obciążenie zawiera wiele pisarzy swoją wydajność może być złe (jak w projekt Samba postanowił napisać swój własny system, najwyraźniej dlatego, że nie był zadowolony z wydajności Berkeley DB w tym przypadku).

Z drugiej strony, jeśli obciążenie jest dużo czytelników, to pytanie brzmi, jak również system operacyjny obsługuje wiele czytelników.

Odpowiedział 16/09/2008 o 18:31
źródło użytkownik

głosy
7

Zdecydowanie zgadzam się z punktu Daan za: tworzenie programu testowego, i upewnij się, że sposób, w jaki uzyskuje dostęp naśladuje dane jak najdokładniej wzory można oczekiwać aplikacja mieć. Jest to niezwykle ważne z BDB, ponieważ różne wzory dostępu uzyskując bardzo różną przepustowość.

Poza tym, są to ogólne czynniki okazały się mieć znaczny wpływ na przepustowość:

  1. Metoda dostępu (co w twoim przypadku chyba jest btree).

  2. Poziom trwałości, z którą skonfigurowanego DBD (na przykład w moim przypadku flagą „” środowisko DB_TXN_WRITE_NOSYNC poprawiły wydajność zapisu o rząd wielkości, ale kompromituje wytrwałość)

  3. Czy roboczego ustawić zmieścić się w pamięci podręcznej?

  4. Ilość Czyta Vs. Pisze.

  5. Jak rozłożyć dostępu (należy pamiętać, że btree ma blokowanie poziom strona - tak dostępie do różnych stron z różnych wątków jest dużą zaletą).

  6. Dostęp wzór - meanig ile prawdopodobne są nici do blokują się nawzajem, a nawet impasu i jakie są zasady rozdzielczość impasu (ta może być mordercą).

  7. Hardware (dysk i pamięć cache).

Sprowadza się to do następującej kwestii: Skalowanie rozwiązanie oparte na DBD tak, że zapewnia większą współbieżności ma dwa główne sposoby będzie o niej; albo zminimalizować liczbę blokad w projekcie lub dodać więcej sprzętu.

Odpowiedział 13/10/2008 o 22:59
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more