Oracle TimesTen, verinin tamamini kalici olarak ana bellekte (RAM) tutan, iliskisel bir bellek ici (in-memory) veritabani yonetim sistemidir. Diski birincil veri deposu olarak kullanan klasik veritabanlarinin aksine, TimesTen sorgulari dogrudan bellek uzerinde calistirarak cok dusuk gecikme (latency) ve yuksek islem hacmi hedefler. Bu rehberde TimesTen'in ne oldugunu, mimarisinin nasil isledigini, guclu ve zayif yonlerini ve hangi senaryolarda dogru secim oldugunu ayrintili olarak ele aliyoruz.
Oracle TimesTen Nedir?
Oracle TimesTen, ACID islem garantileri sunan, standart SQL destekleyen ve verisini oncelikli olarak RAM'de saklayan bir iliskisel veritabanidir. Amaci, milisaniyenin altinda yanit sureleri gerektiren uygulamalara okuma ve yazma performansi saglamaktir. Verinin bellekte olmasi, disk giris/cikisinin (I/O) sorgu yolundan buyuk olcude cikarilmasi anlamina gelir; bu da tutarli ve ongorulebilir gecikme saglamaya yardimci olur.
Teknolojinin kokleri, ticari bir urune donusmeden once bir arastirma projesine dayanir. TimesTen daha sonra bagimsiz bir sirket tarafindan gelistirildi ve 2005 yilinda Oracle tarafindan satin alindi. O gunden bu yana urun, Oracle'in urun ailesinin bir parcasi olarak, ozellikle Oracle Database ile birlikte calisacak bir hizlandirma ve onbellek katmani olarak konumlandirildi.
TimesTen'i genis veritabani ailesi icinde nereye koyacaginizi gormek icin veritabani turleri rehberimize goz atabilir, ayni ureticinin disk tabanli amiral gemisi icin Oracle Database nedir yazimizi inceleyebilirsiniz.
Bellek Ici Mimari Nasil Calisir?
Cogu disk tabanli veritabani, veriyi disk sayfalarinda saklar ve sik erisilen sayfalari hizlandirmak icin bir tampon onbellek (buffer cache) kullanir. Bu tasarimda sorgu isleyicisi, verinin diskte mi yoksa bellekte mi oldugunu dusunerek calisir. TimesTen bu modeli tersine cevirir: veri yapilari, indeksler ve algoritmalar en bastan bellekte durmaya gore tasarlanmistir.
Bunun sonucunda TimesTen'in sorgu optimizasyonu, tampon onbellek isabet oranlarini degil, bellek icindeki erisim maliyetlerini temel alir. Veriye ulasmak icin bir sayfayi diskten getirme adimi olmadigindan, islem yollari kisalir. Bu yaklasim, veri kumesi bellege sigdigi surece cok hizli ve kararli yanit sureleri saglar.
Kalicilik ve Dayaniklilik: Checkpoint ve Islem Gunlukleri
Verinin bellekte olmasi, kaybolabilecegi anlamina gelmez. TimesTen, dayanikliligi (durability) saglamak icin veriyi periyodik olarak diske yazan checkpoint dosyalari ile yapilan degisiklikleri kaydeden islem gunlukleri (transaction log) kullanir. Bir hata ya da yeniden baslatma durumunda veritabani, en son checkpoint'ten baslayip gunlukteki kayitli islemleri tekrar uygulayarak bellekteki durumu yeniden olusturur.
Bu yapi, klasik veritabanlarindaki WAL (write-ahead logging) ve checkpoint mantigina benzer bir mantikla calisir: kalici depolamaya yazma, bellek ici hizdan odun vermeden dayanikliligi korumaya calisir. Uygulama gereksinimlerine gore, islem gunlugunun diske yazilma davranisi ayarlanabilir; bu da dayaniklilik ile performans arasindaki dengeyi yonetmeye olanak tanir.
Baglanti Modlari: Direct-Linked ve Istemci/Sunucu
TimesTen'in performans avantajinin onemli bir parcasi, uygulamanin veritabanina nasil baglandigidir. Iki temel mod vardir:
- Direct-linked (dogrudan bagli) mod: Uygulama, TimesTen kutuphanesiyle ayni surec (process) icinde calisir. Sorgular bir ag baglantisi uzerinden degil, dogrudan fonksiyon cagrilariyla islenir. Bu, ag ve surecler arasi iletisim yukunu ortadan kaldirarak en dusuk gecikmeyi hedefler.
- Istemci/sunucu (client/server) mod: Uygulama, ayri bir surecte veya makinede calisan TimesTen ornegine bir ag protokolu uzerinden baglanir. Bu mod daha esnek dagitim ve uzaktan erisim saglar; karsiliginda ag gecikmesi devreye girer.
Cogu dusuk gecikmeli senaryoda uygulama sunucusu ile veritabani ayni makinede konumlandirilir ve direct-linked mod tercih edilir. Uzaktan erisim ya da daha genis bir dagitim gerektiginde istemci/sunucu modu kullanilir. Iki mod ayni veritabani ornegi icin birlikte de yapilandirilabilir.
TimesTen Classic ve TimesTen Scaleout
TimesTen iki temel dagitim modeliyle degerlendirilir. TimesTen Classic, tek dugum uzerinde calisan, gomulu ya da uygulama katmaninda konumlanan klasik modeldir; replikasyonla yuksek erisilebilirlik saglanabilir. TimesTen Scaleout ise veriyi birden fazla dugume dagitan, paylasimsiz (shared-nothing) bir olceklenme mimarisi sunar; boylece hem kapasite hem de islem hacmi dugum eklenerek yatayda buyutulebilir.
Scaleout modelinde veri, dugumler arasinda bolumlenir (partition) ve uygulama tek bir mantiksal veritabaniyla konusur gibi calisir. Bu yaklasim, tek bir sunucunun bellek ve islemci sinirlarini asan is yukleri icin tasarlanmistir. Iki model de ayni SQL ve islem semantigini paylasir; secim, olcek ve erisilebilirlik gereksinimlerine gore yapilir.
| Ozellik | TimesTen Classic | TimesTen Scaleout |
|---|---|---|
| Topoloji | Tek dugum (replikasyonla HA) | Cok dugumlu, paylasimsiz kume |
| Olcekleme | Dikey (sunucu buyutme) | Yatay (dugum ekleme) |
| Veri dagitimi | Tek ornekte | Dugumlere bolumlenmis |
| Tipik hedef | Dusuk gecikme, gomulu/onbellek | Buyuk olcekli, elastik is yukleri |
Application-Tier Database Cache: Oracle Database Onbellegi
TimesTen'in en cok bilinen kullanim bicimlerinden biri, bir disk tabanli Oracle Database onunde uygulama katmani onbellegi olarak calismasidir. Bu senaryoda, arka plandaki Oracle Database'de bulunan tablolarin sik erisilen bir alt kumesi TimesTen'e yuklenir ve uygulama, dusuk gecikmeli okuma/yazma islemlerini bellek ici katman uzerinden yapar.
Onbellek grubu (cache group) adi verilen yapilarla, hangi tablolarin ve satirlarin onbelleklenecegi tanimlanir. TimesTen ile arka plandaki Oracle Database arasindaki veri esitleme (senkronizasyon) yonu ve zamanlamasi yapilandirilabilir; okuma agirlikli onbellek ile yazmalarin da geri yazilabildigi modeller arasinda secim yapilabilir. Bu, mevcut bir Oracle Database'i degistirmeden onune hizlandirma katmani eklemenin pratik bir yoludur.
Yuksek Erisilebilirlik ve Replikasyon
Bellek ici bir veritabaninda tek dugume bagimli kalmak risklidir; bu nedenle TimesTen replikasyon ozellikleri sunar. Yaygin desenlerden biri aktif-yedek (active-standby) cift yapisidir: bir dugum aktif olarak yazmalari alirken, ikinci dugum degisiklikleri alarak guncel bir kopya tutar ve aktif dugum devre disi kaldiginda devralabilir.
Replikasyon, hem planli bakim hem de beklenmedik arizalar sirasinda hizmet surekliligini korumaya yardimci olur. Ayrica, uygun yapilandirmalarla okuma is yuklerinin bir kismi yedek dugume dagitilarak aktif dugumun yuku hafifletilebilir. Erisilebilirlik hedefleriniz (RPO/RTO) replikasyon modunun ve dayaniklilik ayarlarinin secimini dogrudan etkiler.
SQL, Uyumluluk ve Programlama Arayuzleri
TimesTen standart SQL'i destekler ve iliskisel model uzerine kuruludur; tablolar, indeksler, birlesimler (join), islemler ve saklanan yordamlar gibi tanidik kavramlar gecerlidir. Uygulama gelistiriciler icin genis bir arayuz yelpazesi sunar: ODBC, JDBC, Oracle Call Interface (OCI), Pro*C ve .NET saglayicilari yaygin secenekler arasindadir. Ayrica ttIsql gibi komut satiri araclariyla etkilesimli yonetim ve sorgulama yapilabilir.
Oracle ekosistemiyle uyumu, ozellikle PL/SQL ve Oracle veri tipleri gibi tanidik yapilarin desteklenmesiyle guclendirilmistir. Bu, mevcut bir Oracle uygulamasini bellek ici bir katmana tasima ya da hizlandirma cabalarini kolaylastirmayi hedefler. Asagidaki ornek, basit bir tablo olusturup sorgulamayi gosterir:
-- Bellek ici bir tablo olusturma
CREATE TABLE oturumlar (
oturum_id NUMBER(12) NOT NULL PRIMARY KEY,
kullanici_id NUMBER(12) NOT NULL,
baslangic TIMESTAMP NOT NULL,
durum VARCHAR2(16) NOT NULL
);
-- Sik sorgulanan sutun icin indeks
CREATE INDEX ix_oturum_kullanici ON oturumlar (kullanici_id);
-- Ornek sorgu
SELECT oturum_id, durum
FROM oturumlar
WHERE kullanici_id = 4210
AND durum = 'AKTIF';Onbellek senaryosunda ise, arka plandaki Oracle Database tablosunu TimesTen'de onbelleklemek icin bir onbellek grubu tanimlanir. Asagidaki kavramsal ornek, okuma agirlikli bir onbellek grubunun temel fikrini gosterir:
-- Kavramsal ornek: bir Oracle tablosunu onbellekleyen grup
CREATE READONLY CACHE GROUP musteri_ob
AUTOREFRESH INTERVAL 5 SECONDS
FROM
musteriler (
musteri_id NUMBER(12) NOT NULL PRIMARY KEY,
ad VARCHAR2(64) NOT NULL,
segment VARCHAR2(16)
);Tipik Kullanim Alanlari
TimesTen, dusuk gecikmenin is degeri tasidigi alanlarda one cikar. Yaygin kullanim senaryolari sunlardir:
- Telekomunikasyon: gercek zamanli ucretlendirme (charging), abone verisi ve oturum yonetimi gibi yuksek hacimli, dusuk gecikmeli is yukleri.
- Finans: dusuk gecikme gerektiren islem, fiyatlandirma ve risk hesaplamalari.
- Gercek zamanli dolandiricilik ve karar sistemleri: her istek icin milisaniye altinda yanit gereken denetimler.
- Oturum ve durum yonetimi: web ve uygulama katmaninda hizli erisilen gecici olmayan durum verileri.
- Oracle Database onunde hizlandirma katmani: sicak verinin onbelleklenerek okuma/yazma gecikmesinin dusurulmesi.
Avantajlar ve Sinirlamalar
Her veritabani gibi TimesTen de belirli odunlesmeler (trade-off) uzerine kuruludur. Asagidaki tablo, guclu yonlerini ve dikkat edilmesi gereken sinirlarini ozetler:
| Boyut | Guclu yon | Dikkat edilmesi gereken |
|---|---|---|
| Gecikme | Bellek ici erisimle cok dusuk ve kararli | Veri kumesi bellege sigmali |
| Uyumluluk | Standart SQL ve Oracle ekosistemiyle uyum | Oracle odakli; genel amacli bir arac degil |
| Dayaniklilik | Checkpoint ve gunlukle kalicilik | Ayarlar performans/dayaniklilik dengesi ister |
| Olcekleme | Scaleout ile yatay buyume | Kume yonetimi ek operasyonel karmasiklik getirir |
| Maliyet | Yuksek performans | RAM kapasitesi disk depolamaya gore pahalidir |
TimesTen Ne Zaman Dogru Secimdir?
TimesTen; sabit dusuk gecikme, yuksek islem hacmi ve ongorulebilir yanit sureleri kritik oldugunda guclu bir adaydir. Ozellikle mevcut bir Oracle Database yatirimini hizlandirmak isteyen ekipler icin, uyumlu bir bellek ici onbellek katmani olarak dogal bir secenek olusturur.
Buna karsilik, veri kumesi ekonomik olarak bellege sigmayacak kadar buyukse, is yuku agirlikli olarak buyuk olcekli analitik tarama gerektiriyorsa ya da genel amacli ve dusuk maliyetli bir depolama araniyorsa baska secenekler daha uygun olabilir. Analitik odakli veya farkli olcekleme modelleri sunan bellek ici sistemleri degerlendirmek icin karsilastirma yapmakta fayda vardir.
Ozet
Oracle TimesTen, verisini kalici olarak bellekte tutan, ACID uyumlu ve standart SQL destekleyen bir bellek ici iliskisel veritabanidir. Direct-linked ve istemci/sunucu baglanti modlari, checkpoint ve islem gunlukleriyle dayaniklilik, Classic ve Scaleout dagitim modelleri ve Oracle Database icin onbellek yetenekleri onu belirgin bir niche icinde guclu kilar. Dusuk ve kararli gecikmenin is degeri tasidigi, verinin bellege sigdigi senaryolarda TimesTen degerlendirilmesi gereken olgun bir secenektir.