Home Database Bigtable, Table Yang Berisi “Seluruh Dunia”
formats

Bigtable, Table Yang Berisi “Seluruh Dunia”

Published on February 20, 2013, in Database.

4835845_origDi pagi yang sejuk ini, ane akan sharing lagi tentang hal baru. Kali ini, ane mau membahas tentang Bigtable. Apa sih Bigtable ?

Banyak dari orang IT sudah mengetahui apa itu Bigtable, apalagi jika dihubungkan dengan google. Google dan bigtable adalah dua hal yang tidak bisa dipisahkan, kenapa bisa begitu ?.. simak terus artikel ane kali ini.. ^_^

Google adalah perusahaan raksasa internet yang menyimpan beratus-ratus bahkan beribu-ribu data dari seluruh dunia. Dari berbagai website dengan data berupa artikel, gambar, musik, video, game, film, dan lain-lain. Namun ada rahasia dibalik itu semua, kenapa google sepertinya tidak kehabisan penyimpanan yaa..??

yuph, Bigtable adalah alasannya, Bigtable merupakan teknologi  yang digunakan oleh google dalam merancang, mengelola, memberdayakan penyimpanannya sehingga sampai bisa seperti sekarang.  Bigtable merupakan rahasia kejayaan google selama ini. Dengan menggabungkan beberapa teknologi lain juga, tidak dapat dipungkiri bigtable menjadi senjata rahasia google yang dahsyat.

Bigtable bekerja layaknya sebuah database, dilihat dari namanya yang berarti table besar, kita sudah membayangkan sebesar apa tabel yang bisa menyimpan data seluruh dunia tersebut. Dalam paper berjudul “Bigtable: A Distributed Storage System for Structured Data” yang dirilis oleh Google sendiri, Bigtable didefinisikan sebagai system penyimpanan data terdistribusi yang ditujukan untuk mengelola data yang terstruktur dan didesain sebagai system yang handal untuk mengelola data dalam skala petabytes dan dalam ribuan mesin (komputer). Tabel yang berisi data dalam skala petabytes, bisa berukuran beberapa petabytes, bisa puluhan, ratusan bahkan ribuan petabytes. Data-data tersebut disimpan secara terdistribusi dalam ribuan komputer yang dapat diakses dan dikelola melalui Bigtable. Dalam hal kemampuan mengelola data, Bigtable dinyatakan sebagai system yang sangat fleksibel. Bigtable mampu memproses data mulai data yang berukuran kecil seperti halnya URL, data berukuran sedang seperti halnya web pages, hingga data berukuran besar berupa photo atau citra satelit.

Bigtable bisa menangani pemrosesan data mentah ‘gelondongan’ yang berorientasi pada hasil akhir dan perlu diproses dalam jangka waktu tertentu maupun pemrosesan data secara real time yang menuntut hasil seketika. Google menggunakan Bigtable dalam lebih dari 60 produk dan proyeknya termasuk Google web indexing, Google Analytics, Google Finance, Orkut, Personalize Search, Writely dan Google Earth.

Walaupun bigtable bisa disebut sebagai database, namun tidak bisa disamakan antara bigtable dengan RDBMS yang kita kenal, bigtable dapat mengelola data yang sangat banyak atau besar, yang tidak bisa ditangani oleh RDBMS. Untuk perbedaan jelasnya sendiri, ane akan coba jelaskan :

  • Language

Bahasa yang digunakan dalam bigtable berbeda dengan bahasa pada basis data-basis data umumnya, basis data atau database  biasanya dioperasikan dengan menggunakan bahasa SQL (Struktur Query Language). Nah, bigtable sendiri menggunakan bahasa C++ dalam pengoperasiannya. Kebayangkan gimana ngejalaninnya, hehe… ^_^

  • Struktur Tabel

Sebuah database biasanya terdiri atas kolom dan baris untuk penyimpanannya, sama halnya dengan bigtable juga memiliki struktur kolom dan baris. Terus dimana bedanya ?, perbedaan terlihat pada penyimpanan bigtable  yang juga memiliki Timestamp. Berkat adanya timestamps ini, tiap cell dalam suatu tabel Bigtable dapat memuat suatu data dalam beberapa versi. Jadi, dalam hal ini tabel dalam Bigtable terdiri atas tiga dimensi, yang bila digambarkan dengan sumbu x, y, dan z, x adalah baris, y adalah kolom dan z adalah timestamps. Tidak hanya itu, struktur kolom dalam Bigtable juga tidak sesederhana tabel biasa. Kolom dalam Bigtable terdiri atas Column Families yang masing-masing terdiri atas beberapa Column Keys.

 

Model Data
Baris dalam Bigtable dapat dianalogikan seperti halnya baris dalam tabel pada umumnya. Seperti halnya baris dalam RDB (Relational Database) tiap baris dalam Bigtable juga memiliki kunci yang disebut Row Key dan baris-baris tersebut disusun berurutan berdasar Row Keys ini. Kemudian, bari-baris yang berada dalam suatu bentangan Row Keys dikelompokkan dalam satu group disebut Tablet. Tiap tabel dalam Bigtable akan dibagi-bagi menjadi Tablet-Tablet yang berukuran antara 100 – 200 MB. Tablet-tablet inilah yang kemudian dikelola secara terdistribusi, dibagi-bagikan ke tiap Tablet Servers. Kolom dalam Bigtable terdiri atas Column Families yang terdiri atas beberapa Column Keys. Biasanya, data dalam satu tipe disimpan dalam satu Column Family. Kemudian Column Family ini dibagi-bagi dalam beberapa Column Keys yang masing-masing menyimpan data yang berbeda (unik). Timestamps dalam Bigtable memungkinkan tiap cell memiliki beberapa versi data dari data yang sama yang tentunya dibedakan berdasarkan tanda waktu. Bigtable menentukan timestamps dalam mircosecond, namun demikian timestamps juga dapat ditentukan sendiri oleh aplikasi client yang menggunakan Bigtable. Data yang telah memiliki timestamps ini disimpan dengan urutan menurun sehingga data yang paling baru akan berada paling atas (dapat diakses paling dahulu). Jadi, untuk mendapatkan suatu data tertentu, kita harus menentukan Row Key, Column Key, dan Timestamps dari data tersebut.

datamodel

Struktur Implementasi
Dalam implementasinya Bigtable terdiri atas tiga komponen utama, yaitu: satu Master, banyak Tablet Servers, dan satu Library yang terhubung dengan tiap Client (gampangnya kita sebut saja Client). Jumlah Tablet Servers dapat ditambah atau dikurangi secara dinamis menyesuaikan dengan besar kecilnya beban kerja. Master bertanggungjawab membagi-bagikan Tablet kepada tiap Tablet Server, perubahan jumlah Tablet Servers, mengatur pendistribusian Tablet sehingga beban kerja tiap Tablet Server jadi seimbang, menanggulangi file-file sampah pada GFS, dan menangani perubahan skema pada Bigtable seperti pembentukan table mapun Column Family baru. Singkat kata, Master bertanggungjawab mengontrol kerja Bigtable secara keseluruhan. Peranan Master pada Bigtable hampir sama dengan peranan Master pada GFS. Bedanya, Master pada Bigtable tidak berhubungan langsung dengan Client sedangkan Master pada GFS berinteraksi langsung dengan Client. Tiap Tablet Server bertanggungjawab mengelola satu set Tablets yang terdiri atas 10 – 1000 Tablets. Tablet Servers bertugas menangani permintaan read dan write pada tiap Tablets yang menjadi tanggung jawabnya dan juga bertugas membelah Tablet yang sudah terlalu besar menjadi Tablet-tablet yang lebih kecil. Client pada Bigtable adalah aplikasi yang mengoperasikan Bigtable itu sendiri. Seperti telah

Disebutkan sebelumnya, Client tidak berhubungan langsung dengan Master. Untuk mengetahui lokasi suatu Tablet, Client juga tidak bergantung pada Master. Client berkomunikasi langsung dengan Tablet Servers untuk read dan write data. Jadi, sebagian Client tidak akan pernah berkomunikasi dengan Master. Dengan demikian beban Master menjadi tidak begitu  berat.

Bigtable bergantung pada GFS dan Chubby

Bigtable bukan system yang berdiri sendiri. Bigtable juga bergantung pada beberapa teknologi Google seperti GFS dan Chubby. Untuk menyimpan data dan log, Bigtable bergantung pada GFS. Semua data yang ditangani ataupun diproses oleh Bigtable termasuk juga log data Bigtable itu sendiri disimpan di Google File System. Jadi, andaikan terdapat Tablet Sever yang rusak atau mati, data yang menjadi tanggung jawabnya tidak akan hilang karena sudah tersimpan pada GFS. Bigtable pun bisa dengan segera membentuk Tablet Server baru yang identik dengan Tablet Server yang telah mati dengan menggunakan informasi pada Log data yang disimpan di GFS.
Bigtable2
Chubby sebagai teknologi pendukung Bigtable berfungsi sebagai administrator yang memegang informasi-informasi mendasar mengenai Bigtable secara keseluruhan. Tablet Servers secara rutin berkomunikasi dengan Chubby untuk melaporkan kondisinya pada saat itu. Master juga secara rutin berkomunikasi dengan Chubby untuk mengetahui kondisi para Tablet Servers. Berdasarkan informasi ini, Master akan mengatur pendistribusian Tablet-tablet kepada para Tablet Servers.
Gimana, sampe sini udah mengerti tentang bigtable ?, agar system google dapat berjalan dengan baik, google tidak hanya menggunakan bigtable sebagai teknologinya masih ada GFS (Google File System) dan GMP (Google Map Reduce), yang insya allah ane bahas di artikel selanjutnya.. ^_^
Referensi:
“Bigtable: A Distributed Storage System for Structured Data”, Fay Chang et al, Google Inc. 2006
“Google を支える技術”, Nishida Keisuke, WEB+DB PRESS 2008

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>