Systemy rozproszone danych strukturalnych



Podobne dokumenty
Hurtownie danych wykład 5

MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska

Przetwarzanie danych z wykorzystaniem technologii NoSQL na przykładzie serwisu Serp24

NoSQL & relax with CouchDB

*Grafomania z. Neo4j. Praktyczne wprowadzenie do grafowej bazy danych.

Hbase, Hive i BigSQL

Bazy danych NoSQL. Szymon Francuzik Poznań,

Wprowadzenie do NoSql. Maksymilian Wiesiołek

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

Bazy danych NoSQL. wprowadzenie. Szymon Francuzik Poznań,

JAX-RS czyli REST w Javie. Adam Kędziora

(Apache) CouchDB. Krzysztof Kulewski 2008

SIMON SAYS ARCHITECTURE! Usługi zdalne. Technologie, techniki i praktyki implementacji

Szkolenie wycofane z oferty. Apache Cassandra - modelowanie, wydajność, analiza danych

Organizacyjnie. Prowadzący: dr Mariusz Rafało (hasło: BIG)

NoSQL Not Only SQL, CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Igor Wojnicki

Definicja. Not Only SQL

Tematy projektów Edycja 2014

Organizacyjnie. Prowadzący: dr Mariusz Rafało (hasło: BIG)

Hadoop i Spark. Mariusz Rafało

Wybrane działy Informatyki Stosowanej

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

BAZY DANYCH. NIERELACYJNE BAZY DANYCH NoSQL I ASOCJACYJNE STRUKTURY DANYCH. Adrian Horzyk. Akademia Górniczo-Hutnicza

Wybrane działy Informatyki Stosowanej

Integracja komunikatora opartego o protokół XMPP z dużym portalem internetowym

Programowanie Komponentowe WebAPI

Wprowadzenie. Co to jest klaster? Podział ze względu na przeznaczenie. Architektury klastrów. Cechy dobrego klastra.

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Projektowanie rozwiązań Big Data z wykorzystaniem Apache Hadoop & Family

Web 3.0 Sieć Pełna Znaczeń (Semantic Web) Perspektywy dla branży motoryzacyjnej i finansowej. Przyjęcie branżowe EurotaxGlass s Polska 10 luty 2012

OSGi Agata Hejmej

Programowanie obiektowe

CZĘŚĆ I. WARSTWA PRZETWARZANIA WSADOWEGO

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

JPaxos. Java library for state machine replication

NoSQL: Riak. dr inż. Sebastian Ernst Katedra Informatyki Stosowanej

Wprowadzenie do Apache Spark. Jakub Toczek

CouchDB. Michał Nowikowski

Tematy prac dyplomowych inżynierskich

Zaawansowany kurs języka Python

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Narzędzia i trendy Big Data

Specjalizacja magisterska Bazy danych

Big Data to skalowalność i prostota obsługi wielkich ilości danych!

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Przegląd grafowych baz danych. Paweł Bednarz

Seminarium Bazy Danych I. BigTable. Piotr Świgoń Uniwersytet Warszawski

Tworzenie aplikacji bazodanowych

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Big Data i 5V Nowe wyzwania w świecie danych Krzysztof Goczyła

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca Norbert Potocki db4o

Tworzenie i wykorzystanie usług sieciowych

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Architektura i mechanizmy systemu

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

PHP: bazy danych, SQL, AJAX i JSON

Wprowadzenie do Hurtowni Danych

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

Architektura rozproszonych magazynów danych

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.

Architektura systemów webowych wysokiej przepustowości. na przykładzie Wikia

Wprowadzenie do baz NoSQL

Szkolenie: Budowa aplikacji SOA/BPM na platformie Oracle SOA Suite 11g

ROZSZERZAJĄC FUNKCJONALNOŚCI MEMCACHED

Modelowanie Data Mining na wielką skalę z SAS Factory Miner. Paweł Plewka, SAS

Instalacja SQL Server Konfiguracja SQL Server Logowanie - opcje SQL Server Management Studio. Microsoft Access Oracle Sybase DB2 MySQL

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

ROZWIĄZANIA PODSTAWOWYCH IDEI BAZ DANYCH TYPU NOSQL W KONTEKŚCIE BEZPIECZEŃSTWA DANYCH

Aplikacje webowe z wykorzystaniem Node.js oraz Express

BAZY DANYCH WYKŁAD 5 NO-SQL DATABASE

Michał Jankowski. Remoting w.net 2.0

WIELOKROTNE PRZYSPIESZENIE DZIAŁANIA APLIKACJI POPRZEZ ZASTOSOWANIE TECHNOLOGII NIERELACYJNYCH BAZ DANYCH

Administracja bazami danych

Wykład I. Wprowadzenie do baz danych

Rozwiązania bazodanowe EnterpriseDB

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Programowanie obiektowe

Programowanie obiektowe

Zarządzanie transakcjami

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Internetowa ogólnopolska baza informatycznych projektów badawczych otwartej innowacji Platforma współpracy SPINACZ 1/46

Lock Manager Deadlock Źródła Jak starczy czasu. Dreadlocks. Konrad Błachnio MIMUW 19 maja 2010

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Elektroniki i Informatyki

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Wielowarstwowe aplikacje internetowe. Web Services. Autorzy wykładu: Maciej Zakrzewicz Marek Wojciechowski. Web Services

Wydajny Linux. Jakub Woźniak KN Sieci Komputerowych i Systemów Rozproszonych Tenesys

Komunikacja międzysystemowa

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Migracja do PostgreSQL za pomocą narzędzi Enterprise DB

Wprowadzenie Architektura Więcej szczegółów Podsumowanie. Google App Engine. Alicja Łuszczak. 8 stycznia 2010

Transkrypt:

Systemy rozproszone danych strukturalnych Seminarium Systemy Rozproszone 2010/2011 Marcin Walas 21 kwietnia 2011

NoSQL NoSQL to określenie na systemy zarządzania bazami danych, które różnią się od klasycznych RDBMSes w pewien sposób. z reguły nie mają ustalonych schematów tabelarycznych unikają operacji typu join dobrze się skalują Dlaczego o tym na seminarium z Systemów Rozproszonych? dużo danych wysokie wymogi dostępności skalowanie się czyli, idziemy w chmurę

Odrobinka historii

Rodzaje systemów danych strukturalnych Będziemy po trochu zajmować się wieloma systemami: document stores (CouchDB, MongoDB, OrientDB) graph stores (Triplestores: Virtuoso) key-value stores (Dynamo, Cassandra) object databases (Loxim) tabular stores (BigTable, Mnesia) tuple stores (Jini, Apache River - JavaSpaces)

Przypomnienie ACID - wymagania transakcyjne atomowość spójność izolacja trwałość Twierdzenie CAP (Brewer a) System rozproszony nie może jednocześnie zapewniać: spójności dostępności odporności na podziały

Document stores Dokumenty, czyli: JSON xml Potencjalne zastosowania CMS y szybkie systemy raportujące prosty model danych i łatwa do wymuszenia spójność między dokumentami

CouchDB http://couchdb.apache.org/ Napisany w Erlangu, zorientowany na dokumenty system bazodanowy JSON brak schematu - NoSQL! klucz-wartość + dowolne załączniki replikacja, widoki, map-reduce SpiderMonkey - zapytania w JavaScript RESTful

CouchDB Przykład widoki - funkcje mapujące stają się indeksami ACID

CouchDB - Architektura http://horicky.blogspot.com/2008/10/couchdb-implementation.html

CouchDB - ACID Własności: baza się nie wyłącza - dokonuje zapisów inkrementacyjnych - można ją ubijać, czytelnicy i pisarze nigdy nie czekają, spójność danych tylko w obrębie jednego dokumentu, zserializowane update y są zapisywane na dysku, Multi-Version Concurrency Control dokumenty indeksownane w b-drzewach, kompaktowanie danych na dysku - co jakiś czas. http://couchdb.apache.org/docs/overview.html

CouchDB - replikacja

CouchDB - rozproszenie load balancing replikacja plotkowanie zmian Wbrew temu, co zapewniają twórcy, problem jednak w tym, że trzeba tutaj tak naprawdę zewnętrznego systemu użyć.

MongoDB Różnice w porównaniu z CouchDB: w testach - niewielki bardzo nadrzut nad RAM,... bo możliwa utrata danych - głównie persystencja w RAM, napisana w C++, Produkcja: Przykład

MongoDB - replikacja

MongoDB - sharding

OrientDB baza dokumentów, napisana w Javie, posiada także cechy graph database - związki między dokumentami można definiować, częściowo ustalony schemat dokumentów - klasy, szybkie trawersowanie dokumentów, ograniczony SQL, transakcyjność nie tylko w obrębie dokumentu

OrientDB - architektura

OrientDB - clustering

OrientDB - clustering

OrientDB - clustering

OrientDB - clustering

OrientDB - clustering

OrientDB - clustering

Erlang wpływ na jego rozwój miał Prolog stworzony dla obliczeń współbieżnych/rozproszonych podobno coś z niego zaczerpnęła Scala i Clojure (wielowątkowy Lisp) luźno implementuje CSP bazuje na zielonych wątkach

Erlang - kawałek kodu Dlaczego warto na to poświęcić chwilę? Podobne rzeczy w Go od Google a oraz Scala.

Scala - kawałek kodu Scala - Aktorzy Możliwi zieloni lub ciężkie, systemowe wątki. No i bardziej Java-way-of-life, jak ktoś lubi. Więcej tutaj na przykład: http://www.infoq.com/news/2008/06/scala-vs-erlang

Yaws - Yet another web server przepustowość (KBytes/second) vs. obciążenie zaczerpnięte z http://www.sics.se/ joe/apachevsyaws.html

Postęp... Będziemy po trochu zajmować się wieloma systemami: document stores (CouchDB, MongoDB, OrientDB) graph stores (Triplestores: Virtuoso) key-value stores (Dynamo, Cassandra) object databases (Loxim) tabular stores (BigTable, Mnesia) tuple stores (Jini, Apache River - JavaSpaces)

Triplestores Bazy danych zorientowane na przechowywanie informacji w postaci RDF - etykietowanych grafów. wiele projektów upiorów trochę prac teoretyków

Status sieci semantycznej A może ten graf się po prostu nie stosuje do niczego związanego ze sztuczną inteligencją?

Resource Description Framework <?xml version="1.0"?> <RDF> <Description about="http://pl.wikipedia.org/wiki/wikipedysta:kozik"> <autor>krzysztof Kozłowski</autor> <utworzono>1 Maja 2009</utworzono> <zmodyfikowano>1 Stycznia 2010</zmodyfikowano> </Description> </RDF> Opis świata w postaci: podmiotu, orzeczenia/predykatu (własność) dopełnienia/obiektu (wartość) Dużo trójek - stąd triplestores.

Resource Description Framework

Virtuoso uniwersalny serwer - czyli nas interesuje tylko kawałeczek komercjalny, jest wersja Open Source duży produkt: SQL, XML,WebDAV, federacje, SOAP Używa tego:

Architektura

Architektura

Przykład - DBPedia

Przy okazji Freebase - ze storage grafowym od Metaweb, google-refine

WolframAlpha Czy ktoś nie wie, co to jest? Lub to:

A New Kind of Science? Automaty komórkowe: proste algorytmy, ewolucja, samoaplikacja Wolfram Alpha: oparty na Mathematica - flagowy produkt Wolfram Research, nie jest wyszukiwarką sematyczną, wizualizuje zgromadzoną wiedzę, przez składanie prostych algorytmów, podobny do Cyc [sajk]

OpenCyc rozpoczęty w 1984 roku, podobno zbudowanie zdrowego rozsądku zajęłoby 350 man-years, podobny do Lisp a Niestety, najciekawsze dla nas rzeczy są zrób to sam jest komunikacja sieciowa, ale ostatecznie i tak trzeba to pisać ręcznie.

gridmathematica load-balancing, parametryzowany scheduling zadań, durability: po awarii powinien system wrócić sam do pracy, obsługa klastrów, gridów, możliwość użycia zwykłych, tanich maszyn, Produkt komercyjny, więc tak naprawdę nic nie wiadomo...

Postęp... Będziemy po trochu zajmować się wieloma systemami: document stores (CouchDB, MongoDB, OrientDB) graph stores (Triplestores: Virtuoso) key-value stores (Dynamo, Cassandra) object databases (Loxim) tabular stores (BigTable, Mnesia) tuple stores (Jini, Apache River - JavaSpaces)

Przestrzeń krotek Co to? wielki shared memory, proces wkłada krotkę, inny proces wkłada krotkę pasującą do żądania Implementacje JavaSpaces PyLinda - prosta impl GigaSpaces - komercyjne, też.net

Javaspaces zamiast krotek - obiekty dziedziczące po Entry, mamy wielki worek na obiekty, najczęściej używane w trybie Master-Slave, raczej bez persystencji obiektów Operacje: write, read, take, notify

Javaspaces

Javaspaces

Javaspaces - przykład import net.jini.core.entry.*; public class MessageEntry implements Entry { public String content; public MessageEntry() { } public MessageEntry(String content) { this.content = content; } } public String tostring() { return "MessageContent: " + content; }

Javaspaces - przykład JavaSpace space = getspace(); MessageEntry msg = new MessageEntry(); msg.content = "Hello there"; space.write(msg, null, Lease.FOREVER);

Javaspaces - przykład MessageEntry template = new MessageEntry(); // template content field = NULL, match everything MessageEntry output = (MessageEntry) space.read(template, null, Long.MAX_VALUE);

Apache River kiedyś Jini, framework do budowy systemów rozproszonych, zawiera implementację Javaspaces, bardziej rozwinięte JRMI, automatyczne wykrywanie usług, SOA - Service Oriented Architecture,

Komunikacja Przez protokół JERI. Implementacje JERI: TCP, SSL, HTTP, HTTPS, Kerberos-TCP

Od małego do dużego... Najmniejszy: usługa i klient Średni: usługa, klient, rejestr Największy: usługa, klient, rejestr, serwer klas

Apache River - co zapewnia Peter Deutsch z Sun Labs Eight Fallacies of Distributed Computing: The network is reliable Latency is zero Bandwidth is infinite The network is secure Topology doesn t change There is one administrator Transport cost is zero The network is homogeneous

Apache River - co zapewnia Jini tak naprawdę odnosi się częściowo do wszystkich tych założeń, niezależność od protokołu - wiele implementacji, można dopisać własną ( :)! ), niezależność od lokalizacji, można przenosić usługi bez wiedzy klientów, eliminacja powiązań - może wiele implementacji tej samego interface u współistnieć w sieci, automatyczny tuning wydajności

Pytania? Bardzo dziękuję za uwagę.