Tytuł: | Przetwarzanie danych w dużej skali. Niezawodność, skalowalność i łatwość konserwacji systemów | | Autor: | Martin Kleppmann | | ISBN: | 978-83-283-4065-7 | | Ilość stron: | 552 | | Data wydania: | 04/2018 | | Format: | 168x237 | | Wydawnictwo: | HELION | |
| Cena: | 89.00zł | |
Przetwarzanie i bezpieczne przechowywanie danych absorbuje uwagę inżynierów oprogramowania w coraz większym stopniu. W ostatnich latach pojawiło się wiele bardzo różnych rozwiązań w dziedzinie baz danych, systemów rozproszonych i metodyce budowania aplikacji. Sprzyjają temu zarówno rozwój technologii, rosnące potrzeby dotyczące dostępu do danych, jak i malejąca tolerancja na przestoje spowodowane awarią czy konserwacją systemu. To wszystko sprawia, że zespoły projektujące aplikacje muszą cały czas aktualizować swoją wiedzę i znakomicie orientować się w zakresie słabych i silnych stron poszczególnych rozwiązań oraz możliwości ich stosowania.
I właśnie ta książka Ci to ułatwi. Dzięki niej zaczniesz orientować się w świecie szybko zmieniających się technologii przetwarzania i przechowywania danych. Znajdziesz tu przykłady skutecznych systemów spełniających wymogi skalowalności, wydajności i niezawodności. Zapoznasz się z wewnętrznymi mechanizmami tych systemów, analizami najważniejszych algorytmów, omówieniem zasad działania i koniecznymi kompromisami. Przy okazji przyswoisz sobie przydatne sposoby myślenia o systemach danych. W ten sposób rozwiniesz dobre intuicyjne zrozumienie tego, jak i dlaczego działają systemy, co pozwoli Ci analizować ich pracę, podejmować trafne decyzje projektowe i wyszukiwać źródła pojawiających się problemów.
W tej książce między innymi:
- co to właściwie znaczy: niezawodność, skalowalność i łatwość konserwacji
- różne modele danych i obsługa zapytań
- replikacja, dzielenie danych, transakcje
- dane pochodne i ich przetwarzanie
- przetwarzanie strumieniowe
Poznaj systemy, w których liczą się dane!
Rozdziały:
Przedmowa (11)
I. PODSTAWY SYSTEMÓW DANYCH (17)
1. Niezawodne, skalowalne i łatwe w konserwacji aplikacje (19)
- Myślenie o systemach danych (20)
- Niezawodność (22)
- Skalowalność (26)
- Łatwość konserwacji (33)
- Podsumowanie (36)
2. Modele danych i języki zapytań (41)
- Model relacyjny a model oparty na dokumentach (42)
- Język zapytań o dane (54)
- Modele danych przypominające graf (60)
- Podsumowanie (72)
3. Przechowywanie i pobieranie danych (79)
- Struktury danych używane w bazie (79)
- Przetwarzanie transakcji czy analityka? (98)
- Bazy kolumnowe (103)
- Podsumowanie (110)
4. Kodowanie i zmiany (119)
- Formaty kodowania danych (120)
- Sposoby przepływu danych (134)
- Podsumowanie (144)
II. DANE ROZPROSZONE (151)
- Skalowanie pod kątem wyższego obciążenia (151)
5. Replikacja (157)
- Liderzy i obserwatorzy (158)
- Problemy z opóźnieniem replikacji (166)
- Replikacja z wieloma liderami (171)
- Replikacja bez lidera (180)
- Podsumowanie (193)
6. Podział na partycje (201)
- Podział na partycje i replikacja (202)
- Podział na partycje danych typu klucz-wartość (203)
- Podział na partycje a indeksy pomocnicze (207)
- Równoważenie partycji (210)
- Trasowanie żądań (214)
- Podsumowanie (216)
7. Transakcje (223)
- Niejasne pojęcie transakcji (224)
- Niskie poziomy izolacji (233)
- Sekwencyjność (250)
- Podsumowanie (263)
8. Problemy z systemami rozproszonymi (271)
- Błędy i awarie częściowe (272)
- Zawodne sieci (274)
- Zawodne zegary (283)
- Wiedza, prawda i kłamstwa (295)
- Podsumowanie (304)
9. Spójność i konsensus (315)
- Gwarancje spójności (316)
- Liniowość (317)
- Gwarancje uporządkowania (331)
- Transakcje rozproszone i konsensus (343)
- Podsumowanie (361)
III. DANE POCHODNE (375)
- Systemy zapisu a systemy danych pochodnych (375)
- Przegląd rozdziałów (376)
10. Przetwarzanie wsadowe (379)
- Przetwarzanie wsadowe z użyciem narzędzi uniksowych (380)
- MapReduce i rozproszone systemy plików (386)
- Poza model MapReduce (406)
- Podsumowanie (415)
11. Przetwarzanie strumieniowe (425)
- Przesyłanie strumieni zdarzeń (426)
- Strumienie a bazy danych (436)
- Przetwarzanie strumieniowe (447)
- Podsumowanie (462)
12. Przyszłość systemów danych (473)
- Integrowanie danych (474)
- Podział baz danych na komponenty (482)
- Dążenie do poprawności (497)
- Robienie tego, co słuszne (513)
- Podsumowanie (522)
Słowniczek (533)
|