Helion


Szczegóły ebooka

Przetwarzanie danych w dużej skali. Niezawodność, skalowalność i łatwość konserwacji systemów

Przetwarzanie danych w dużej skali. Niezawodność, skalowalność i łatwość konserwacji systemów


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!


Martin Kleppmann bada systemy rozproszone. Pracuje na Uniwersytecie Cambridge w Wielkiej Brytanii. Wcześniej był inżynierem oprogramowania w takich firmach, jak LinkedIn czy Rapportive, gdzie pracował nad działającą w dużej skali infrastrukturą do obsługi danych. Kleppmann jest blogerem, często występuje na konferencjach i rozwija oprogramowanie open source. Wierzy, że ważne idee nauki i techniki powinny być przystępne dla każdego, a lepsze ich zrozumienie umożliwi tworzenie lepszego oprogramowania.

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)

Skorowidz (542)

  • Tytuły: Przetwarzanie danych w dużej skali. Niezawodność, skalowalność i łatwość konserwacji systemów
  • Autor: Martin Kleppmann
  • Tytuł oryginału: Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
  • Tłumaczenie: Radosław Lesisz, Tomasz Walczak
  • ISBN książki drukowanej: 978-83-283-4065-7, 9788328340657
  • Data wydania książki drukowanej: 2018-04-17
  • ISBN Ebooka: 978-83-283-4066-4, 9788328340664
  • Data wydania: 2018-04-17
  • Format: 168x237
  • Identyfikator pozycji: przdan
  • Kategorie:
  • Wydawca: Helion