ROZSZERZAJĄC FUNKCJONALNOŚCI MEMCACHED



Podobne dokumenty
Bazy danych NoSQL Część III. Maciej Zakrzewicz Politechnika Poznańska, Instytut Informatyki,

PRZETWARZANIE ROZPROSZONE ZADAN` Mariusz Gil 4Developers 2012, Poznań

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Tomasz Greszata - Koszalin

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Sieci komputerowe Warstwa aplikacji

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Bazy Danych i Usługi Sieciowe

Lab5 - Badanie protokołów pocztowych

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Bazy danych i usługi sieciowe

SQL injection. Metody włamań do systemów komputerowych p. 1/13. Bogusław Kluge, Karina Łuksza, Ewa Makosa

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

Wykład 5: PHP: praca z bazą danych MySQL

PureFTPd Użycie certyfikatów niekwalifikowanych w oprogramowaniupureftpd. wersja 1.3

Opis wdrożenia Platformy Technologicznej epodreczniki.pl na zasobach Poznańskiego Centrum Superkomputerowo-Sieciowego

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Technologie internetowe

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Tuning SQL Server dla serwerów WWW

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Laboratorium nr 1. Temat: Wprowadzenie do MySQL-a

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

Funkcje backendu konfiguratora. Warszawa,

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Problemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL

Hurtownia Świętego Mikołaja projekt bazy danych

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

mysql> UPDATE user SET Password=PASSWORD('pass') WHERE user='root'; Query OK, 2 rows affected (0.05 sec) Rows matched: 2 Changed: 2 Warnings: 0

NOWY OPIS TECHNICZNY PRZEDMIOTU ZAMÓWIENIA

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Typy tabel serwera MySQL

Internetowe bazy danych

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Zaawansowany kurs języka Python

Hurtownie danych - przegląd technologii

Serwery LDAP w środowisku produktów w Oracle

Need for speed. Kliknij, aby edytować style wzorca tekstu jak sobie radzić z dużą ilością użytkowników i danych

BAZA DANYCH SIECI HOTELI

Praktyczne wykorzystanie mechanizmów zabezpieczeń w aplikacjach chmurowych na przykładzie MS Azure

Tworzenie aplikacji bazodanowych

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

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Wstęp. Ale po co? Implementacja

Problemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL

How to share data from SQL database table to the OPC Server? Jak udostępnić dane z tabeli bazy SQL do serwera OPC? samouczek ANT.

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Agenda. Firma TOSIBOX OY. Co to jest TOSIBOX? Jak działa TOSIBOX? TOSIBOX zarządzanie. Interfejs KLUCZA/LOCK-a.

7. zainstalowane oprogramowanie zarządzane stacje robocze

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

na podstawie bazy Oracle NoSQL

Autor: Joanna Karwowska

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Agenda. Firma TOSIBOX OY. Co to jest TOSIBOX? Jak działa TOSIBOX? Kiedy liczy się czas, bezpieczeństwo i koszty!

Programowanie zorientowane obiektowo. Mateusz Kołecki

Instalacja MySQL.

Usługi sieciowe systemu Linux

Politechnika Śląska, Instytut Informatyki

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

PHP: bazy danych, SQL, AJAX i JSON

Duplikacja i replikacja MySQL. Opracowanie: Piotr Knopczyński Marcin Talarczyk

Rozwiązania bazodanowe EnterpriseDB

Oracle PL/SQL. Paweł Rajba.

Laboratorium - Poznawanie FTP

Ćwiczenia 2 IBM DB2 Data Studio

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

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

Asix. Konfiguracja serwera MS SQL dla potrzeb systemu Asix. Pomoc techniczna NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

Bazy danych. Polecenia SQL

Paweł Rajba

Przewidywanie Nieprzewidywalnego Sybase w środowiskach wysokiej dostępności. Jak wykorzystać technologie do budowy centrum zapasowego.

Wymagania systemowe. Dla przedsiębiorstw i średnich firm

SQL 4 Structured Query Lenguage

Wykład 8. SQL praca z tabelami 5

Zagrożenia trywialne. Zagrożenia bezpieczeństwa aplikacji internetowych. Parametry ukryte. Modyfikowanie parametrów wywołania

XML-RPC: Zdalne wykonywanie procedur

Bazy danych 7. SQL podstawy

Język SQL, zajęcia nr 2

DBPLUS Data Replicator Subtitle dla Microsoft SQL Server. dbplus.tech

Nowe technologie baz danych

Keszowanie i systemy peer-to-peer. Paulina Kania i Łukasz Osipiuk

przedstawia Mariusz Gil

Aspekty aktywne baz danych

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Administracja bazami danych

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Wymagania systemowe Dla przedsiębiorstw i średnich firm

Zbuduj prywatną chmurę backupu w firmie. Xopero Backup. Centralnie zarządzane rozwiązanie do backupu serwerów i stacji roboczych

Język SQL, zajęcia nr 1

platforma TotalBackup zbuduj własne środowisko kopii zapasowych online

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

PRZEDMIOT ZAMÓWIENIA I TERMINY REALIZACJI

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań,

Transkrypt:

ROZSZERZAJĄC FUNKCJONALNOŚCI MEMCACHED Mariusz Gil mariusz.gil@scalability.pl 4Developers 2011, Warszawa

BIO 2

CZYM JEST MEMCACHED? 3

DISTRIBUTED HASH TABLE 4

ZASADA DZIAŁANIA cache 1GB cache 1GB memcached 2GB rozdzielne cache na każdym serwerze wspólny cache dla wszystkich serwerów, implementowany jako rozproszona tablica hashująca 5

PROSTY PROTOKÓŁ GET GETS SET ADD REPLACE PREPEND APPEND CAS INCR DECR STATS STATS ITEMS STATS SLABS STATS SIZES 6

K.I.S.S. 7

TYPOWE ZASTOSOWANIA cache danych, np. zapytań SQL cache widoków storage sesyjny storage dla locków aplikacji 8

PHP I MEMCACHED $post_id = (int)$_get['post_id']; $memcached = new Memcache(); $memcached->connect('hostname', 11211); if (($row = $memcached->get('post_id_'. $post_id)) === false) { // yes this is safe, we type casted it already $rs = mysql_query('select * FROM post WHERE post_id = '. $post_id); } if ($rs && mysql_num_rows($rs) > 0) { $row = mysql_fetch_assoc($rs); // cache compressed for 1 hour $memcached->set('post_id_'. $post_id, $row, MEMCACHE_COMPRESSED, 3600); } var_dump($row); 9

NGINX I MEMCACHED 1. Request: /foo/bar.html 2. GET (key = uri) 4. Request: /foo/bar.html 3. SET (key = uri) serwery aplikacyjne 10

WADY I OGRANICZENIA brak trwałości danych, wsparcia HA ograniczenia w długości klucza i wartości algorytm ekspiracji kluczy brak bezpiecznego dostępu do serwera 11

MEMCACHEDB 12

ZASADA DZIAŁANIA MASTER instancja memcachedb wewnętrzny storage BerkeleyDB replikacja GET / GETS SET / ADD / REPLACE INCR / DECR DELETE STATS SLAVE instancja memcachedb wewnętrzny storage BerkeleyDB 13

MEMCACHEQ 14

ZASADA DZIAŁANIA SET nazwa kolejki jest kluczem w memcacheq queue_1 v4 v3 v2 v1 queue_2 v4 v2 v1 GET mariusz@macbook Pro:$ telnet localhost 22201 Trying ::1... Connected to localhost. Escape character is '^]'. set queue_1 0 0 3 abc STORED set queue_1 0 0 3 def STORED set queue_1 0 0 3 ghi STORED get queue_1 VALUE queue_1 0 3 abc END get queue_1 VALUE queue_1 0 3 def END get queue_1 VALUE queue_1 0 3 ghi END get queue_1 END quit Connection closed by foreign host. 15

REPCACHED * * repcached funkcjonuje tylko z memcached linii1.2.x 16

MOŻLIWOŚCI synchroniczna replikacja danych wsparcie wszystkich komend memcached relacja master-slave pomiędzy serwerami replikacja całości w przypadku startu slave automatyczne elekcja kolejnego mastera 17

ZASADA DZIAŁANIA 1. # Uruchomienie serwera master 2. memcached -l localhost -d -u nobody 3. # Uruchomienie serwera slave 4. memcached -l localhost -d -x localhost -m 64 -p 11112 -u nobody 1. # Polecenia SET i GET na serwerze master 2. [user@host ~]$telnet localhost 11211 3. Trying localhost 4. Connected to localhost 5. Escape character is '^]'. 6. set my_key 1 600 5 7. 12345 8. STORED 9. get my_key 10.VALUE my_key 1 5 11.12345 12.END 1. # Polecenia SET na serwerze slave 2. [user@host ~]$telnet localhost 11112 3. Trying localhost... 4. Connected to localhost. 5. Escape character is '^]'. 6. get mykey 7. VALUE my_key 1 5 8. 12345 9. END 18

KYOTO TYCOON 19

MOŻLIWOŚCI topologia dual-master hot-backup i przyrostowy update log pluggable server pluggable database slave agent - replikacja danych do RDBMS 20

ARCHITEKTURA klient dwukierunkowa replikacja master-master Active MASTER Standby MASTER load balancing Slave SERVER Slave SERVER Slave SERVER Slave SERVER jednokierunkowa replikacja master-slave 21

REDIS 22

KEY-VALUE STORAGE 23

SERWER STRUKTUR łańcuchy hashe listy zbiory, zbiory sortowane kanały wiadomości 24

MOŻLIWOŚCI replikacja master-slave(s) serializacja danych na dysk (AOF) obsługa pamięci wirtualnej command pipelining szybkość działania (110k GET / 81k SET) 25

INTERFEJS SET key value Ustawia wartość pod danym kluczem SADD key member Dodaje wartość do zbioru LPOP key Pobiera i usuwa pierwszy element listy GET key Pobiera wartość z danego klucza SINTER key [key...] Pobiera przecięcie zbiorów RPUSH key value Dodaje wartość na początek listy MGET key [key...] Pobiera wartości z danych kluczy SUNION key [key...] Pobiera sumę zbiorów LLEN key Pobiera aktualną długość listy 26

GITHUB RESQUE 27

MEMBASE 28

PROSTE SZYBKIE ELASTYCZNE 29

30

MOXI 31

DZIĘKUJĘ ZA UWAGĘ Mariusz Gil mariusz.gil@scalability.pl 4Developers 2011, Warszawa