Mongo DB
Mongo DB
SISTEMMANAJEMENBASISDATATERDISTRIBUSI
MONGODB CLUSTER
OLEH:
1. IMADEPASEKMUDHANA 2213206715
2. RISTANOVITASARI 2213206716
MAGISTERPASCASARJANATELEMATIKA
KONSENTRASICHIEFINFORMATIONOFFICER(CIO)
JURUSANTEKNIKELEKTRO
INSTITUTTEKNOLOGISEPULUHNOPEMBERSURABAYA
2013
MONGODBCLUSTER
A. SEKILASTENTANGMONGODB
Relasional Database diperkenalkan tahun 1970 yang memungkinkan aplikasi untuk
menyimpan data melalui pemodelan data dan bahasa query (Structured Query Language,
atau SQL). Sejak munculnya web, volume data yang disimpan misalnya data tentang
pengguna,benda,barangdanlainlainmenjadisangatbesar.Datajugadiakseslebihsering,
dandiproseslebihintensif,misalnya,padafacebook,jaringansosialyangmembuatratusan
jutapenggunadenganaktivitasrealtime.
MongoDB adalah salah satu dari database NoSQL, yaitu sebuah konsep penyimpanan data
nonrelational. Istilah NoSQL ini juga bukan berarti No SQL, tapi merupakan kepanjangan
dari Not Only SQL. Ada beberapa metode berbeda yang dipakai oleh databasedatabase
jenisiniuntukstoreddata,salahsatunyaadalahmetodedocumentorientedyangdigunakan
oleh MongoDB. Kelebihan lainnya dari database NoSQL adalah adanya dukungan adanya
banyaknyatipeindexyangberbedabedauntuklookupsterhadapdatatertentu.NoSQLjuga
memilikikemampuanclusteringsecaradefault.
MongoDB pertama kali dikembangkan di New York City oleh perusahaan 10gen (sekarang
bernama MongoDB Inc) pada bulan Oktober 2007 sebagai bagian dari platform yang
direncanakan sebagai produk jasa, perusahaan bergeser ke model pembangunan sumber
terbukaditahun2009,dengan10genmenawarkandukungankomersialdanlayananlainnya.
Sejakitu,MongoDBtelahdiadopsisebagaiperangkatlunakbackendolehsejumlahsitusdan
layanan, termasuk craigslist, eBay, Foursquare, SourceForge, dan The New York Times,
antaralainutama..MongoDBadalahyangpalingpopulersistemdatabaseNoSQL.
MongoDB berasal dari kata humongous yang dapat diterjemahkan sebuah document
oriented database yang bersifat open source. Penyimpanan data tanpa perlu adanya tabel
schema dan tidak ada bahasa sql yang terlibat dalam pemakaian database. MongoDB tidak
mengenal adanya tabel, kolom dan baris, jadi tidak ada schema dalam MongoDB (schema
less). Unit paling kecil dari MongoDB adalah documment, sedangkan kumpulan dari
document adalah collection. Seperti halnya dalam database relasional document, ibarat
record dan collection sebuah tabel. Documment dalam MongoDB dapat memiliki atribut
yang berbedabeda dengan document yang lainnya walaupun dalam satu collection. Dalam
MongoDB data tidak ditulis/dibaca dari database dengan menggunakan bahasa SQL, tetapi
menggunakan metode objectoriented selain itu adanya banyak dukungan tipe index yang
berbeda beda untuk lookups terhadap data tertentu dan memiliki kemampuan clustering
secaradefault.
MongoDB ditulis menggunakan C++. Beberapa fitur yang dimiliki oleh MongoDB yaitu
Documentorientedstorage,fullindexsupport,replication&highavailability,autosharding,
querying, fast inplace updates, map/reduce, gridFS, commercial support. Pada MongoDB
tidak perlu membuat struktur tabel, jadi untuk melakukan proses insert, maka MongoDB
akan otomatis membuatkan struktur tabelnya. MongoDb memiliki performa 4x lebih cepat
jikadibandingkandenganMysql.
Beberapahalyangharusdiperhatikanyaitu:
MongoDB harus diinstall di sebuah server, dan ketika kita menggunakan PHP anda
jugaharusmerestartserverandadriverMongoDBandadapatdigunakanolehPHP
Belum support di hosting, namun bisa diakali dengan menggunakan MongoHQ
(untukfreeterdapatlimitsampai16MB)
Model schema free dalam mongoDB ini dibangun tanpa relasi, constrain dan
transactionalprocesssehinggasangattidaktepatmemakaimongoDBpadaaplikasi
aplikasi yang sarat dengan proses transaksi seperti perbankan, pergudangan, atau
accounting.
MongoDBberfokuspada:
1. Fleksibilitaspenggunaan
MongoDB menyimpan data dalam dokumen JSON (yang kita serialize ke BSON). JSON
menyediakan model data yang kaya yang mulus memetakan dengan jenis bahasa
pemrograman asli, dan skema dinamis membuatnya lebih mudah untuk berkembang
modeldatadaripadasistemdenganskemaditegakkansepertiRDBMS.
2. Kekuatanpenggunaan
MongoDB menyediakan banyak fitur dari RDBMS tradisional seperti indeks sekunder,
query dinamis, menyortir, update kaya, upserts (update jika ada dokumen, masukkan
jikatidak),danagregasimudah.InimemberiAndaluasnyafungsiyangdigunakanuntuk
dariRDBMS,denganfleksibilitasdanskalakemampuanmodelnonrelasional.
3. Kecepatan/Penskalaanpenggunaan
Dengan menjaga data yang terkait bersamasama dalam dokumen, query bisa lebih
cepat daripada dalam database relasional dimana data terkait dipisahkan menjadi
beberapa tabel dan kemudian perlu bergabung belakangan. MongoDB juga
memudahkan untuk skala keluar database Anda. Autosharding memungkinkan untuk
skala cluster linear dengan menambahkan lebih banyak mesin. Hal ini dimungkinkan
untukmeningkatkankapasitastanpadowntime,yangsangatpentingdiwebsaatbeban
tibatibameningkatkandanmenurun.
4. Kemudahanpemakaian
MongoDB bekerja keras untuk menjadi sangat mudah untuk menginstal,
mengkonfigurasi, memelihara, dan menggunakan. Untuk tujuan ini, MongoDB
menyediakan beberapa pilihan konfigurasi dan kita dapat langsung mengembangkan
aplikasitanpamenghabiskanbanyakwaktufinetuningkonfigurasidatabase.
MongoDB sangat cocok digunakan untuk membangun sebuah sistem yang tidak
membutuhkan proses transaksi seperti blog, forum, portal berita, social networking, dan
website. MongoDB sangat tidak cocok jika digunakan untuk membangun sistem berbasis
transaksi,karenajikasistembasisdataNoSQL(sepertiMongoDB)digunakandalamkasusini,
maka bisa dipastikan akan banyak terjadi kegagalan dalam sistem, terutama saat proses
transaksi.
B. InstalasiMongoDB
MongoDB tersedia untuk platform Windows, Linux, Mac OS X, danSolaris. MongoDB dapat
didownloadpadaalamathttp://www.mongodb.org.Instalasinyacukupmudahuntukdiikuti,
berikutadalahcaramenginstalldatabaseinipadaWindowsdanLinux.
1. InstalasipadaWindows
Mongodbdapatdidownloadpadahttp://www.mongodb.org/display/DOCS/Downloads.
Ada dua pilihan untuk windows, yaitu untuk windows 32bit dan 64bit version. Pilih
salah satu yang sesuai dengan komputer yang digunakan. Download dan kemudian
ekstrak pada direktori komputer. Mongo server dengan mengetikkan perintah berikut
padacommandline:
Secara default semua berkas file database akan disimpan pada sebuah folder
C:\data\db.Namun, jika telah disiapkan folder lain, dapat mendefinisikannya dengan
memberikanparameterdbpath.
Untuk menjalankannya sebagai sebuah service, Anda dapat memberikan parameter
install.SelanjutnyaAndadapatmenjalankanataumenghentikanmongoDBpadacontrol
panelWindowsAnda.
2. InstalasipadaLinux
Untuk versi Linux dan Mac OS dapat juga anda di download pada halaman MongoDB.
Downloaddankemudiandecompress.tar.gzyangAndadapatkan.
$ t ar zxf mongodb- l i nux- i 686- 1. 6. 0. t ar . gz
SamasepertiWindowsinstall,Andaharusmenyiapkansebuahfolderuntukmenyimpan
berkas file database. Buat folder baru dan setting permissionnya agar folder writable
olehMongoDB.
$ mkdi r - p ~/ db
$ chown - R $USER: $USER ~/ db
Setelah menyiapkan folder database, jalankan MongoDB dengan dbpath folder
databaseyangtelahditentukan.
$ cd mongodb- l i nux- i 686- 1. 6. 0
$ bi n/ mongod - - dbpat h ~/ db
3. ShellclientmongoDB
MongoDB dilengkapi dengan Javascript shell client untuk para administrator dalam
memanipulasidata.Shellclientinidapatdijalankandenganperintahberikut:
$ bi n/ mongo
Perintah diatas menghubungkan Anda dengan service mongod yang jalan pada
komputer yang sama, tetapi jika service berada pada server lain, Anda dapat
menambahkanalamatserverdanportnyasepertiini:
$ bi n/ mongo db. mi mi cr eat i ve. net : 20000
Yang menarik dari shell ini adalah fitur connect yang dapat menghubungkan ke
beberapa server cluster yang dipunyai. Caranya pun sangat mudah, dengan memanggil
methodconnect()dankemudianmenyimpannyapadasebuahvariabel.
mongos = connect ( "l ocal host : 27017")
connect i ng t o: l ocal host : 27017
l ocal host : 27017
shar d0 = connect ( "db0. mi mi cr eat i ve. net : 30000")
connect i ng t o: db0. mi mi cr eat i ve. net : 30000
db0. mi mi cr eat i ve. net : 30000
shar d1 = connect ( "db1. mi mi cr eat i ve. net : 30001")
connect i ng t o: db1. mi mi cr eat i ve. net : 30001
db1. mi mi cr eat i ve. net : 30001
Contoh diatas, menghubungkan anda ke tiga server cluster. Ketiga server cluster itu
kemudiandiwakiliolehtigavariabelmongos,shard0danshard1.
C. FORMAT PENULISAN
Format penulisan pada MongoDB lebih dikenal dengan nama BSON (Binary JSON). Ada
beberapa keuntungan BSON daripada JSON, yaitu JSON tidak dapat menerima data dengan
tipe date, sedangkan BSON dapat menerima data dengan type date. JSON tidak dapat
membedakan data integer, double dan float, dia hanya memiliki data dengan tipe data
number (Doubleprecision floatingpoint format) sedangkan BSON dapat membedakannya,
selainitujugaadabeberapatipedatasepertisymbol,regex,dancodeyangtidakadadalam
JSONtapiadadiBSON.
TipedatayangdisupportolehMongoDB:
1. null :Tipe data ini untuk merepresentasikan null value atau ketidaksediaan key
sebuahdata
2. boolean:Hanyaadaduanilaidariboolean,trueataufalse
3. 32bitinteger:Tipedatainitidakdapatdigunakanpadajavascriptshellmongodb,hal
inikarenajavascripthanyasupport64bitfloatingpointnumber.Memanipulasidata
32bitintegerpadashellakandiubahkebentuk64bitfloatingpoint.
4. 64bitinteger:Tipedatainijugatidakdapatdigunakanpadashellmongodb.
5. 64bitfloatingpointnumber:Padashellmongodb,semuanumberakandiubahke
bentukini64bitfloatingpointnumber
6. string:StringmongodbsudahmenggunakanencodingunicodeatauUTF8
7. objectid:Objekidyangpastiadapadatiapdocument,berukuran12bytedanakan
digenerateotomatissaatpembuatandocument
8. date
9. regularexpression:Sebuahkeydocumentjugabisaberisiregularexpression(regex)
10. code:Sebuahkeydocumentjugadapatmenyimpankodekodejavascript
11. binarydata:Tipedatainitidakdapatdimanipulasiolehjavascriptshell
12. array:Merupakankumpulan dari beberapa value, tiap value dalam satu array boleh
berbedatipedatanya
13. embedded document:Tipe data ini memiliki arti dokumen yang memiliki atau
embbeddocumentlain.
D. CLUSTER/SHARDINGPADAMONGODB
Sharding / Cluster digunakan ketika kita memiliki website yang sudah sangat besar jumlah
penggunanya dan datanya mencapai jutaan giga byte. Kita dapat menggunakan sharding,
misal dengan membagi data menjadi data pengguna per regional, misalnya untuk
membangunjejaringsosialsepertifacebook.
Salah satu kelebihan MongoDB adalah MongoDB mendukung model pemrograman
MapReduce, sebuah konsep yang sangat fenomenal yang pernah dikeluarkan oleh Google
dansaatinibanyakdiimplementasikansepertipadaApacheHadoop.
Sharding pada mongodb merupakan teknik yang memungkinkan untuk membagi data ke
beberapa mesin dengan cara meniru sebuah aplikasi yang memiliki database tunggal untuk
menyimpan datanya. Sharding ini mengacu pada pembagian data ke beberapa komputer
dengan porsi yang berbeda. Istilah lainnya mengenai sharding sama denganpartioning.
SetiappenyimpanandatabaikiturelationaldatabasemaupundatabaseNoSQL,akanselalu
menyediakan fitur partioning data, ini beralasan karena dengan teknik ini dapat
meningkatkanperformance,availabilitydanmanageabilitydatastore.
Sharding yang diimplementasikan oleh MongoDB sangat cocok dan dinamis, skala otomatis
datasensitif,dimanakapasitasdapatditingkatkanketikadiperlukandanmenolaknyaketika
tidakdiperlukan.
Sharding mongodb lebih dikenal dengan autosharding, ini karena beberapa urusan
administrative telah otomatis dilakukan oleh mongodb, seperti menangani pembagian data
kebeberapaclusterdanmengotomatisasirebalancingdata.
ArsitekturCluster/ShardingMongodb
Konsepdasardarishardingadalahmemisahkancollectionkedalambagianbagiankecilyang
disebut chunks. Chunks ini kemudian didistribusikan ke server cluster yang disebut sebagai
shard. Dengan begini masingmasing shard bertanggung jawab terhadap subset data yang
disimpan. Setiap shard dapat direpresentasikan sebagai mesin dengan koneksi ke satu atau
lebih service mongo (mongod). Dari sini tentunya kita berpikir bahwa akan ada lebih dari
satuservicemongodyangdibuat,sehinggapertanyaannyaadalahclientharusterkoneksike
manauntukmengambildanmenyimpandata?
Dalam mengembangkan sebuah aplikasi, kita dapat mensetup aplikasi untuk langsung
koneksi ke serviceMongoDB. Namun, dengan melakukan sharding, koneksi tidak secara
langsungkepadatiapservice.Menghubungkanaplikasidenganshardscluster,bisadilakukan
denganprosesroutingyangdinamakandenganmongos.
mensetupaplikasiuntuklangsungkoneksikeserviceMongoDB
Menghubungkanaplikasidenganshardscluster
Mongos process dapat juga dikatakan sebagai abstraksi koneksi ke shards cluster. Client
terkoneksi ke mongos yang kemudian diteruskan ke shards.Developer tidak perlu
memikirkan perbedaan proses mongos dan mongod, karena dalam level development
aplicationmerekamemilikibentukyangsama,sehinggatidakperlumenggantikodeaplikasi
ketikamemutuskanuntukscaleupdatabase.
Adabeberapamanfaatyangbisadiambildenganmelakukanteknikini,diantaranyaadalah:
Dengan iteknik ini, dapat direncanakan ukuran media penyimpanan data pada tiap
shardyangdmiliki.
Menulisdataakanlebihcepatdaripadahanyapadasatumongod.
Proporsi data yang bisa disimpan dimemori bisa lebih banyak, ini tentunya akan
menambahperformapemrosesandata.
Adatigahalyangharuskitaketahuiuntukmenerapkanshardingdatabaseini:
1. Shard
Tiap server yang menyimpan bagianbagian collection(chunks) disebut sebagai shard.
Tiap shard bisa memiliki satu mongod atau mungkin bisa lebih dari itu. Walaupun bisa
lebih dari satu mongod, tetap saja yang dijadikan master hanya satu, mongodmongod
yang lain hanya digunakan sebagai slave jika sewaktuwaktu terjadi trouble pada
masternya(replicaset).
2. Mongos
Mongos berfungsi sebagai proses route request dan kemudian mengumpulkan
responses untuk client. Bagian ini tidak dapat menyimpan data, sehingga konfigurasi
nantinyadisimpanpadaconfigserver.
3. Configserver
Pada config server ini, mongos akan berpedoman. mongos akan membaca ini tiap kali
adareaddanwriteoperationdatabase.
Menjalankanmongosprocess
Pertamayangkitabutuhkanadalahmembuatconfigserver.Iniperludibuatterlebihdahulu
karena mongos akan membaca konfigurasi yang ditulis disana. Untuk membuatnya sama
sepertikitamembuatprosesmongodbiasa:
$ mkdi r - p ~/ dbs/ conf i g
$ . / mongod - - dbpat h ~/ dbs/ conf i g - - por t 20000
Configserverinitidakbanyakmembutuhkanspacedata,estimasinyahanyabutuh1KBuntuk
tiap 200MB data. Setelah config server ini dibuat, kemudian dapat dibuat proses mongos
denganmemakaikonfigurasiini.
$ . / mongos - - por t 30000 - - conf i gdb l ocal host : 20000
Prosesmongosdanconfigservernyaberjalanpadamesinyangsama.Mongosberjalanpada
port 30000, sedangkan config server berada pada port 20000. Kita pun dapat membuat
beberapa config server dan kemudian menjalankan proses mongos dengan multi config
server tersebut. Untuk tahap production, disarankan menjalankan mongos ini dengan
beberapa config server, karena jika salah satu down maka client masih bisa membaca dan
menulisdata.
Menambahkanshardkemongosprocess
Pada praktek sesungguhnya tentunya kita sudah memiliki mesinmesin lain yang siap kita
jadikanshardcluster.Tapipadapraktekyangditunjukkanini,semuanyamasihberjalanpada
satumesinlokal.Disinimisalkitamemilikisebuahprosesmongodyangjugadijalankanpada
komputerlokal.
$ mkdi r - p ~/ dbs/ shar d1
$ . / mongod - - dbpat h ~/ dbs/ shar d1 - - por t 10000
Prosesmongodyangdibuatberjalanpadaport10000dansemuaberkasdatanyadiletakkan
pada direktori ~/dbs/shard1, sehingga untuk menjadikannya salah satu dari shards cluster
mongosadalahsebagaiberikut:
Pertamapergikeshelljavascriptmongos,padacontohmongosberadapadaport30000.
$ . / mongo l ocal host : 30000/ admi n
MongoDB shel l ver si on: 1. 6. 0
ur l : l ocal host : 30000/ admi n
connect i ng t o l ocal host : 30000/ admi n
t ype "hel p" f or hel p
>
Kemudian jalankan perintah untuk memasukkan proses mongod pada port 10000 sebagai
shardscluster.
> db. r unCommand( {addshar d : "l ocal host : 10000", al l owLocal : t r ue}) {
"added" : "l ocal host : 10000",
"ok" : t r ue
}
allowLocal berarti shard yang saya tambahkan boleh pada mesin yang sama dengan
mongos process.Key ini sangat membantu ketika masih tahap development. Tapi ketika
sudah sampai tahap production, Anda seharusnya sudah memiliki proses mongod yang
berjalan pada mesin lain. Dengan command addshard seperti pada contoh diatas, Anda
dapatmenambahkansemuaprosesmongodyangAndapunyapadaprosesmongos.
ShardingData
MongoDBtidaksecaraotomatismemecahdatadanmendistribusikannya.Andamasihdapat
menentukan data pada collection mana yang dapat dipecah dan di store ke cluster. Untuk
menentukan itu bisa menjalankan perintah enablesharding pada database yang Anda
punya dan perintah shardcollection pada collectionnya. Semisal saya menginginkan data
yang ada di collection book dengan database office bisa dipartisi sesuai dengan _id
nya,makaperintahyangdapatsayajalankanadalah:
> db. r unCommand( {"enabl eshar di ng" : "of f i ce" })
> db. r unCommand( {"shar dcol l ect i on" : "of f i ce. book", "key" : {"_i d" : 1}})
Dengan perintah diatas, collection book akan dipartisi berdasar _id nya. Ketika saya
menambahkan data pada collection tersebut maka secara otomatis partisi data akan
dilakukanolehMongoDB.
E. CASESTUDY
Parse menyediakan layanan backend berbasis cloud untuk pengembang aplikasi mobile.
Pengembangan pertama yang berbasis di San Francisco memberikan setumpuk penuh
layanan mobile sehingga pengembang dapat fokus pada pengembangan aplikasi dan
meninggalkan infrastruktur untuk Parse. Diluncurkan pada tahun 2012, pengembangan ini
berkembang pesat dalam menyediakan manajemen server untuk sekitar 60.000 Android,
iOS,danaplikasimobileWindows,yangberjalanpadalebihdari200jutaperangkatmobile.
Parse mengoperasikan sejumlah highthroughput, intensif I/O cluster MongoDB dan
diperlukan untuk meningkatkan skalabilitas dan kecepatan. Parse menangani manajemen
akunpengguna,penyimpanandatadandiskcachinguntukpelanggandanpenggunaandapat
berfluktuasi setiap hari. Charity Majors, Situs Keandalan Insinyur mengatakan, "Jika sebuah
aplikasi yang dikembangkan di Parse ditampilkan di iTunes, lalu lintas dapat naik tiga atau
empat kali lipat dalam hitungan jam. Platform kami harus konsisten dan cepat. Jika Parse
menyebabkanmasalahoperasional,makalebihdari50.000aplikasimobilememilikimasalah
operasional. Kami tidak memiliki keistimewaan untuk memperbaiki sesuatu masalah yang
adapadaplatformselama15menit."
Untuk Parse, AWS adalah satusatunya penyedia layanan Cloud yang memiliki fitur lengkap
untuk menangani kebutuhan. "Kami sudah mencari perbaikan klaster MongoDB kami. IOPS
ditetapkan Amazon EBS, yang dirancang untuk memberikan prediksi, kinerja tinggi untuk
bebankerjaintensifI/O,adalahsecaraalamicocokuntukkebutuhankita,"kataMajors.
TimParsemenggunakan1000volumegarisyangditetapkanIOPSuntukmenjalankancluster
MongoDB pada kasus Amazon Elastic Compute Cloud (Amazon EC2). Para insinyur
menggunakan elastis Load Balancing di bagian atas tumpukan untuk mendistribusikan
koneksi ke server web, yang terhubung ke server aplikasi yang berkomunikasi dengan
database.Gambar1menggambarkanlingkunganParseitu.
Parse menjalankan database MongoDB dalam set replika yang mencakup satu database
primer dan dua database sekunder. Parse menggunakan Amazon Elastic Block Store
(Amazon EBS) untuk membuat snapshot sering setiap pecahan MongoDB, yang kemudian
diupload ke Amazon Simple Storage Service (Amazon S3). Jika perlu, Parse dapat
memunculkan node baru dalam hitungan menit dengan menggunakan Amazon S3 dan
bergabungkecluster.
"Kami membatasi volume untuk kinerja yang lebih baik tapi kami tidak menggunakan RAID
10lagi,"catatanMajors."JikaAndamenggunakanRAID10danarrayRAIDakanrusak,Anda
harus menghapus volume buruk, menambah volume baru dan membangun sebuah array
baru. Kami telah menemukan bahwa itu benarbenar lebih cepat bagi kita untuk
membangunkembalivolumedaribackupAmazonS3."
F. KESIMPULAN
Sharding memungkinkan kita mengukur skala penyimpanan data kita untuk menangani
dataset yang sangat besar. Sharding juga memungkinkan mengembangkan cluster yang
sesuai dengan perkembangan system kita. MongoDB menyediakan konfigurasi sharding
secara otomatis yang bekerja sesuai dengan kebutuhan. Meskipun proses ini otomatis, kita
masih dapat mengatur karakteristiknya yang mendukung kebutuhan. Sharding merupakan
fiturutamaMongoDByangmengaturbagianterpisahdariteknologilainpenyimpanandata.
referensi:
http://goshohib.files.wordpress.com/2012/05/bd2c6_tugas2.pdf
http://bisakomputer.com/mengenalmongodbpart1/
http://andiwre.itmaranatha.org/jurnal/Paper%20Andi%20WRE%20cs%20
%20Seminasik%202013%20v%20prosiding.pdf
http://litawismaayu.blog.ugm.ac.id/2013/09/17/mongodb/
http://fsvori.blogspot.com/2013/09/mongodbnosqldatabasesebelumsaya.html
http://docs.mongodb.org/manual/