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.

OzellikTimesTen ClassicTimesTen Scaleout
TopolojiTek dugum (replikasyonla HA)Cok dugumlu, paylasimsiz kume
OlceklemeDikey (sunucu buyutme)Yatay (dugum ekleme)
Veri dagitimiTek ornekteDugumlere bolumlenmis
Tipik hedefDusuk gecikme, gomulu/onbellekBuyuk 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:

sql
-- 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:

sql
-- 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:

BoyutGuclu yonDikkat edilmesi gereken
GecikmeBellek ici erisimle cok dusuk ve kararliVeri kumesi bellege sigmali
UyumlulukStandart SQL ve Oracle ekosistemiyle uyumOracle odakli; genel amacli bir arac degil
DayaniklilikCheckpoint ve gunlukle kalicilikAyarlar performans/dayaniklilik dengesi ister
OlceklemeScaleout ile yatay buyumeKume yonetimi ek operasyonel karmasiklik getirir
MaliyetYuksek performansRAM 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.