Riak. Pronounced REE-ahk. Elosztott adattároló eszköz. Molnár Péter molnarp@ilab.sztaki.hu

Hasonló dokumentumok
MySQL kontra MongoDB programozás. SQL és NoSQL megközelítés egy konkrét példán keresztül

Kutatási fázis eredményei. Turi Péter

SQL Server High Availability. Bevezetés az SQL Server magas rendelkezésre állási megoldásaiba

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

SQL Server High Availability

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Előszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István Viczián István

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

iseries Access for Windows: Adminisztráció

eseményvezérelt megoldások Vizuális programozás 5. előadás

GENERÁCIÓS ADATBÁZISOK A BIG DATA KÜLÖNBÖZŐ TERÜLETEIN

Hadoop és használata az LPDS cloud-on

Üzleti kritikus alkalmazások Novell Open Enterprise Serveren

Adatbányászat és Perszonalizáció architektúra

Elektronikus Szolgáltatások Hirdetménye. Érvényes: május 24-től

A PHP nyelv alapjai. Web-Sky Consulting Kft Tóth Imre 2009

Komponens modellek. 3. Előadás (első fele)

Weblog elemzés Hadoopon 1/39

Biztonságos PHP a gyakorlatban

Privát felhő megoldások és tapasztalatok

BAKERY 1.0 Sütőipari vállalatirányítási rendszer

Adatbázis-kezelő rendszerek alkalmazása. MongoDB beadandó feladat Programtervező informatikus szak

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

Költséghatékony high-end adattároló megoldások Vitéz Gábor, Avaxio Kft.

Kir-Dev tavasz. Március. Február. Kir-Dev

MMK-Informatikai projekt ellenőr képzés 4

RIA Rich Internet Application

Amazon Web Services. Géhberger Dániel Szolgáltatások és alkalmazások március 28.

A TOSHIBA BEMUTATJA FEJLETT TITKOSÍTÓ ÉS TITKOSÍTÁSI TÖRLÉS FUNKCIÓJÁT AZ ÚJ VÁLLALAT SSD- ÉS HODOZHATÓ HDD-MODELLEKHEZ

Felhasználói kézikönyv Bázis, Aktív, Portál és Portál+ csomagokhoz

Elosztott rendszerek

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

A fordítónak mindenhez lehet

Big Data tömeges adatelemzés gyorsan

Ismeretanyag Záróvizsgára való felkészüléshez

JAVA webes alkalmazások

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Java Challenge második forduló játékszabályai v1.2

A SZOFTVERTECHNOLÓGIA ALAPJAI

webalkalmazások fejlesztése elosztott alapon

MailMasterPlus API. fejlesztői dokumentáció

Operációs rendszerek III.

Tematika. MongoDB koncepció JSON Schemaless logika Replicaset képzés Sharding Aggregate framework

Vektoros grafikát tároló adatbázisok. Katona Endre Térképi adatbázisok diasorozata alapján

Két tűz között. statikus site generátorok és javascript alkalmazások és a Drupal

Cloud computing. Cloud computing. Dr. Bakonyi Péter.

Alkalmazás boltok. Android Market, Apple AppStore, WP7 MarketPlace Cserna Bence, Paksy Patrik

Számítógépek felépítése

Muppet: Gyors adatok MapReduce stílusú feldolgozása. Muppet: MapReduce-Style Processing of Fast Data

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

1. Az ajánlatkérő neve és címe: Nemzeti Választási Iroda (1054 Budapest Alkotmány u. 3.)

Lenovo ThinkPad E550-20DF0092HV

Fábián Zoltán Hálózatok elmélet

Book Template Title. Author Last Name, Author First Name

Bevezetés a programozásba 2

NoSQL technológiák. NoSQL Fórum Budapest, március 23. Diasablon: - a fotók sajátok :)

Big data amikor a probléma az adat mérete maga

Osztott alkalmazások fejlesztési technológiái Áttekintés

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Ustream.tv Bepillantás egy közösségi élővideo site működésébe

NetWare 6 technikai áttekintés 2. rész

NIIF Központi Elosztott Szolgáltatói Platform

Üdvözlöm Önöket a Konferencián!

Internetes GIS MapServer alapokon

Főbb jellemzők INTELLIO VIDEO SYSTEM 2 ADATLAP

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

LOGalyze Telepítési és Frissítési Dokumentáció Verzió 3.0

Válltáska Ubuntu 8.04 Hardy Heron. A Hardy Heron jelentését feszegető téma:

Számítógépes hálózatok

Rendszertervezés 2. IR elemzés Dr. Szepesné Stiftinger, Mária

3. Gyakorlat Ismerkedés a Java nyelvvel

Az időhöz kötődő parancsok

Cloud computing Dr. Bakonyi Péter.

15. Programok fordítása és végrehajtása

2011. November 8. Boscolo New York Palace Budapest. Extrém teljesítmény Oracle Exadata és Oracle Exalogic rendszerekkel

C# osztályok. Krizsán Zoltán

Kiskunmajsa és környéke turisztikai térinformatikai alkalmazás

Interaktív webes térképezés GRASS GIS 7-tel. A Web Processing Service bemutatása

IBM Power 550 Express szerver

Összefüggő szakmai gyakorlat témakörei évfolyam. 9. évfolyam

Összefüggő szakmai gyakorlat témakörei. 13 évfolyam. Információtechnológiai gyakorlat 50 óra

Az Oracle rendszer komponensei

10. évfolyam 105 óra azonosító számú Hálózatok, programozás és adatbázis-kezelés 105 óra Adatbázis- és szoftverfejlesztés gyakorlat tantárgy

Adatbázis háttér játszóházi beléptető és nyilvántartó rendszerhez Egy valós rendszer bemutatása

Fejlesztői szemmel at K

SUSE Enterprise Storage

Dr. Illés Zoltán

Könyvtári szervervirtualizáció Oracle Virtual Machine platformon

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

ÉTRENDKÉSZÍTŐ WEBALKALMAZÁS

Kiknek szól ez a könyv? Miről szól a könyv? Hogyan épül fel a könyv? Mire van szükség a könyv használatához? Szokások Forráskód Hibajegyzék

Webszolgáltatások kommunikációs overhead-jének becslése


LÉTESÍTMÉNYGAZDÁLKODÁS. Változáskezelés. Változás Pont Cím Oldal A teljes dokumentáció átírásra került

A TOSHIBA ÚJ SZILÁRDTEST-MEGHAJTÓJA A RUGALMAS VÁLLALATI TÁROLÁSI MEGOLDÁSOKAT SZOLGÁLJA

ESTERHÁZY KÁROLY FŐISKOLA INFORMATIKAI STRATÉGIA

Átírás:

Riak Pronounced REE-ahk Elosztott adattároló eszköz Molnár Péter molnarp@ilab.sztaki.hu

Mi a Riak? A Database A Data Store A key/value store A NoSQL database Schemaless and data-type agnostic Written (primarily) in Erlang Simply put, Riak is a distributed, scalable, open source key/value store. We like to say that Riak is the most powerful open-source, distributed database you ll ever put into production. Riak scales predictably and easily and simplifies development by giving users the ability to quickly prototype, test, and deploy their applications.

Kik használják? GitHub Pages, Git.io AOL Advertising, AdLearn: Ad campaign cache, fájl index Comcast: internal object storage, XFINITY TV ios app Mozilla Labs Test Pilot: felhasználói adatok elemzése felhasználói élmény fejlesztése céljából Bestbuy, stb. Forrás: http://basho.com/company/production-users/

Támogatás Open source (Apache License 2.0) Riak Community Dokumentáció: Riak Wiki (http://wiki.basho.com) Levelező lista GitHub repository IRC, news, blogok,... Üzleti támogatás: Basho Technologies Inc.

Interfészek Nyelvi kötések Erlang Java PHP Python Ruby C/C++ HTTP API: GET, PUT, POST, DELETE Protocol buffer client

Szoftver komponensek Riak_core: Node-ok állapotának követése, ki- és beléptetés; szolgáltatások hirdetése, és lokalizálása; eseménykövetés, értesítés Partícionálás és terheléselosztás Globális állapot követés, továbbítás Riak_kv: key-value store Riak_search: fulltext index (Luwak: large file storage már nem aktívan fejlesztett)

Felépítés 160-bites egész tér: a gyűrű, egyenlő méretű partíciókra osztva Fizikai szerverek a node-ok Node-ok egyenrangúak Node-okon vnode-ok futnak, vnode-ok összes száma megegyezik a partíciók számával N darab node és K darab partíció esetén egy node ~ K/N vnode-ot futtat

Felépítés

Replikáció

Logikai felépítés Vödrök Lapos, különálló névterek, egy kulcs vödrönként egyszer szerepelhet Implicit vagy explicit létrehozás N paraméter: replikák száma R paraméter: hány node egybehangzó válasza kell a sikeres olvasáshoz W paraméter: mint R, csak írásra Konfliktus-feloldás paraméterezése létrehozáskor

Logikai felépítés Vödrök Pre/postcommit hook-ok Erlang vagy javascript függvények, amelyek automatikusan meghívódnak egy érték beírása előtt vagy után Riak-search is így működik

Kulcsok és értékek Kulcs: tetszőleges bináris érték, jellemzően String Objektum (= érték) Vödör Kulcs Vektor óra Értékek listája (testvérek)

Konfliktus detektálás és feloldás Vödrönként paraméterezhető allow_mult: engedjük-e, hogy több érték változatot (sibling) tároljon a Riak egy kulcshoz last_write_wins: az utoljára beírt érték lesz mindig érvényes Vektor óra alapján Kliens eldöntheti, hogy melyik legyen érvényes Automatikus (sibling explosion, vector clock explosion)

Tárak Lényegében bármilyen kulcs-érték pár tároló használható lenne. Bitcask Innostore LevelDB Memory Multi

Bitcask Alapértelmezett tár megoldás Natív Erlang implementáció Low latency, append only High throughput, random értékek gyors írása Alacsony keresési és beszúrási idő Crash recovery, backup egyszerű

Bitcask

Más tárak Innostore LevelDB Jó teljesítmény; kulcsok mérete lehet nagyobb, mint a memória Kulcsok mérete max 255 byte lehet; beszúrás előtt rendezni kell az adatot; magas diszk használat Adattömörítés, szöveges adaton hatékony; Másodlagos indexek Olvasás lassú, ha a szintek száma nagy

MapReduce Beépített feature POST /mapred Bemenet: [Bucket,Key,KeyData], filterek Fázisokra osztott Map: függvény, nyelv előírása, keep Reduce: ua. mint a map Link: vödör, tag, keep { "inputs":{ "bucket":"invoices", "key_filters":[["ends_with", "0603"]] } }

Link bejárás Pehelysúlyú gráf tárolási megoldás Objektumok közötti egyirányú kapcsolat Tag: link osztály Nem ellenőrzött Tetszőleges szintig bejárható, akár körökön is. $ curl -v http://127.0.0.1:8091/riak/people/timoreilly/people,friend,1 $ curl -v localhost:8091/riak/people/davethomas/_,friend,_/_,friend,_/

Másodlagos indexek Csak LevelDB backend támogatja Index-érték tag-en keresztül definiált Típusok: bináris, integer Érték és index-értékek függetlenek curl -v -X PUT \ -d 'data1' \ -H "x-riak-index-field1_bin: val1" \ -H "x-riak-index-field2_int: 1001" \ http://127.0.0.1:8098/riak/mybucket/mykey1 "inputs":{ "bucket":"mybucket", "index":"field1_bin", "key":"val3" } "inputs":{ "bucket":"mybucket", "index":"field1_bin", "start":"val2", "end":"val4" }

Mozilla Labs Test Pilot Cél: felhasználói adatok tárolása Tipikus objektum méret: 25 KB 1 hetes időtartam alatt érkeznek be, az adat nagy része az első 48 órában ~100 GB 2 TB össz adatmennyiség 4x Intel 16 mag, 24 GB memória, dual sata diszkek, Linux

Adatméret: ~25K; Időtartam: 1 óra Median Throughput: 2307.7 ops/sec; Median Latency: 4.87 ms Latency at 99th percentile: 20.60 ms; Latency at 99.9th percentile: 165.10 ms

Joyent Technologies benchmark Cél: lineáris skálázhatóság mérése Node-ok száma: 8, 10, 12, 14 Objektumok mérete: min. 500 Byte, Paretoeloszlás szerint Kulcsok száma: 10 millió R/W arány 1 http://joyeur.com/2010/10/31/riak-smartmachine-benchmark-the-technical-details/

Node-ok számával becsülhető az átbocsátó képesség Node-ok egyenkénti átbocsátó képessége nagyjából konstans.