Yazan: İsmet BAHADIR

Özet

Bu doküman AllegroGraph, Virtuoso, 4store, Bigdata, Mulgara, Oracle ve OWLIM veritabanlarının karşılaştırılmasını içermektedir. Doküman 3 kısımda hazırlanmıştır. İlk kısımda belirtilen veritabanları hakkında genel bilgi verilmiş, ikinci kısımda da karşılaştırma matrisi sunulmuş ve son kısımda da veritabanlarının performansları değerlendirilmiştir.

  1. Veritabanları
  2. AllegroGraph

AllegroGraph kapalı-kodlu, modern, yüksek performanslı, kalıcı bir graph veritabanıdır. AllegroGraph hafızayı etkin şekilde kullanır ve aynı zamanda disk-bazlı saklama yapar. Bu sayede üstün performansı devam ettirirken milyarlarca 4lüye kadar ölçeklenebilir. AllegroGraph birçok istemci uygulamasından SPARQL, RDFS++ ve prolog’u destekler.

  • İşlemlerin ACID (atomicity, consistency, isolation, and durability) özelliklerinin gerçekleştirimi
  • Yerleşik Prolog
  • Bedava ve ücretli sürümler
  • Desteklenen İşlemler (Transactions): Commit, Rollback, Checkpointing
  • Tam ve Hızlı Kurtarma
  • %100 okuma eşzamanlılığı, neredeyse tam yazma eşzamanlılığı
  • Çevrimiçi yedekleme, tam zamanında kurtarma, yedekleme (replication), sıcak bekleme (warm standby)
  • İleri seviye metin indisi
  • Tüm istemciler REST protokolüne dayanır: Java Sesame, Java Jena, Python, C#, Clojure, Perl, Ruby, Scala ve Lisp
  • Desteklenen platformlar: Windows, Linux, Mac OS X (32 ve 64 bit)
  • Çoklu-proses
  • Kullanıcı tanımlı indisler
  • Triple seviyesinde güvenlik
  • Özel tarayıcı: Gruff [1]

AllegroGraph RDF için W3C standartlarını karşılamak için geliştirilmiştir, dolayısıyla, bir RDF veritabanı olarak düşünülebilir. SPARQL protokolü için bir referans uygulamasıdır. SPARQL, tıpkı SQL’in ilişkisel veritabanlarında olduğu gibi, RDF için yani bağlı veriler için standart bir sorgulama dilidir. [2]

2. Virtuoso

Virtuoso geleneksel RDBMS, ORDBMS, sanal veritabanı, RDF, XML, serbest metin, web uygulama sunucusu ve dosya sunucusu fonksiyonlarını tek bir sistemde sunan hibrid bir katman (middleware) ve veritabanı motorudur. Bahsedilen fonksiyonlar için adanmış sunucular yerine Virtuoso “evrensel bir sunucudur”. Bu sayede tekil çoklu-thread sunucu sürecini sağlayarak çoklu protokolleri gerçekleştirir. Virtuoso’nun açık-kaynak kodlu versiyonu OpenLink Virtuoso olarak da bilinir.

Virtuoso, işletim sisteminin thread desteği ve çoklu CPU yapısından faydalanmak üzere tasarlanmıştır. İstemciler arasında paylaşılan ve ayarlanabilen bir thread havuzuyla, tekil bir süreçten oluşur. Çoklu-thread tekil bir indis ağacında birbirleriyle en az etkileşimde olacak şekilde çalışabilir. Veritabanı sayfalarının 1 cache’i tüm threadler arasında paylaşılır ve eski kirli sayfalar diske “arka plan” süreci olarak yazılır.

Veritabanı her zaman temiz bir “checkpoint” durumuna sahiptir. Bu sayede temiz yedeklemeler yapılabilir ve işlem (transaction) kayıt defteri sayesinde herhangi bir zamandaki (checkpoint) duruma geri dönülebilir.

Virtuoso dinamik kilitlemeyi sağlar ve kilitleme alt seviyelerde olabileceği gibi kullanım durumuna göre sayfa seviyesinde de olabilir. Kilitleme sadece başka bir işlem aynı sayfada kilit tutmadığı zamanda olur, bu sayede, hiçbir zaman çıkmaz (deadlock) durumu yaşanmaz. [3]

Virtuosos’nun eşsiz hibrid mimarisi tek bir ürün içerisinde farklı sunucu özelliklerini sunmasını sağlar. Bu özelliklerden bazıları şöyledir:

  • İlişkisel, RDF ve XML veri yönetimi
  • Serbest metin içeriği yönetimi ve tam metin indisleri
  • Doküman web sunucusu
  • Bağlı veri sunucusu
  • Web uygulama sunucusu
  • Web servis deployment (SOAP or REST)
  • Platform desteği: Windows (32 & 64 Bit), Mac OS X, Linux (32 & 64 Bit), Solaris (32 ve 64 Bit versiyonları için SPARC ve x86_64).
  • Güvenlik (SSL, şifreleme,kimlik doğrulama)
  • Replikasyon
  • Kümeleme ve yüksek erişebilirlik
  • Geçişli Clojure sorguları
  • Sesame, Jena ve Redland için veri sağlayıcıları
  • Sorgu dili desteği: SQL, SPARQL ve XQuery
  • Transaction desteği

Virtuoso, çevik girişimler ve kişiler için yenilikçi ve çoklu-model veri sunucusudur. Veri yönetimi, veriye erişim ve entegrasyonda agnostik ve rakipsiz bir çözüm sunmaktadır. [4]

3. 4Store

4Store, RDF verisi tutan bir veritabanı depo ve sorgu motorudur. Garlik tarafından birincil RDF platformu olarak 3 yıl boyunca kullanılmış ve güvenli ve güçlü olarak kendini ispat etmiştir.

4Store’un ana gücü performansına, ölçeklenebilir ve kararlı oluşuna dayanır. RDF saklamak ve SPARQL sorgusunun ötesinde çok fazla özellik sunmasa da, ölçeklenebilir, güvenli, hızlı ve etkin bir RDF deposu aranıyorsa, 4Store listede olması gereken yazılımlardan birisidir.

GNU genel açık lisans ile sunulan 4Store, ANSI C99 koduyla yazılmıştır ve UNIX-türevi sistemlerde çalışmak üzere tasarlanmıştır. Ancak tekil Mac OS X makinelerde çalıştığı da bilinmektedir. Kümeleme desteği için Avahi multicast DNS kütüphanesine ihtiyaç duyar ki bu kütüphane Mac OS X’te rahatça bulunan bir kütüphane değildir.

Bilindiği üzere RDF depolarında bulunan bazı özellikler, tipik bilgisayar ortamlarına deploy edildiklerinde güvenlik riski taşımaktadır. 4Store’un saldırılara karşı herhangi bir risk taşımaması için önemli bir çaba sarf edilmiştir. 4Store’un özellikleri özetle şu şekildedir;

  • Açık kaynak-kodlu (GPL v3)
  • Ölçeklenebilir
  • Güvenli
  • Hızlı
  • Güçlü [5]

4. Bigdata

Bigdata opsionel işlemleri (transactions), yüksek eşzamanlılığı ve yüksek G/Ç oranları destekleyen, yatay olarak ölçeklenebilen bir depolama ve üründür. Bigdata en başından beri 100den 1000lere kadar makineye sahip dağıtık veritabanı mimarileri için tasarlanmıştır ancak tekil-sunucu sisteminde de yüksek performansla çalışmaktadır.

Bigdata mimarisi, kümeler üzerinde veriye hassas (data-sensitive) dağıtık hesaplama, indisleme ve yüksek seviye sorguları için yüksek performanslı bir platform sağlar. Semantik web veritabanı katmanı büyük ilgiyi görmüş olsa da, Bigdata mimarisi de birçok veri modeli, iş yükü ve uygulama için uygundur.

Bigdata, RDFS ve sınırlı OWL’yi destekleyen yüksek performanslı bi RDf veritabanı içermektedir. İndislerin dinamik anahtar-aralık parçalanabildiği bir kümede dağıtık işlem yapabilen tek RDF veritabanıdır. Bu sayede deploy edilmiş olan footprint, her yeni makine eklendiğinde verinin tekrar yüklenmesine gerek kalmaksızın, veri ölçeğiyle birlikte büyüyebilir. Bigdata RDF veritabanı özellikle çok büyük semantik veri setleri için tasarlanmıştır. Esnek veri modeli içerisinde RDF, özellikle neredeyse-gerçek-zamanlı veri entegrasyonuna uyumlu bir semantik web teknolojisidir.

Bigdata’nın temel özellikleri şöyledir:

  • SPARQL desteği
  • RDFS+.
  • Hızlı yükleme ve sorgu
  • Triple ve Quad desteği
  • Tam metin indislemesi
  • Petabyte ölçeği
  • Dinamik sharding
  • Açık kaynak kod ve lisans opsiyonları
  • Yüksek performans
  • Yüksek eşzamanlılık
  • Yüksek erişilebilirlik

Bigdata sürekli olarak geliştirilmektedir. Uzaysal indisleme, analitik sorgular ve yeni sorgu optimizasyonları planlar dahilinde yer almaktadır. [5]

5. Mulgara

Mulgara, Kowari projesinin triplestore’udur. Açık-kaynak kodlu, ölçeklenebilir ve işlem-güvenlidir (trasnaction-safe). Mulgara durumlar iTQL ve SPARQL sorgu dilleri ile sorgulanabilir.

İlişkisel sistemlerde metadata ile uğraşırken karşılaşılan yüksek sayıdaki tablo bağlantıları (join) sebebiyle Mulgara ilişkisel veritabanına dayalı değildir. Bunun yerine Mulgara, metadata yönetimi için optimize edilmiş yepyeni bir veritabanıdır. Mulgara metadatayı, W3C RDf standardı gibi, özne-yüklem-nesne şeklinde tutar. Mulgara’dan metadata RDF ve Notation 3 formunda export veya import edilebilir. [6]

Mulgara’nın genel özellikleri şöyledir:

  • RDF desteği
  • Sunucu başı çoklu veritabanı modelleri
  • Basit, SQL-tarzı sorgu dilleri
  • Tam metin arama özelliği
  • Yüksek saklama kapasitesi
  • Çoklu-işlemci desteği
  • Düşük hafıza gereksinimi
  • Tam işlem desteği
  • Kümeleme ve depo seviyesi fail-over
  • Desteklenen protokoller: Jena, JRDF, SOAP, SDK
  • Web tabanlı yönetim konsolu
  • Desteklenen platformlar: Windows, Unix ve Linux, Solarix, Mac OS X, IRIX (32 ve 64 bit)

Mulgara açık kaynak kodlu olup, kaynak kodlar herkesin erişimine açıktır. [7]

6. Oracle

Oracle Database 11g Semantic Technologies açık, standart-tabanlı, ölçeklenebilir, güvenli, güvenilir ve performanslı bir RDF yönetim platformudur. Graph veri modeline dayanır ve ilişkisel veri tiplerinde olduğu gibi RDF verisi (triples) yazılır, indislenir ve sorgulanır.

Uygulama geliştiriciler Oracle Database 11g’nin gücünü kullanarak semantik olarak güçlendirilmiş iş uygulamaları tasarlayıp geliştirebilir. Oracle Database 11g’nin önemli özellikleri şöyledir:

  • Doğal RDF/OWL veri yönetimi
  • Ölçeklenebilir ve güvenli platform
  • +10milyar triple
  • SQL, Jena, Sesame ve SPARQL desteği [8]
7. OWLIM

OWLIM Java ile yazılmış, doğal RDF gerçekleştirimine sahip olan bir semantik depo çözümüdür. Farklı işletim ortamları için 2 farklı versiyonu vardır:

SwiftOWLIM: Hafıza-içi (in-memory) RDf veritabanı, anlam-motoru ve sorgu cevaplama motorudur. Optimize edilmiş indisleri ve veri yapılarını kullanarak on milyonlarca RDF ifadesini standart masaüstü bilgisayarda işleyebilir. Hafızada çalışmasının da etkisiyle dünyanın en hızlı semantik deposudur ve 1.000 dolarlık bir makinede saniyede 50.000 veri yükleyebilmektedir. SwiftOWLIM kullanıma açıktır (bedavadır).

BigOWLIM: SwiftOWLIM’ın kurumsal versiyonu olan BigOWLIM işlemci başına ücretlendirilmektedir. BigOWLIM, kuruluş seviyesinde bir çözümdür ve on milyarlarca ifadeyi kontrol edebilmektedir. BigOWLIM birkaç depolama ve sorgulama optimizasyonu kullanarak, milyarlarca sayıdaki bağlı açık veride bile çok başarılı ekleme ve silme performansları göstermektedir. Her ne kadar teorik olarak belirli bir limit olmasa da 64GB hafızası olan bir makinede 20 milyar ifadeyi kaldırabilmektedir. Bu sayıdan fazlasında performans ciddi oranda düşmektedir [9]

OWLIM’in önemli özellikleri şöyledir:

  • Java ile geliştirilmiş
  • Sesame ve Jena desteği
  • Hem lisanslı hem de ücretsiz sürüm
  • +10 milyar triple
  • Küme içerisinde dikey ölçeklenebilme
  • Yedekleme
  • Jeo-Uzaysal (Geo-Spatial) eklenti desteği
  • RDFS, OWL ve QL desteği

OWLIM birçok projede ve yazılımda kullanılmakta olup kullanıcılar tarafından genellikle olumlu yorumlar almaktadır. [10]

  1. Karşılaştırma Matrisi
Özellik

Allegro Graph

OWLIM

Oracle

Mulgara

Bigdata

4Store

Virtuoso

Açık-Kaynak Kod

Lisans

Üretici Firma

Franz

Ontotext

Oracle

Community / Kowari Fork

Systap

garlik

OpenLink

Kullanan firmalar Pfizer, NASA, Kodak, Mitre, Ford, Citi, Novartis, Cisco, Adobe, KTF, KDDI, GeoBC BBC, Governace, Raytheon, TSO, Nexcom, Charisma, Korea Telecom, ICT, Cola Spain Cisco, Lilly, Pfizer, Westlaw, SIB, Cleveland Clinic, Polar Lake, Raytheon, Lymbia Pfizer, Cisco, SIB, Westlaw, Hutchinson, University of Michigan ve Texas Cambridge Semantics, Inforbix, NDA companies (fortune 500) DataPatrol, eRDF, OpenPSI, Market Blended Insight Elsevier, Globo, UCB, Kodak, BBC, Lifeway, CGI Federal, Nato, NASA, Atos Origin
Dokümantasyon ve Yardım

Tam destek

Orta

Orta

Düşük (satın al: yüksek ve pahalı)

Orta

Orta

Open Source

(Az)

İyi

Proje Lideri

Peter Norvig

Barry Bishop

?

David Wood / Norman Gray

SYSTAP, LLC

Steve Harris

Orri Erling

Yazıldığı Dil

Common Lisp

Java

?

Java

Java

C

?

İşletim Sistemi Gereksinimleri

W L M (32-64)

W L M (32-64)

W L M (32-64)

W L M (32-64)

W L M (32-64)

Tercihen:

Linux – 64

W L M (32-64)

Bellek Gereksinimi

150m triple için 40gb yeterli

>=32 (ciddi kullanım için)

?

Düşük

>= 64 MB

Deployment’a göre değişiyor (scalable)

>= 4GB

>= 64 MB

Triple Sayısı

5mil – 500mil – sınırsız (lisansa göre)

>= 20 milyar

Veriye göre değişebilir

> 100 miyar

?

50 milyar

2-10 milyar

Sınırsız (cluster’da)

Triple Yükleme Süresi

1 milyar / 36 dk. (32 core Intel E5520, 2.0 GHz, with 1 TB RAM,  RedHat v6.1.)

1 milyar / 13 saat

http://www.ontotext.com/owlim/benchmark-results/owlim-5

3 milyar / 105 dakika

(64 core, 512 gb ram, 128 paralel thread)

?

1 milyar / 1 saat (16 düğümlü cluster’da)

http://www4.wiwiss.fu-berlin.de/bizer/BerlinSPARQLBenchmark/results/V6/index.html#resultsExplore

1 milyar / 8 saat

http://www.openlinksw.com/dataspace/dav/wiki/Main/VOSVirtuoso6FAQ

Desteklenen Sorgu Dili

SPARQL, TwinQL, Prolog

SPARQL ve SeRQL

SPARQL or SQL

SPARQL, iTQL

SPARQL

SPARQL 1.0

SQL, SPARQL, XQuery ve XPath

Versiyon Numarası

v4.X

v4

11g

V2.1

v1.2.0

v1.1.3

v6.3

Danışmanlık

Franz.com

Ontotext.com

TenForce

SYSTAP, LLC

Openlinksw.com

Client API SPARQL over http, Java Pool, Python, Lisp, Clojure Sesame, Jena ve ORDI Jena, Joseki, ARQ, TDB, SDB, Sesame, Pellet, D2RQ, Jetty,

Cytoscape, GATE, Protégé

iTQL Java Bean, Jena, JRDF, Shell Sesame, SPARQL 1.1 SPARQL over HTTP, Java, C, Python, PHP, Ruby ve Perl Jena, Sesame, Redland
Mail Grubu / Forum

✓/ –

✓/ –

✓/ –

✓ / ✓

✓/ –

✓ / ✓

Geçişli Kural Tanımı

Çoklu Kullanıcı (Eşzamanlılık)

Saniyede İşleyebildiği Sorgu Sayısı

Veriye göre değişiyor

40000 / saniye

Veriye göre değişiyor

6500 / saniye

?

?

Veriye göre değişiyor

56,000 Query Mix – Mini Mac (Intel)

Veriye göre değişiyor ancak çok hızlı değil (100/saniye)

Veriye ve konfigürasyona göre değişiyor

Dağıtıklık Desteği

Transaction

Lisans Ücreti Dev. – 4000$ (4 cpu’ya kadar)

Ent. – 4000$ / cpu

SE – 1200€ / cpu

EE – 3200€ / cpu

?

(Aylık)

10.000$ / 50 deployment

0 – 70.000$

http://virtuoso.openlinksw.com/pricing/

GeoSpatial Desteği

?

?

  1. Performans

Her ne kadar Graph veritabanları için bazı Benchmark sonuçları olsa da gerçek dünya verileri ile bilgisayar ortamı verileri genellikle birbirini tutmamaktadır. Aşağıda bazı sonuçlara yer verilmiş olsa da gerçek sonuçlar, tek bilgisayar üzerinde yapılarak elde edilebilir. Sağlıklı bir karşılaştırma yapabilmek için aynı sistem üzerinde testlerin yapılması, elde edilen sonuçların geçerliliğini arttıracaktır.

  • Test 1 (Reveltyx Değerlendirme Raporu)
  • Nitel Değerlendirme

  • Genel Değerlendirme

  • Fonksiyonel Değerlendirme

  • Performans Testleri

Uygulanan Testler

Genel Görünüm

SP2 Performans Analizi (Top 3: Virtuoso – OWLIM – Oracle)

Single User (BSBM) Performans Analizi (Top 3: OWLIM – Virtuoso – Mulgara)

  • Test 2

Donanım:

  • İşlemci: Intel i7 950, 3.07GHz (4 cores)
  • Bellek: 24GB
  • Hard Disk: 2 x 1.8TB (7,200 rpm) SATA2.

Yazılım:

  • İşletim Sistemi: Ubuntu 10.04 64-bit, Kernel 2.6.32-24-generic
    • Filesystem: ext4
    • Seperate partitions for application data and data bases.
  • Java Version and JVM: Version 1.6.0_20, OpenJDK 64-Bit Server VM (build 19.0-b09)

Test Prosedürü:

Sistemlerin performansları BSBM veri setlerinin Turtle temsilcilerinin yüklenmesiyle ölçülmüştür. Teste giren sistemlerde “inferencing” yapmamıştır. Sistemlerin sorgu performansları 500 BSBM karışık sorguları ile yapılmıştır ve SPARQL protokolü kullanılmıştır. Ağ gecikmelerini engellemek için tüm testler aynı bilgisayar yapılmıştır. [11]

Sonuçlar:

Sistem 100 Milyon 200 Milyon
4Store 26:42 1:12:04
Bigdata 1:03:47 3:24:25
BigOWLIM 17:22 38:36
Virtuoso 1:49:26 3:59:38

Kaynaklar

[1] http://www.franz.com/agraph/allegrograph/

[2] http://en.wikipedia.org/wiki/AllegroGraph

[3] http://en.wikipedia.org/wiki/Virtuoso_Universal_Server

[4] http://virtuoso.openlinksw.com/

[5] http://4store.org/about

[6] http://en.wikipedia.org/wiki/Mulgara_%28software%29

[7] http://docs.mulgara.org/overview/index.html

[8] http://www.oracle.com/technetwork/database/options/semantic-tech/index.html

[9] http://www.semantic-web-journal.net/content/new-submission-owlim-family-scalable-semantic-repositories

[10]http://www.w3.org/wiki/LargeTripleStores#BigOWLIM_.2812B_explicit.2C_20B_total.29.3B_100.2C000_queries_per_.241

[11] http://www4.wiwiss.fu-berlin.de/bizer/BerlinSPARQLBenchmark/results/V6/index.html#resultsExplore

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir