IBM BLU Acceleration - IBM BLU Acceleration

IBM BLU Acceleration bir teknoloji koleksiyonudur. IBM Araştırması analitik için ve Geliştirme Laboratuvarları veri tabanı iş yükleri. BLU Acceleration, aşağıdakileri içeren bir dizi farklı teknolojiyi entegre eder: bellekte işlenmesi sütunlu veriler, Eyleme Geçirilebilir Sıkıştırma (kullanan yaklaşık Huffman kodlaması verileri sıkıca sıkıştırmak ve paketlemek için), CPU Acceleration ( SIMD teknoloji ve sağlar paralel vektör işleme) ve Veri Atlama (mevcut aktif iş yükünün faydası olmayan verilerin göz ardı edilmesine izin verir).[1] "BLU" terimi özellikle hiçbir şeyi ifade etmez; ancak IBM'in geleneksel kurumsal takma adı Big Blue üzerinde dolaylı bir etkisi var. (Dünyanın dört bir yanındaki on IBM Araştırma ve Geliştirme tesisi, Blink Ultra projesi üzerinde çalışırken 25'ten fazla patent başvurusunda bulundu, bu da BLU Hızlandırması ile sonuçlandı.)[2]BLU Hızlandırma gerektirmez dizinler, kümeler veya ayarlama. BLU Acceleration, Linux, Unix ve Windows için IBM DB2 Sürüm 10.5'e (LUW için DB2) entegre edilmiştir.[3]) ve aynı depolama ve bellek yapılarını kullanır (yani, depolama grupları, tablo alanları ve arabellek havuzları), SQL dil arabirimleri ve LUW veritabanları için geleneksel DB2 gibi yönetim araçları.[4] BLU Hızlandırma her ikisinde de mevcuttur IBM GÜÇ ve x86 işlemci mimarileri.[5]

Tarih

BLU Acceleration, 2011 yılında başlatılan Blink projesinde ortaya çıkan teknolojinin ikinci neslidir. IBM Almaden Araştırma Merkezi 2006'da. Öncelikle "çoğunlukla okuma" hedeflendi. iş zekası (BI) sorgu işleme, Blink, çok çekirdekli işlemciler dinamik rasgele erişimli bellek (DRAM) Data mart'ın bir kopyasını tamamen bellekte saklamak için. Ayrıca, çoğu SQL sorgusunun doğrudan sıkıştırılmış verilere karşı gerçekleştirilmesine izin veren tescilli sıkıştırma teknikleri ve algoritmaları kullandı (işleme gerçekleşmeden önce verilerin sıkıştırmasının açılmasını gerektirmenin aksine).[6]Sonunda, Blink iki IBM ürününe dahil edildi: IBM Smart Analytics Optimizer for DB2 for z / OS (DB2'nin ana bilgisayar sürümü) Kasım 2010'da piyasaya sürüldü ve Informix Mart 2011'de piyasaya sürülen depo hızlandırıcı.

BLU Acceleration, RAM'den verilere erişim için optimize edilmiştir. Bununla birlikte, veri boyutu artık RAM'e sığmayacak kadar genişlese bile, ara sonuçlar diske yayılabilir.[1] BLU Acceleration, DB2 ürün geliştirme, IBM Systems Optimization Competency Center ve IBM Research arasındaki bir işbirliği yoluyla mükemmelleştirildi ve DB2 ile bütünleştirildi; bu işbirliği, sütunlu işleme, daha geniş SQL desteği, G / Ç ve İşlemci verimlilikler ve DB2 SQL derleyicisi, sorgu iyileştiricisi ve depolama katman.[7]

Teknik Bilgiler

BLU Hızlandırma tasarımının bir parçası olan dört ana ilerleme vardır. Onlar:

  1. Bellek içi performans, RAM'e sığan verilerle sınırlı değildir
  2. Eyleme Geçirilebilir Sıkıştırma
  3. Veri Atlama
  4. CPU Hızlandırma

Bellek içi performans, RAM'e sığan verilerle sınırlı değildir

BLU Acceleration, RAM'den verilere erişim için optimize edilmiştir. Bununla birlikte, veri boyutu artık RAM'e sığmayacak kadar genişlese bile, ara sonuçlar diske yayılabilir.

Eyleme dönüştürülebilir sıkıştırma

Sırayı koruyan, frekansa dayalı sıkıştırma ( eyleme geçirilebilir sıkıştırma) BLU Acceleration'da, çok çeşitli karşılaştırmalı işlemlerin dekompresyon olmadan ve verimli bir şekilde CPU belleği (önbellek) ve kayıtlar. Uygulanabilir sıkıştırmayla, daha sık görünen değerler, daha az görünen değerlere göre daha yüksek bir düzeyde sıkıştırılır. (Eyleme dönüştürülebilir sıkıştırma, temel olarak MIT'de doktora öğrencisi olan David A. Huffman tarafından geliştirilen kayıpsız veri sıkıştırma için bir entropi kodlama algoritması kullanır.),[4][8] Ofset kodlama BLU Hızlandırma'da kullanılan başka bir sıkıştırma optimizasyon tekniğidir. Ofset kodlama, sayısal verilerde çok kullanışlıdır; Örneğin, 100, 101, 102 ve 103 değerlerini sıkıştırmaya çalışmak yerine, DB2 tek bir değeri (100) ve sadece bu değere olan uzaklıkları (1, 2, 3, vb.) saklar. Bu, DB2'nin dizin kaydı kimliklerini (RID'ler) sıkıştırma yöntemine çok benzer - DB2'nin dizinlere dinamik olarak uygulayabileceği üç otonom dizin sıkıştırma algoritmasından biridir.[4]

BLU Acceleration ile değerler, sıraları korunacak şekilde sıkıştırılır, bu da sıkıştırılırken birbirleriyle karşılaştırılabilecekleri anlamına gelir. SQL yüklemleri verileri sıkıştırmaya gerek kalmadan kodlanmış değerler üzerinde gerçekleştirilmesi, böylece değerlendirmelerin hızlandırılması, bellek gereksinimlerinin azaltılması ve çalışma anında sorgular için işleme ihtiyaçlarının azaltılması,[1][5]

Veriler kodlandıktan sonra, kullanılmakta olan sunucunun CPU'sunun yazmaç genişliğine eşit bir bitler koleksiyonunda olabildiğince sıkı bir şekilde paketlenir. Bu, daha az G / Ç (veri daha küçük olduğu için), daha iyi bellek kullanımı (çünkü bellekte daha fazla veri depolanabilir) ve daha az CPU döngüsü (çünkü veriler "kayıt hizalı" olduğundan).[4]

Veri atlama

Veri atlama, DB2'nin bir sorguyu yerine getirmek için gerekli olmayan sütun değerleri aralıklarını algılamasını ve bu değerleri içeren sayfaları diskten okumaktan kaçınmasını sağlar. Veri atlama, a adı verilen ikincil bir nesneyi kullanır özet tablosu, otomatik olarak oluşturulan ve bakımı yapılan küçük, sütun şeklinde düzenlenmiş bir tablodur.[4] BLU Acceleration, meta veriler Bu tablodaki verilerin "yığınları" (yaklaşık 1.000 kayıt) üzerindeki minimum ve maksimum veri değerleri aralığını açıklar. Bu meta veriler, ekleme, güncelleme ve silme işlemleri sırasında otomatik olarak korunur ve bu, BLU Acceleration özellikli DB2'nin sorgu işleme sırasında gerekmeyen büyük veri bölümlerini otomatik olarak algılamasına ve etkin bir şekilde yok saymasına olanak tanır.[4]

Kavramsal olarak, BLU Acceleration'ın veri atlama özelliği, PureData System for Analytics ailesinde bulunan Zone Map teknolojisine benzer. Ancak, Bölge Haritalarından farklı olarak, özet tablosunda depolanan meta veriler herhangi bir belirli sayfaya veya kapsam sınırına bağlı değildir; bunun yerine, belirli bir veri kaydı "yığınına" bağlıdır. Veri atlama, işlem kaynaklarında (CPU, Veri deposu ve G / Ç).[4]

CPU hızlandırma

BLU Acceleration, kullanılan donanımda mevcutsa, tek talimat çoklu veri (SIMD) işlemesinden yararlanır. BLU Hızlandırma, çok düşük seviyeli özel CPU talimatları olan SIMD talimatlarından yararlanarak aynı işlemi birden çok veri noktasında aynı anda gerçekleştirebilir.[4] Sonuç olarak, BLU Hızlandırmalı DB2, birden çok veri öğesinden sonuç almak için tek bir SIMD komutu kullanabilir (örneğin, eşitlik koşulu işlemeyi gerçekleştirmek için) - aynı kayıtta olmaları şartıyla. DB2 ayrıca bir SIMD yazmacına 128 bit koyabilir ve bu verileri tek bir komutla değerlendirebilir.[4]

Elde edilen performans seviyesi, nihai olarak BLU Acceleration'ın birlikte çalışması gereken donanım kaynakları tarafından belirlenecektir.[4] Bununla birlikte, bir sunucu SIMD etkin olmasa bile, BLU Hızlandırma, SIMD'nin sunduğu bazı faydaları sağlamak için SMID yazılımıyla (biraz paralellik elde etmek için bit maskesi kullanarak) SIMD donanımını taklit edebilir.[4]

Ek olarak, BLU Hızlandırma, bellek erişiminin çoğunun verilere erişerek değil, bir CPU önbelleğinde gerçekleşeceği şekilde tasarlanmıştır. Veri deposu tekrar tekrar.[4] BLU Acceleration, RAM'de değil, neredeyse yalnızca CPU önbelleğindeki veriler üzerinde çalışarak gecikmeyi en aza indirir ve CPU'ları meşgul edebilir.[4]

Bellek içi hızlarda bellekten önemli ölçüde daha büyük olan verileri işlemek için tasarlanan BLU Hızlandırma, verileri işlem motoruna önceden yükler ve aktarır - sistem belleğinin ötesine geçerek CPU içi bellek optimizasyonuna geçer.[5] RAM'e hangi verilerin yüklenmesi gerektiğini birkaç milisaniye önceden belirlemek için özel bir bellek içi optimize edilmiş sütunsal ön yükleme algoritması kullanır; her algoritma RAM'e erişimi en aza indirmek ve RAM'den çok daha hızlı olan L3 ve L2 önbelleklerinde işlem süresini en üst düzeye çıkarmak için tasarlanmıştır.,[9][10]

Referanslar

  1. ^ a b c Raman, Attaluri, Barber, Chainani, vd. (Ağustos 2013) "BLU Hızlandırmalı DB2: Bir Sütun Depolamasından Çok Daha Fazlası", VLDB Bağış Bildirileri, Cilt 6 Sayı 11, Sayfalar 1080-1091. Erişim tarihi: 1 Şubat 2014
  2. ^ "IBM BLU Acceleration, dinamik bellek içi bilgi işlemle analitiği hızlandırıyor" Erişim tarihi: 1 Şubat 2014.
  3. ^ Linux, UNIX ve Windows için DB2
  4. ^ a b c d e f g h ben j k l m Zikopoulos, Lightstone, Huras, Sachedina, Baklarz. "BLU Hızlandırmalı DB2 10.5: Büyük Veri Çağı için Yeni Dinamik Bellek İçi Analitik" Arşivlendi 2013-12-29 Wayback Makinesi, McGraw-Hill Eğitim. ISBN  9780071823494. Erişim tarihi: 1 Şubat 2014.
  5. ^ a b c "BLU Hızlandırması Oyunu Değiştirir", IBM Yazılım Teknik Raporu (Temmuz 2013). Erişim tarihi: 1 Şubat 2014.
  6. ^ Lightstone, Lohman, Schiefer. (Nisan 2013) "Süper Analitik, Süper Kolay. BLU Hızlandırmalı IBM DB2 10.5 ile Tanışın" Arşivlendi 2014-03-04 at Archive.today, IBM Data Magazine. Erişim tarihi: 1 Şubat 2014.
  7. ^ Zikopoulos Vincent. (Ağustos 2013) "Uzmanlara Sorun: DB2 10.5 with BLU Acceleration". Erişim tarihi: 1 Şubat 2014.
  8. ^ Huffman, David A. (Eylül 1952) "Minimum Artıklık Kodlarının Oluşturulması İçin Bir Yöntem" '. Erişim tarihi: 6 Şubat 2014.
  9. ^ Işık taşı, Sam. "RAM çok yavaş olduğunda: Dinamik Bellek İçi İşleme, Analytics için oyunu nasıl değiştirir?". SoftwareTradecraft.com. Erişim tarihi: 1 Şubat 2014
  10. ^ Howard, Philip. (Aralık 2013) "Hafızada mı? Bu çok dün oldu!", IT Analysis.com. Erişim tarihi: 1 Şubat 2014

Dış bağlantılar