PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Głowy w chmurze na CHAR(10)

Niezależnie od tego, czy była to nasza konferencja CHAR(10) w zeszłym miesiącu, możesz teraz ponownie przeżyć część tego doświadczenia, pobierając slajdy z konferencji. Niektóre z nich zostały opublikowane na żywo podczas konferencji, niektóre pojawiły się później, ale już prawie wszystko jest. Niestety, zabawna prezentacja Nica Ferriera o tym, jak WooMe (przejęta przez Zoosk) została powiększona za pomocą Londiste i Django, nie była dostępna w formie, którą moglibyśmy łatwo odtworzyć. W tym przypadku z pewnością musiałeś tam być, na więcej niż jeden sposób.
Dwie rozmowy, które wydały mi się najbardziej pouczające, dotyczyły aktualizacji stanów pgpool-II i pgmemcache. Oba te narzędzia mają tę nieco frustrującą kombinację, że są naprawdę przydatne i nieco niedostatecznie udokumentowane w porównaniu z tym, jak bardzo są skomplikowane (przynajmniej w języku angielskim!), więc uzyskanie dodatkowego wglądu w nie od osób faktycznie pracujących nad kodem było świetne.
Dyskusja Markusa o MVCC i klastrowaniu również miała zabawny zwrot. Jego wystąpienie zakończyło się analizą wydajności jego Postgres-R względem pgpool-II, Postgres-XC i PostgreSQL 9 przy użyciu Streaming Replication plus Hot Standby, wszystkie używane w konfiguracjach klastrowych w celu przyspieszenia wyników testów dbt2. Nie do końca zgadzam się z jego założeniem, że przeciążenie sieci jest najważniejszym elementem klastra, ponieważ „całkowita moc obliczeniowa, pamięć i pojemność pamięci masowej można łatwo skalować” – to nie zawsze prawda – ale z satysfakcją zobaczyłem, że PG9 HS/SR parowanie jest pod tym względem skuteczne.
Konferencja przeznaczyła dwie sesje na omówienie ogólnych tematów grupowania w stosunkowo nieustrukturyzowany sposób. Bardziej gorąca dyskusja mówiła o tym, co ułatwiłoby wdrażanie PostgreSQL w infrastrukturze przetwarzania w chmurze. To wywołało wystarczająco dużo pomysłów, aby wygenerować już dwa wpisy na blogu od moich współpracowników.
Jednym z pomysłów z tej sesji, który wydał mi się szczególnie interesujący, było zauważenie, że jeśli masz wdrożenie, w którym węzły są dodawane w „elastyczny” sposób, który ludzie lubią Aby omówić w odniesieniu do koncepcji chmury, istnieje obecnie luka w zarządzaniu, jeśli chodzi o ułatwienie aplikacjom komunikowania się z tym zestawem węzłów. Jeśli możesz umieścić pgpool-II lub pgBouncer między twoją aplikacją a zbiorem węzłów, możesz wyabstrahować dokładnie to, co jest teraz za węzłami. Ale teraz dodałeś kolejną warstwę, a tym samym potencjalne wąskie gardło całej sprawy. Jest to przeciwieństwo elastycznych wdrożeń w chmurze:po prostu zwiększanie pojemności w razie potrzeby przy minimalnym nakładzie pracy.
Sugerowanym rozwiązaniem było ułatwienie budowania katalogu routingu bazy danych na poziomie aplikacji, tak aby aplikacje może po prostu poprosić o typ potrzebnego węzła i uzyskać taki, z którym można się bezpośrednio połączyć. Węzły mogą po prostu zarejestrować się w katalogu, gdy zostaną przeniesione do trybu online (lub zostaną usunięte). Ma to podobieństwa do niektórych komponentów, które już się unoszą. Część wyszukiwania katalogów, którą możesz umieścić w LDAP; Serwery PostgreSQL mogą już ogłaszać się za pośrednictwem ZeroConf AKA Bonjour. Nietrudno wyobrazić sobie połączenie tych dwóch elementów, tworząc warstwę aplikacji, która wykonuje wyszukiwania LDAP, połączoną z backendem routingu, który śledzi dostępne węzły za pomocą dowolnej liczby protokołów. Jak zwykle diabeł tkwi w szczegółach. Rzeczy takie jak limitowanie czasu uszkodzonych węzłów, rozróżnianie między ruchem odczytu i zapisu (pgpool-II robi to przez faktyczne analizowanie SQL, co jest drogie) i buforowanie wynikowych rozgłoszeń katalogowych w pamięci podręcznej w celu uzyskania wysokiej wydajności, przy jednoczesnym unieważnianiu pamięci podręcznej, są trudnymi szczegółami implementacji aby uzyskać właściwe rozwiązanie.
Dzięki PostgreSQL 9.0, który oferuje więcej niż kiedykolwiek sposobów skalowania architektury bazy danych w górę, ten problem nie znika. Nie jestem pewien, w jakiej formie ludzie będą go rozwiązywać, ale jest to na tyle powszechny problem, że warto go rozwiązać.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres:BŁĄD:plan w pamięci podręcznej nie może zmieniać typu wyniku

  2. Jak zmienić kolumnę PG na NULLABLE TRUE?

  3. Przegląd parametrów połączenia libpq sslpassword w PostgreSQL 13

  4. W jaki sposób search_path wpływa na rozpoznawanie identyfikatora i bieżący schemat?

  5. Jak zmienić hasło użytkownika w PostgreSQL