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.
-
Veritabanları
- 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]
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]
-
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 |
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$ |
GeoSpatial Desteği |
✓ |
✓ |
✓ |
? |
✓ |
? |
✓ |
- 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/
[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
[11] http://www4.wiwiss.fu-berlin.de/bizer/BerlinSPARQLBenchmark/results/V6/index.html#resultsExplore