Pengolahan Database Parallel Imam Machdi Graduate School of Systems and Information Engineering University of Tsukuba Presentasi PPI Ibaraki Tsukuba, 7 Pebruari 2010 Daftar Isi Pendahuluan Arsitektur Pengolahan Parallel Parallel Relational Database Parallel XML Database Kontribusi Riset 1
Pendahuluan Sistem Pengolahan Data Data Database Pengguna Fasilitas Komputasi 2
Sistem Pengolahan Data Problem Data Pengguna Database Fasilitas Komputasi Sistem Pengolahan Data Solusi Pengguna Data Data Kolaborasi Database Database Fasilitas Komputasi 3
Distribusi workload Pengolahan Parallel Data Parallelism Partisi data Distribusi data Task Parallelism Partisi task Distribusi task dikerjakan Meningkatkan secara Performa simultan Task 1 Data 1 Data 2 Task 2 4
Contoh Mengolah 1 TB data Kecepatan pengolahan 1MB/det. Waktu yang diperlukan 10.048.576 detik atau 174.760 menit atau 2910 jam atau 120 hari Diperlukan Pengolahan Parallel untuk meningkatkan performa pengolahan. Arsitektur Pengolahan Parallel 5
Multi-Computers Menggunakan beberapa PC yang terkoneksi dengan LAN. PC relatif murah dan mudah didapat. komunikasi shared-nothing on CPU, memory, disk Multi-Computers Biaya komunikasi antar PC tinggi. Data ditransfer via network perlu waktu lebih lama dibandingkan dengan transfer di memory. Library Parallel Virtual Machine (PVM) Message Passing Interface (MPI) Bahasa pemrograman C/C++ 6
Multi-Core Computer 1 processor terdiri dari beberapa core. Dual core, quad core. Shared-everything (something) Cache, memory, disk Memory Core 1 Core 2 Multi-Core Computer Biaya komunikasi lebih rendah. Perlu menghindari memory contention Library Threads OpenMP Peningkatan performa Exploitasi cache Kurangi synchronization CPU Core 0 Core 1 Cache Memory 7
Parallel Relational Database Relational Model Data direpresentasikan dalam bentuk tabel 2-dimensi (terstruktur) Atribut Key Tabel Pegawai No Peg Nama Tgl Lahir Alamat Kota Gol Darah Jabatan 1001 Asep 1-Jan-01 Ichinoya Tsukuba A Staf 1002 Bram 2-Feb-02 Oikoshi Tsukuba B Staf 1003 Asep 3-Mar-03 Hirasuna Ami O Supervisor 1004 Cici 4-Apr-04 Ichinoya Tsukuba AB Supervisor........ 1005 Zazang 12-Dec-02 Hirasuna Ami A Staf record 8
Query Structured Query Language (SQL) Cari Asep yang tinggal di Tsukuba SELECT NoPeg, Nama, Kota FROM Pegawai WHERE Nama = Asep AND Kota = Tsukuba. Tabel Pegawai No Peg Nama Tgl Lahir Alamat Kota Gol Darah Jabatan 1001 Asep 1-Jan-01 Ichinoya Tsukuba A Staf 1002 Bram 2-Feb-02 Oikoshi Tsukuba B Staf 1003 Asep 3-Mar-03 Hirasuna Ami O Supervisor 1004 Cici 4-Apr-04 Ichinoya Tsukuba AB Supervisor........ 1005 Zazang 12-Dec-02 Hirasuna Ami A Staf Partisi Data Partisi data untuk menciptakan SELECT parallelism. NoPeg, Nama, Kota FROM FROM Pegawai Partisi horisontal WHERE Nama = Asep Partisi vertikal SELECT NoPeg, Nama, Kota WHERE Nama = Asep AND AND Kota Kota = Tsukuba No Peg Nama Tgl Lahir Alamat Kota Gol Darah Jabatan 1001 Asep 1-Jan-01 Ichinoya Tsukuba A Staf 1002 Bram 2-Feb-02 Oikoshi Tsukuba B Staf........ No Peg Nama Tgl Lahir Alamat Kota Gol Darah Jabatan 1003 Asep 3-Mar-03 Hirasuna Ami O Supervisor 1004 Cici 4-Apr-04 Ichinoya Tsukuba AB Supervisor........ 9
Partisi Data Partisi data untuk menciptakan SELECT parallelism. NoPeg, Nama, Kota FROM FROM Pegawai Partisi horisontal WHERE Nama = Asep Partisi vertikal SELECT NoPeg, Nama, Kota WHERE Nama = Asep AND AND Kota Kota = Tsukuba 1001 Asep 1003 Asep 1001 Tsukuba 1002 Tsukuba 1004 Tsukuba No Peg Nama Tgl Lahir Alamat 1001 Asep 1-Jan-01 Ichinoya 1002 Bram 2-Feb-02 Oikoshi 1003 Asep 3-Mar-03 Hirasuna 1004 Cici 4-Apr-04 Ichinoya..... 1005 Zazang 12-Dec-02 Hirasuna No Peg Kota Gol Darah Jabatan 1001 Tsukuba A Staf 1002 Tsukuba B Staf 1003 Ami O Supervisor 1004 Tsukuba AB Supervisor.... 1005 Ami A Staf Query Parallelism Intra-query parallelism Inter-query parallelism Q1 SELECT NoPeg, Nama, Nama, Kota Kota FROM FROM Pegawai WHERE Nama Nama = Asep Asep AND AND Kota Kota = Tsukuba Q1.1 SELECT NoPeg, Nama, Nama, Kota Kota FROM FROM Pegawai WHERE Nama Nama = Asep Asep Q1.2 SELECT NoPeg, Nama, Nama, Kota Kota FROM FROM Pegawai WHERE Kota Kota = Tsukuba 10
Query Parallelism Intra-query parallelism Inter-query parallelism Q1 SELECT NoPeg, Nama, Nama, Kota Kota FROM FROM Pegawai WHERE Nama Nama = Asep Asep AND AND Kota Kota = Tsukuba Q2 SELECT DISTINCT Kota Kota FROM FROM Pegawai WHERE Nama Nama = Asep Asep Parallel XML Database 11
XML Extensible Markup Language Memberi anotasi pada teks Data semi-terstruktur dimodelkan sebagai Tree <club> <clubname>soccer</clubname> <> <name> <lname>kita</lname> <fname>nishi</fname> </name> <address> <city>tsukuba</city> <state>ibaraki</state> </address> </> </club> clubname soccer club name address email lname fname city state kita nishi tsukuba IB dj@co.jp XML Model Query club name city clubname lname fname tsukuba soccer name address email name address kita nishi lname fname city state dj@co.jp lname fname city state zip kita nishi tsukuba IB minami higashi chiba CB 260-0000 Query memiliki pattern Relasi Parent-Child (/) Relasi Ancestor-Descendant (//) Mencari pattern dari query pada XML data. 12
Partisi Data Berbasis XML Tree General Graph club clubname soccer name address email name address lname fname city state dj@co.jp lname fname city state zip Query kita nishi tsukuba IB minami higashi chiba CB 260-0000 name city lname kita fname nishi tsukuba Kontribusi Riset 13
Pengolahan XML Query Secara Parallel Novelty Kontribusi 1 Cara baru mempartisi XML Tree Berbasis stream Konsep logis berbentuk Grid (kotak-kotak) Best Paper di Austria Novelty Kontribusi 2 Berbasis stream Propagasi partisi Best Paper di Fukushima Grid Metadata Model for XML a1 b1 b2 c1 c2 d1 d2 Streams of of Elements b1 b2 c1 c2 d1 d2 e1 e2 f1 g1 g2 S a S b S c S d e1 e2 e3 S e S f g1 g2 g3 h1 doc1 doc2 doc3 S g S h Query Paths p1 p2 p3 p4 p5 p6 p7 Queries q1 c b d g q2 c d f q3 e d h q4 g e P Grid Grid Metadata for for XML XML p1 cf (doc1, p1) cf (doc2, q1) p1) q1 cf (doc1, q1) cf (doc2, q1) p2 cf (doc1, p2) cf (doc2, p2) p3 cf (doc2, p3) p4 cf (doc2, p4) p5 cf (doc2, p5) p6 cf (doc2, p6) p7 cf (doc3, p7) doc1 doc2 doc3 D a1 f1 h1 b1 b2 doc1 g1 g2 doc2 g1 g2 g3 doc3 c1 d1 c2 d2 e1 b1 e2 b2 e1 e2 e3 c1 d1 c2 d2 14
Teknik Partisi Document Clustering similar a1 Streams S a b1 b2 b1 b2 S b c1 c2 c1 c2 S c d1 d2 d1 d2 S d e1 e2 e1 e2 e3 S e f1 S f Q q1 q2 q3 Grid Metadata for XML cf (doc1, q1) cf (doc2, q1) cf (doc2, q2) cf (doc2, q3) g1 g2 g1 g2 g3 S g q4 cf (doc3, q4) h1 S h doc1 doc2 doc3 D doc1 doc2 doc3 Teknik Partisi Query Clustering a1 Streams S a b1 b2 b1 b2 S b c1 c2 c1 c2 S c similar Q q1 Grid Metadata for XML cf (doc1, q1) cf (doc2, q1) d1 d2 d1 d2 S d g1 g2 S g q2 cf (doc2, q2) duplicate d1 d2 d1 d2 S d e1 e2 S e f1 S f e1 e2 e3 S e g1 g2 g3 S g h1 S h doc1 doc2 doc3 q3 cf (doc2, q3) q4 cf (doc3, q4) doc1 doc2 doc3 D 15
Stream-based Partitioning for XML club (1, 1:55, 1) clubname (1, 2:4, 2) (1, 5:14, 2) twig twig trees trees (1, 15:24, 2) (1, 25:34, 2) (1, 35:44, 2) (1, 45:54, 2) soccer name1 (1, 3, 3) (1, 6:13, 3) name 2 (1, 16:23, 3) name3 (1, 26:33, 3) name 4 (1, 36:43, 3) name 5 (1, 46:53, 3) Find matches (1, 7:9, 4) Query pattern name lname fname lname1 fname 1 lname2 kita nishi kita (1, 8, 5) (1, 10:12, 4) (1, 11, 5) (1, 17:19, 4) (1, 18, 5) Streams Stream name Stream lname lname3 fname2 (1, 27:29, 4) (1, 30:32, 4) minami (1, 28, 5) nishi (1, 31, 5) n1 n2 n3 n4 n5 ln1 ln2 ln3 ln4 Stream fname fn1 fn3 fn2 fn3 fn4 How How to to partition partition streams streams to to form form twig twig trees trees that that give give solutions. solutions. fname3 lname4 fname 4 (1, 40:42, 4) (1, 47:49, 4) (1, 50:52, 4) kita (1, 41, 5) distribute distribute higashi (1, 48, 5) Cluster PCs Teknik Propagasi S a S b b Query Query Q r S c a c e d S d S r f S f S e Keunggulan Ringan dan cepat Tidak ada ketergantungan antar data. Mengeliminasi XML data yang tidak perlu. 16
Terima Kasih 17