SlideShare a Scribd company logo
1 of 28
Pengenalan
Pengembangan Prototipe
Geographically-Aware Distributed
NoSQL (TippyDB)
Seminar IF4092 – Tugas Akhir II
Iskandar Setiadi / 13511073
Pembimbing: Achmad Imam Kistijantoro, ST, M.Sc, Ph.D
Institut Teknologi Bandung
22 April 2015
April 22, 2015 1
Iskandar Setiadi
Referensi: http://www.couchbase.com/nosql-resources/what-is-no-sql
Latar Belakang
April 22, 2015 2
Iskandar Setiadi
Referensi: http://was-sg.wascdn.net/wp-content/uploads/2014/01/Slide011.png
Media Sosial
April 22, 2015 3
Iskandar Setiadi
Penelitian yang dilakukan oleh Backstrom, Sun,
dan Marlow (2010) menunjukkan bahwa lebih
dari 70% teman seorang pengguna berada dalam
jarak kurang dari 100 mil.
Relasi Pertemanan
April 22, 2015 4
Iskandar Setiadi
Sistem basis data NoSQL bertujuan untuk
menyediakan layanan penyimpanan data yang
sederhana (key-value, document) dan mampu
mendukung scaling.
NoSQL
April 22, 2015 5
Referensi: http://www.couchbase.com/binaries/content/gallery/website/figures/why-nosql-5.png
Iskandar Setiadi
Teknik partisi dan replikasi yang digunakan
dalam basis data NoSQL saat ini
Partisi dan replikasi yang memperhatikan faktor
geografis (geographically-aware)
Partisi & Replikasi
April 22, 2015 6
Iskandar Setiadi
Prototipe basis data NoSQL yang
dikembangkan di tugas akhir ini bertujuan
untuk meminimalkan jarak data yang
disimpan dalam server dengan pengguna.
Prototipe ini menggunakan asumsi probabilistik
bahwa pengguna yang mengakses (read) data
adalah pengguna yang terletak dekat dengan
pengguna yang menulis data pertama kali.
Prototipe: TippyDB
April 22, 2015 7
Iskandar Setiadi
Operasi dasar basis data: write, update, read,
dan delete
Partisi dengan ukuran shard statik yang
terdefinisi
Replikasi dalam beberapa region dengan
konfigurasi statik yang terdefinisi
Pengembangan dilakukan dengan
memanfaatkan levelDB (key-value library) dan
Apache Thrift (RPC library)
Fitur & Batasan
April 22, 2015 8
Iskandar Setiadi
Arsitektur Solusi
April 22, 2015 9
Iskandar Setiadi
Konsistensi Data
April 22, 2015 10
Relasi antara teori CAP dengan basis data (Katsov, 2012)
Iskandar Setiadi
Penulisan & Replikasi Data
April 22, 2015 11
Primary /
Master
Secondary
Secondary
Region 1
Node 1
Region 2 Node 1
Region 3 Node 1
Parameter replikasi = 3
putData
replicateData
replicateData
Value: {“n”:1}
ShardedKey:
0001 0001 00000001
ts (timestamp):
1
Master-Slave
Iskandar Setiadi
metadata.tmp
April 22, 2015 12
Iskandar Setiadi
Proses Query Data
April 22, 2015 13
Region 1 Node 1
Region 1 Node 1 Region 2 Node 1
ShardedKey:
0001 0001 00000001
ShardedKey:
0002 0001 00000001
getData
getData getData
Value: {“n”: 1}
Value: {“n”: 1}
± 80%
± 20%
Iskandar Setiadi
Partisi Data
April 22, 2015 14
Region 1
Node 1
Node 2
Parameter shard = 32 MB
64 MB
0 MB
Proses partisi
dilakukan internal
dalam 1 region.
putData
putDataForce
ShardedKey:
0001 0002 00000001
ts (timestamp):
1
Value: {“n”:1}
Iskandar Setiadi
db.config
April 22, 2015 15
{
"id": "set1",
"numberRegions": 2,
"replicationFactors": 2,
"shardSize": 32,
"distance": [[0, 1], [1, 0]],
"members": [
{
"region": 1,
"node": 1,
"ip": "127.0.0.1",
"port": 9090,
"own": true
},
{
"region": 2,
"node": 1,
"ip": "127.0.0.1",
"port": 9091,
"own": false
}
]
}
Iskandar Setiadi
Sinkronisasi Data
April 22, 2015 16
Region 1 Node 1 Region 2 Node 1
Region 3 Node 1
Failure Detection
ShardedKey:0001 0001 ********
Primary: Region 1 Node 1
Secondary: Region 2 Node 1
ShardedKey:0001 0001 ********
Primary: Region 2 Node 1
Iskandar Setiadi
Sinkronisasi Data (II)
April 22, 2015 17
Region 2 Node 1
Region 3 Node 1
ShardedKey:0001 0001 ********
Primary: Region 3 Node 1
Secondary: Region 2 Node 1
ShardedKey:0001 0001 ********
Primary: Region 2 Node 1
resyncData
Pada prototipe ini, sinkronisasi dilakukan dengan melakukan resync terhadap
semua data yang ada.
Untuk pengembangan kedepannya, optimasi dapat dilakukan dengan
membuat hinted handoff terhadap origin data (cth: Region 1 Node 1).
Region 1 Node 1
Block
permintaan
resyncData
untuk
ShardedKey:
0001 0001
********
Iskandar Setiadi
Sinkronisasi Data (III)
April 22, 2015 18
Region 2 Node 1
Region 3 Node 1
ShardedKey:0001 0001 ********
Primary: Region 1 Node 1
Secondary: Region 2 Node 1
1 requestSyncData
Region 1 Node 1
ShardedKey:0001 0001 ********
Primary: Region 3 Node 1
Secondary: Region 2 Node 1
Selama tahap recovery, server akan melakukan sinkronisasi metadata,
kemudian melakukan sinkronisasi data (1 & 2) yang bersesuaian dengan
region dan node dari server tersebut. Setelah tahap recovery selesai, server
baru dapat melayani request pengguna.
2 updateMetadata
2 updateMetadata
Update dilakukan
untuk ShardedKey:
0001 0001 ********
Iskandar Setiadi
Beberapa kasus seperti replikasi data maupun penyeimbangan data
memerlukan koordinasi antar node dalam sistem. Untuk
simplifikasi, pemilihan koordinator dalam voting akan
menggunakan random timer seperti yang digunakan dalam
protokol konsensus berbasis Raft.
Koordinasi antar Node
April 22, 2015 19
Iskandar Setiadi
Konsensus Raft
April 22, 2015 20
Mekanisme pemilihan leader pada protokol Raft (Howard, 2014)
Iskandar Setiadi
Pengembangan dilakukan dalam lingkungan Amazon
Elastic Compute Cloud (EC2) yang telah dikonfigurasi
pada dua instance t2.micro di dua access point berbeda,
yaitu US East (N. Virginia) dan Asia Pacific
(Singapore), dengan spesifikasi sebagai berikut:
- Processor Intel® Xeon CPU @ 2.50 GHz (1 vCPU)
- Memory 1 GiB RAM
Implementasi
April 22, 2015 21
Iskandar Setiadi
Sistem operasi Amazon Linux 2015.03 (HVM) 64-bit
Compiler g++ versi 4.7.2 (dengan dukungan C++11)
Python versi 2.7
Boost library versi 1.54
Apache Thrift versi 0.9.2
LevelDB versi 1.15.0
MongoDB versi 3.0.1 & PyMongo versi 3.0 (untuk benchmark)
Git versi 1.7.10.4
https://github.com/freedomofkeima/TippyDB
Implementasi (II)
April 22, 2015 22
Iskandar Setiadi
Pengujian: Performansi Dasar
April 22, 2015 23
•Semua operasi dilakukan dengan 100.000 data
•Ukuran data adalah jumlah dari ukuran key dan value (masing-masing bernilai sama), tidak termasuk ObjectID MongoDB
•1 MB = 1.048.576 Bytes
Jenis Operasi
Ukuran Data
(Byte)
Performansi (usec / op) MB / s
LevelDB MongoDB LevelDB MongoDB
FILL
20 3,10 223,05 6,15 0,09
100 4,05 224,15 23,55 0,42
UPDATE
20 3,17 246,54 6,02 0,08
100 4,75 259,17 20,08 0,37
READ
20 0,60 196,09 31,79 0,10
100 1,77 197,99 53,88 0,48
DELETE
20 2,93 224,74 6,51 0,08
100 3,55 223,19 26,86 0,43
Iskandar Setiadi
Pengujian terhadap request dari pengguna
Rencana Pengujian: Performansi
April 22, 2015 24
Jenis Operasi
Ukuran Data
(KB)
Jumlah
Operasi
Performansi (msec / op)
Prototipe (TippyDB) MongoDB
Avg Min Max Avg Min Max
CREATE (Primary)
CREATE (Primary mati)
READ (Primary)
READ (Primary mati)
UPDATE (Primary)
UPDATE (Primary mati)
DELETE (Primary)
DELETE (Primary mati)
•Key yang digunakan berukuran 16 bytes
•1 shard / partisi = 32 MB
•Total data yang disimpan berukuran 200.000 KB
Iskandar Setiadi
Pengujian terhadap komposisi read : write yang
bervariasi
Rencana Pengujian: Performansi
April 22, 2015 25
Komposisi Write Komposisi Read
Performansi (sec)
Prototipe (TippyDB) MongoDB
1% 99%
5% 95%
25% 75%
50% 50%
•Pengujian dilakukan menggunakan 10.000 request dengan 100 workers untuk mensimulasikan request konkuren pengguna
•Ukuran data untuk setiap operasi write adalah 100 KB
•Pengujian dilakukan dengan 2.000 data awal yang masing-masing berukuran 100 KB dan tersebar dalam 2 replika
Iskandar Setiadi
Secara garis besar, pengujian terhadap prototipe solusi
akan dibagi dalam 3 bagian utama:
- Pengujian dilakukan untuk menjamin safety dan
liveness dari komunikasi antar server
- Pengujian dilakukan untuk menjamin kebenaran dari
komunikasi antara client dengan server
- Pengujian dilakukan untuk menjamin kebenaran
internal dari server, mencakup komunikasi antara
Apache Thrift dengan LevelDB
Rencana Pengujian: Correctness
April 22, 2015 26
Iskandar Setiadi
Tanggal Kegiatan (Milestone)
31 April 2015 Penanganan terhadap kegagalan node
5 Mei 2015 Pengujian terhadap performansi prototipe
solusi (TippyDB) dengan MongoDB yang
tereplikasi
10 Mei 2015 Pengujian terhadap correctness prototipe
solusi
15 Mei 2015 Dokumen TA II
22 Mei 2015 Revisi terhadap prototipe solusi maupun
dokumen TA II pra-sidang
Rencana Kedepan
April 22, 2015 27
Iskandar Setiadi
Kesimpulan Sementara
April 22, 2015 28
TippyDB dapat mendukung penyimpanan data
yang terpartisi maupun tereplikasi.
Basis data NoSQL yang membutuhkan cukup
banyak operasi penulisan (write) dapat
dikembangkan dengan memperhatikan aspek
lokasi pengguna. Hal ini dapat mengurangi
latensi RTT rata-rata dari pengguna sampai
dengan 100 ms.

More Related Content

Viewers also liked

_IASP OIMP.compressed
_IASP OIMP.compressed_IASP OIMP.compressed
_IASP OIMP.compressedChad Knutsen
 
A Low Impact Solution for Increasing Existing Structural Loads
A Low Impact Solution for Increasing Existing Structural LoadsA Low Impact Solution for Increasing Existing Structural Loads
A Low Impact Solution for Increasing Existing Structural LoadsUretek Mid-Atlantic
 
Drop ship lifestyle 2015 retreat
Drop ship lifestyle 2015 retreatDrop ship lifestyle 2015 retreat
Drop ship lifestyle 2015 retreatDrop Ship Lifestyle
 
Cca marketing presentation
Cca marketing presentationCca marketing presentation
Cca marketing presentationYu Shu Huang
 
Bridal in Knysna 060 529 6330
Bridal in Knysna 060 529 6330Bridal in Knysna 060 529 6330
Bridal in Knysna 060 529 6330knysnaarea
 
Homemaintenance Knysna
Homemaintenance KnysnaHomemaintenance Knysna
Homemaintenance Knysnaknysnaarea
 

Viewers also liked (9)

_IASP OIMP.compressed
_IASP OIMP.compressed_IASP OIMP.compressed
_IASP OIMP.compressed
 
A bit of Haskell
A bit of HaskellA bit of Haskell
A bit of Haskell
 
PASP Project Experience fair presentation_Team Rwanda
PASP Project  Experience fair presentation_Team RwandaPASP Project  Experience fair presentation_Team Rwanda
PASP Project Experience fair presentation_Team Rwanda
 
A Low Impact Solution for Increasing Existing Structural Loads
A Low Impact Solution for Increasing Existing Structural LoadsA Low Impact Solution for Increasing Existing Structural Loads
A Low Impact Solution for Increasing Existing Structural Loads
 
Drop ship lifestyle 2015 retreat
Drop ship lifestyle 2015 retreatDrop ship lifestyle 2015 retreat
Drop ship lifestyle 2015 retreat
 
Cca marketing presentation
Cca marketing presentationCca marketing presentation
Cca marketing presentation
 
Bridal in Knysna 060 529 6330
Bridal in Knysna 060 529 6330Bridal in Knysna 060 529 6330
Bridal in Knysna 060 529 6330
 
Homemaintenance Knysna
Homemaintenance KnysnaHomemaintenance Knysna
Homemaintenance Knysna
 
The Real Cost of Offshoring
The Real Cost of OffshoringThe Real Cost of Offshoring
The Real Cost of Offshoring
 

Similar to [Seminar II] Pengembangan Prototipe Geographically-Aware Distributed NoSQL

jbptunikompp-gdl-widiantoni-29694-14-24.1010-b.pdf
jbptunikompp-gdl-widiantoni-29694-14-24.1010-b.pdfjbptunikompp-gdl-widiantoni-29694-14-24.1010-b.pdf
jbptunikompp-gdl-widiantoni-29694-14-24.1010-b.pdfIhsanAzhary1
 
Pengantar ADO.NET
Pengantar ADO.NETPengantar ADO.NET
Pengantar ADO.NETDudy Ali
 
10 mi3222 - migrasi data dengan repository secara offline destination
10   mi3222 - migrasi data dengan repository secara offline destination10   mi3222 - migrasi data dengan repository secara offline destination
10 mi3222 - migrasi data dengan repository secara offline destinationWahyu Hidayat
 
Monitor2012 dimensiweb
Monitor2012 dimensiwebMonitor2012 dimensiweb
Monitor2012 dimensiwebFajri Abdillah
 
CyberOps Associate Modul 27 Working with Network Security Data
CyberOps Associate Modul 27 Working with Network Security DataCyberOps Associate Modul 27 Working with Network Security Data
CyberOps Associate Modul 27 Working with Network Security DataPanji Ramadhan Hadjarati
 
Layanan data spasial berbasis OGC
Layanan data spasial berbasis OGCLayanan data spasial berbasis OGC
Layanan data spasial berbasis OGCDany Laksono
 
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...DicodingEvent
 
Sentralisasi Log dan Monitoring Node Pada OpenStack Menggunakan Elastic Stack...
Sentralisasi Log dan Monitoring Node Pada OpenStack Menggunakan Elastic Stack...Sentralisasi Log dan Monitoring Node Pada OpenStack Menggunakan Elastic Stack...
Sentralisasi Log dan Monitoring Node Pada OpenStack Menggunakan Elastic Stack...RobiSetiaPermadi
 
08 mi3222 - migrasi data dengan repository secara online
08   mi3222 - migrasi data dengan repository secara online08   mi3222 - migrasi data dengan repository secara online
08 mi3222 - migrasi data dengan repository secara onlineWahyu Hidayat
 
Slide Jaringan Komputer ITB pertemuan 1
Slide Jaringan Komputer ITB pertemuan 1 Slide Jaringan Komputer ITB pertemuan 1
Slide Jaringan Komputer ITB pertemuan 1 Putu Shinoda
 
Mikrotik Most Wanted
Mikrotik Most WantedMikrotik Most Wanted
Mikrotik Most Wantedcandraaditama
 
Tugas pak adi proxy server dan pc router.. trio rafly
Tugas pak adi proxy server dan pc router.. trio raflyTugas pak adi proxy server dan pc router.. trio rafly
Tugas pak adi proxy server dan pc router.. trio raflyraflylah
 
Tugas pak adi proxy server dan pc router. rafly dan trio
Tugas pak adi proxy server dan pc router. rafly dan trioTugas pak adi proxy server dan pc router. rafly dan trio
Tugas pak adi proxy server dan pc router. rafly dan trioraflylah
 
Mikrotik most wanted
Mikrotik most wantedMikrotik most wanted
Mikrotik most wantederpacumi
 

Similar to [Seminar II] Pengembangan Prototipe Geographically-Aware Distributed NoSQL (20)

jbptunikompp-gdl-widiantoni-29694-14-24.1010-b.pdf
jbptunikompp-gdl-widiantoni-29694-14-24.1010-b.pdfjbptunikompp-gdl-widiantoni-29694-14-24.1010-b.pdf
jbptunikompp-gdl-widiantoni-29694-14-24.1010-b.pdf
 
Pengantar ADO.NET
Pengantar ADO.NETPengantar ADO.NET
Pengantar ADO.NET
 
10 mi3222 - migrasi data dengan repository secara offline destination
10   mi3222 - migrasi data dengan repository secara offline destination10   mi3222 - migrasi data dengan repository secara offline destination
10 mi3222 - migrasi data dengan repository secara offline destination
 
Monitor2012 dimensiweb
Monitor2012 dimensiwebMonitor2012 dimensiweb
Monitor2012 dimensiweb
 
CyberOps Associate Modul 27 Working with Network Security Data
CyberOps Associate Modul 27 Working with Network Security DataCyberOps Associate Modul 27 Working with Network Security Data
CyberOps Associate Modul 27 Working with Network Security Data
 
Layanan data spasial berbasis OGC
Layanan data spasial berbasis OGCLayanan data spasial berbasis OGC
Layanan data spasial berbasis OGC
 
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
 
Sentralisasi Log dan Monitoring Node Pada OpenStack Menggunakan Elastic Stack...
Sentralisasi Log dan Monitoring Node Pada OpenStack Menggunakan Elastic Stack...Sentralisasi Log dan Monitoring Node Pada OpenStack Menggunakan Elastic Stack...
Sentralisasi Log dan Monitoring Node Pada OpenStack Menggunakan Elastic Stack...
 
ppt tugas akhir
ppt tugas akhirppt tugas akhir
ppt tugas akhir
 
Fti 50406792
Fti 50406792Fti 50406792
Fti 50406792
 
Presentasi Thesis
Presentasi ThesisPresentasi Thesis
Presentasi Thesis
 
08 mi3222 - migrasi data dengan repository secara online
08   mi3222 - migrasi data dengan repository secara online08   mi3222 - migrasi data dengan repository secara online
08 mi3222 - migrasi data dengan repository secara online
 
Slide Jaringan Komputer ITB pertemuan 1
Slide Jaringan Komputer ITB pertemuan 1 Slide Jaringan Komputer ITB pertemuan 1
Slide Jaringan Komputer ITB pertemuan 1
 
Mikrotik Most Wanted
Mikrotik Most WantedMikrotik Most Wanted
Mikrotik Most Wanted
 
Bab iii
Bab iiiBab iii
Bab iii
 
Tugas pak adi proxy server dan pc router.. trio rafly
Tugas pak adi proxy server dan pc router.. trio raflyTugas pak adi proxy server dan pc router.. trio rafly
Tugas pak adi proxy server dan pc router.. trio rafly
 
Tugas pak adi proxy server dan pc router. rafly dan trio
Tugas pak adi proxy server dan pc router. rafly dan trioTugas pak adi proxy server dan pc router. rafly dan trio
Tugas pak adi proxy server dan pc router. rafly dan trio
 
Mikrotik most wanted
Mikrotik most wantedMikrotik most wanted
Mikrotik most wanted
 
Struktur database akuntansi
Struktur database akuntansiStruktur database akuntansi
Struktur database akuntansi
 
2.docx
2.docx2.docx
2.docx
 

[Seminar II] Pengembangan Prototipe Geographically-Aware Distributed NoSQL

  • 1. Pengenalan Pengembangan Prototipe Geographically-Aware Distributed NoSQL (TippyDB) Seminar IF4092 – Tugas Akhir II Iskandar Setiadi / 13511073 Pembimbing: Achmad Imam Kistijantoro, ST, M.Sc, Ph.D Institut Teknologi Bandung 22 April 2015 April 22, 2015 1
  • 4. Iskandar Setiadi Penelitian yang dilakukan oleh Backstrom, Sun, dan Marlow (2010) menunjukkan bahwa lebih dari 70% teman seorang pengguna berada dalam jarak kurang dari 100 mil. Relasi Pertemanan April 22, 2015 4
  • 5. Iskandar Setiadi Sistem basis data NoSQL bertujuan untuk menyediakan layanan penyimpanan data yang sederhana (key-value, document) dan mampu mendukung scaling. NoSQL April 22, 2015 5 Referensi: http://www.couchbase.com/binaries/content/gallery/website/figures/why-nosql-5.png
  • 6. Iskandar Setiadi Teknik partisi dan replikasi yang digunakan dalam basis data NoSQL saat ini Partisi dan replikasi yang memperhatikan faktor geografis (geographically-aware) Partisi & Replikasi April 22, 2015 6
  • 7. Iskandar Setiadi Prototipe basis data NoSQL yang dikembangkan di tugas akhir ini bertujuan untuk meminimalkan jarak data yang disimpan dalam server dengan pengguna. Prototipe ini menggunakan asumsi probabilistik bahwa pengguna yang mengakses (read) data adalah pengguna yang terletak dekat dengan pengguna yang menulis data pertama kali. Prototipe: TippyDB April 22, 2015 7
  • 8. Iskandar Setiadi Operasi dasar basis data: write, update, read, dan delete Partisi dengan ukuran shard statik yang terdefinisi Replikasi dalam beberapa region dengan konfigurasi statik yang terdefinisi Pengembangan dilakukan dengan memanfaatkan levelDB (key-value library) dan Apache Thrift (RPC library) Fitur & Batasan April 22, 2015 8
  • 10. Iskandar Setiadi Konsistensi Data April 22, 2015 10 Relasi antara teori CAP dengan basis data (Katsov, 2012)
  • 11. Iskandar Setiadi Penulisan & Replikasi Data April 22, 2015 11 Primary / Master Secondary Secondary Region 1 Node 1 Region 2 Node 1 Region 3 Node 1 Parameter replikasi = 3 putData replicateData replicateData Value: {“n”:1} ShardedKey: 0001 0001 00000001 ts (timestamp): 1 Master-Slave
  • 13. Iskandar Setiadi Proses Query Data April 22, 2015 13 Region 1 Node 1 Region 1 Node 1 Region 2 Node 1 ShardedKey: 0001 0001 00000001 ShardedKey: 0002 0001 00000001 getData getData getData Value: {“n”: 1} Value: {“n”: 1} ± 80% ± 20%
  • 14. Iskandar Setiadi Partisi Data April 22, 2015 14 Region 1 Node 1 Node 2 Parameter shard = 32 MB 64 MB 0 MB Proses partisi dilakukan internal dalam 1 region. putData putDataForce ShardedKey: 0001 0002 00000001 ts (timestamp): 1 Value: {“n”:1}
  • 15. Iskandar Setiadi db.config April 22, 2015 15 { "id": "set1", "numberRegions": 2, "replicationFactors": 2, "shardSize": 32, "distance": [[0, 1], [1, 0]], "members": [ { "region": 1, "node": 1, "ip": "127.0.0.1", "port": 9090, "own": true }, { "region": 2, "node": 1, "ip": "127.0.0.1", "port": 9091, "own": false } ] }
  • 16. Iskandar Setiadi Sinkronisasi Data April 22, 2015 16 Region 1 Node 1 Region 2 Node 1 Region 3 Node 1 Failure Detection ShardedKey:0001 0001 ******** Primary: Region 1 Node 1 Secondary: Region 2 Node 1 ShardedKey:0001 0001 ******** Primary: Region 2 Node 1
  • 17. Iskandar Setiadi Sinkronisasi Data (II) April 22, 2015 17 Region 2 Node 1 Region 3 Node 1 ShardedKey:0001 0001 ******** Primary: Region 3 Node 1 Secondary: Region 2 Node 1 ShardedKey:0001 0001 ******** Primary: Region 2 Node 1 resyncData Pada prototipe ini, sinkronisasi dilakukan dengan melakukan resync terhadap semua data yang ada. Untuk pengembangan kedepannya, optimasi dapat dilakukan dengan membuat hinted handoff terhadap origin data (cth: Region 1 Node 1). Region 1 Node 1 Block permintaan resyncData untuk ShardedKey: 0001 0001 ********
  • 18. Iskandar Setiadi Sinkronisasi Data (III) April 22, 2015 18 Region 2 Node 1 Region 3 Node 1 ShardedKey:0001 0001 ******** Primary: Region 1 Node 1 Secondary: Region 2 Node 1 1 requestSyncData Region 1 Node 1 ShardedKey:0001 0001 ******** Primary: Region 3 Node 1 Secondary: Region 2 Node 1 Selama tahap recovery, server akan melakukan sinkronisasi metadata, kemudian melakukan sinkronisasi data (1 & 2) yang bersesuaian dengan region dan node dari server tersebut. Setelah tahap recovery selesai, server baru dapat melayani request pengguna. 2 updateMetadata 2 updateMetadata Update dilakukan untuk ShardedKey: 0001 0001 ********
  • 19. Iskandar Setiadi Beberapa kasus seperti replikasi data maupun penyeimbangan data memerlukan koordinasi antar node dalam sistem. Untuk simplifikasi, pemilihan koordinator dalam voting akan menggunakan random timer seperti yang digunakan dalam protokol konsensus berbasis Raft. Koordinasi antar Node April 22, 2015 19
  • 20. Iskandar Setiadi Konsensus Raft April 22, 2015 20 Mekanisme pemilihan leader pada protokol Raft (Howard, 2014)
  • 21. Iskandar Setiadi Pengembangan dilakukan dalam lingkungan Amazon Elastic Compute Cloud (EC2) yang telah dikonfigurasi pada dua instance t2.micro di dua access point berbeda, yaitu US East (N. Virginia) dan Asia Pacific (Singapore), dengan spesifikasi sebagai berikut: - Processor Intel® Xeon CPU @ 2.50 GHz (1 vCPU) - Memory 1 GiB RAM Implementasi April 22, 2015 21
  • 22. Iskandar Setiadi Sistem operasi Amazon Linux 2015.03 (HVM) 64-bit Compiler g++ versi 4.7.2 (dengan dukungan C++11) Python versi 2.7 Boost library versi 1.54 Apache Thrift versi 0.9.2 LevelDB versi 1.15.0 MongoDB versi 3.0.1 & PyMongo versi 3.0 (untuk benchmark) Git versi 1.7.10.4 https://github.com/freedomofkeima/TippyDB Implementasi (II) April 22, 2015 22
  • 23. Iskandar Setiadi Pengujian: Performansi Dasar April 22, 2015 23 •Semua operasi dilakukan dengan 100.000 data •Ukuran data adalah jumlah dari ukuran key dan value (masing-masing bernilai sama), tidak termasuk ObjectID MongoDB •1 MB = 1.048.576 Bytes Jenis Operasi Ukuran Data (Byte) Performansi (usec / op) MB / s LevelDB MongoDB LevelDB MongoDB FILL 20 3,10 223,05 6,15 0,09 100 4,05 224,15 23,55 0,42 UPDATE 20 3,17 246,54 6,02 0,08 100 4,75 259,17 20,08 0,37 READ 20 0,60 196,09 31,79 0,10 100 1,77 197,99 53,88 0,48 DELETE 20 2,93 224,74 6,51 0,08 100 3,55 223,19 26,86 0,43
  • 24. Iskandar Setiadi Pengujian terhadap request dari pengguna Rencana Pengujian: Performansi April 22, 2015 24 Jenis Operasi Ukuran Data (KB) Jumlah Operasi Performansi (msec / op) Prototipe (TippyDB) MongoDB Avg Min Max Avg Min Max CREATE (Primary) CREATE (Primary mati) READ (Primary) READ (Primary mati) UPDATE (Primary) UPDATE (Primary mati) DELETE (Primary) DELETE (Primary mati) •Key yang digunakan berukuran 16 bytes •1 shard / partisi = 32 MB •Total data yang disimpan berukuran 200.000 KB
  • 25. Iskandar Setiadi Pengujian terhadap komposisi read : write yang bervariasi Rencana Pengujian: Performansi April 22, 2015 25 Komposisi Write Komposisi Read Performansi (sec) Prototipe (TippyDB) MongoDB 1% 99% 5% 95% 25% 75% 50% 50% •Pengujian dilakukan menggunakan 10.000 request dengan 100 workers untuk mensimulasikan request konkuren pengguna •Ukuran data untuk setiap operasi write adalah 100 KB •Pengujian dilakukan dengan 2.000 data awal yang masing-masing berukuran 100 KB dan tersebar dalam 2 replika
  • 26. Iskandar Setiadi Secara garis besar, pengujian terhadap prototipe solusi akan dibagi dalam 3 bagian utama: - Pengujian dilakukan untuk menjamin safety dan liveness dari komunikasi antar server - Pengujian dilakukan untuk menjamin kebenaran dari komunikasi antara client dengan server - Pengujian dilakukan untuk menjamin kebenaran internal dari server, mencakup komunikasi antara Apache Thrift dengan LevelDB Rencana Pengujian: Correctness April 22, 2015 26
  • 27. Iskandar Setiadi Tanggal Kegiatan (Milestone) 31 April 2015 Penanganan terhadap kegagalan node 5 Mei 2015 Pengujian terhadap performansi prototipe solusi (TippyDB) dengan MongoDB yang tereplikasi 10 Mei 2015 Pengujian terhadap correctness prototipe solusi 15 Mei 2015 Dokumen TA II 22 Mei 2015 Revisi terhadap prototipe solusi maupun dokumen TA II pra-sidang Rencana Kedepan April 22, 2015 27
  • 28. Iskandar Setiadi Kesimpulan Sementara April 22, 2015 28 TippyDB dapat mendukung penyimpanan data yang terpartisi maupun tereplikasi. Basis data NoSQL yang membutuhkan cukup banyak operasi penulisan (write) dapat dikembangkan dengan memperhatikan aspek lokasi pengguna. Hal ini dapat mengurangi latensi RTT rata-rata dari pengguna sampai dengan 100 ms.