MIT'den Pyxis ile daha verimli web uygulamaları

PyxisVeri tabanlarına erişimi daha serileştiren yeni bir sistem, büyük boyutlu web uygulamalarını 3 kata daha hızlı hale getirebilir.

Bugün pek çok web sitesinde büyük boyutlu veri tabanları kullanılıyor: alış veriş siteleri, seyahat siteleri, sosyal paylaşım siteleri, vs. Bu sitelerde gerçekleştirilen herhangi bir işlem pek çok veri tabanı sorgulamasının aynı anda çalışması, dolayısıyla da tepki süresinin artması demek. 

Bu hafta, 38. Uluslararası Büyük Boyutlu Veri Tabanları Konferansı’nda , MIT Bilgisayar Bilimi ve Yapay Zeka Laboratuarı, we sitelerinin ver tabanlarına erişimini 3 kat daha serileştiren yeni bir sistem sunumu yaptı. Aynı konferansta sunulan ve benzeri bir hızlanma iddiasında olan diğer sistemler farklı programlama dilleri bilgisi gerektirirken, MIT’nin geliştirdiği Pyxis adındaki sistem, web uygulamacılarının yaygınlıkla kullandıkları dillerde çalışıyor.

Bir web hizmeti ile ilgili işlemlerde, diyelim ki belli bir rota üzerindeki uçuşlardaki müsaitlik durumu sorgulandığında, pek çok veri sorgulama ve hesaplama işlemi gerçekleşir. Tipik olarak veriler bir sunucuda saklanır ve hesaplama ya da uygulama mantığı başka bir sunucu üzerinde çalışır. Uygulama ve veri tabanı sunucuları, işlemi tamamlamak için bir kaç kez alışverişte bulunurlar. Ancak, uygulamanın sık kullanılan bölümleri veri tabanı sunucusunda çalışabilir ve bu şekilde sunucular arası iletişime gerek kalmayacağı iin zaman ve bant genişliği tasarrufu sağlanır. Öte yandan mantık uygulamaları ve veri tanaı sorgulamaları genelde farklı dillerde yazılır ve bu şekilde de farklı tipte operasyonlar optimize edilir. Uygulama sunucusundaki kodu veri tabanı sunucusuna atmak, bu kodun yeniden yazılması, hatta yeniden düşünülmesini gerektirir. Bir uygulamanın da bug olmadan hangi sunucunun hangi durumda hangi bilgiyi değerlendireceğini hesaplayarak ikiye bölünmesi oldukça zordur. Diyelim ki bu başarıldı, bu sfer de veri tabanı sunucusuna gelen taleplerin sürekli değişmesi ve trafiğin artması durumunda da CPU üzerine gelen fazla yükün, sunucunun kapasitesinin üzerinde zorlanmasına neden olması, dolayısıyla daha fazla zaman kaybı ihtimali yüksektir. 

 

Pyxis, bu üç problemi bir arada çözüyor. Otomatik olarak bir programı uygulama ve veri tabanı sunucusu arasında bölüştürüyor ve matematik olarak ispatlanmış şekilde programın operasyonunda bir problem yaratmıyor. Veri tabanı sunucusu üzerindeki CPU yükünü de sürekli takip ederek bu sunucunun üzerindeki uygulama yükünü arttırıyor ya da azaltıyor.

Bunu yaparken Pyxis, bir programı grafiğe, düğüm ve bunları bağlayan kenarlardan oluşan bir veri yapısına dönüştürerek işe başlıyor. Bunun en yakın örneği belki de düğümlerin bilgisayarları betimlemek üzere dairelerle ve bu bilgisayarları birbirine bağlayan hatların betimlendiği kenarların belirtildiği bir ağ diagramı. Ancak, Pyxis’de düğümler bireysel emirleri, kenarlar ise bu emirlerin gerektirdiği veri miktarını betimliyor.

Alvin Cheung, Elektrik Mühendisliği ve Bilgisayar Bilimleri’nde (EECS) lisans üstü öğrencisi ve bu konuda hazırlanan makalenin başyazarı. Danışmanı, EECS profesörü Sam Madden ve CornelL Universitesi Bilgisayar Bilimleri’nden Owen Arden’ın da katılımıyla hazırlanan çalışmayı açıklarken Madden, “Bir emri yerine getirmek için yürütülmesi gereken komutlar arasındaki ilişkiye ve veri alış verişine göre bağımlılığın belirlendiğini ve bu bağımlılığın da değişkenin boyutunu belirlediğini” söylüyor. Eğer bütün program tek bir bilgisayarda çalışırsa, değişken ana hafızada saklanacak ve her bir komut bu hafızaya doğrudan ulaşacakken, ardışık komutlar farklı bilgisayarlarda ise verinin iki bilgisayar arasında aktarılması gerekiyor. Bilgisayarlar arasında veri aktarmanın da bir maliyeti var. Madden, “Dolayısıyla, bu düğümlerin farklı iki sunucuda yerleştirirlerek bu veri aktarım yükünden kurtulmak istedik” diyor. Cheung’un eklediği Pyxis’in bu düğümleri yerleştirirken veri tabanı sunucusuna dinamik olarak bazen daha fazla hesaplama yüklediği, bazen de bu yükü azalttığı. 

Testler sırasında standart bir set veri tabanı alış verişi kullanılmış ve Pyxis, tipik uygulamalara göre kullanılan bant genişiliğini yarı yaruya azaltırken, 3 kat daha hızlı sonuç vermiş.

Pyxis, şu anda pek çok ticari web uygulamasında tercih edilen dil Java’da yazılan programlarla çalışıyor. Diğer popüler dillere adaptasyonu ise yalnızca programı grafik modele çeviren kodun revizyonu ile, sistemin geri kalan kısmı aynen korunarak, mümkün.

Devam eden çalışmada, Pyxis makalesinin dört araştırmacısı, MIT Elektrik mühendisliği ve bilgisayar bilimi yardım doçenti Armand Solar-Lezama ile işbirliği yaparak, veri tabanı bağımlı web uygulamalarının akışını daha da kolay hale getirmeye çalışıyorlar. Veri tabanı uygulamalarının çoğu SQL gibi bildirimli dillerde yazılmış ve bu da yazılımcılara bir hesaplama yöntemi belirlemeden bir değişkenin en yüksek değerini hesaplama gibi yüksek seviyeli komutları kullanma imkanı sağlıyor. Veri tabanı sistemi ise bu komuta cevap vermek üzere veri karakteristiğine göre en verimli algoritmayı seçiyor.  

Javayı daha rahat kullanan web programcıları ise, SQL ile bazı işlemler daha kolay şekilde yapılabilecek olsa da, veri tabanı sunucusundan daha fazla veriyi uygulama sunucusuna almayı ve uygulama sunucusundan işlemleri gerçekleştirmeyi tercih ediyorlar. Araştırmacılar, Pyxis üzerinde geliştireckeleri sistemle statükoyu yıkarak bu tip programlama verimsizliklerini de belirlemeyi ve uygulama kodunu SQL sorgularına çevirerek, en verimli uygulamada çözmeyi planlıyorlar.

Adaptasyon: http://web.mit.edu/newsoffice/2012/making-web-applications-more-efficient-0831.html

Share
Powered by Bullraider.com
   

Twitter'da takip et  

   

Aylık Bülten  

Teknik Bülten

Ayın konusu ile ilgili, makale, bağlantı, yorum, reklam, tanıtım. Yayınlansın dediğiniz ne varsa gönderin. Tecrübe ve katkılarınız bizi memnun eder.  

Telemetri

Bugün uzaktaki makina ve ekipmanlarınızla konuştunuz mu?

Onları dinleyin! Söyleyecekleri şeyler önemli olabilir.

Makinaların genelde söyleyecekleri çok şey vardır ama gerekli ses ve görüntü ekipmanları ile donatılmamıştır. Telemetrik sistemleri kullanarak onları dinleyebilir, ölçülebilir her şey hakkında bilgi alabilirsiniz.

Telemetri deyince tam neyi kastediyoruz?  Devamını oku...

Veri Güvenliği

Kablolu sistemler kapalı alanda çalıştıkları için veri güvenliği açısından daha üstün gözükmelerine rağmen, gerçek tam da böyle değildir. GSM/GPRS ağı üzerinde çalışan telemetrik modüller Devamını oku...

RF Sistemler

Radyo dalgaları uzayda hareket eden ve pek çok iletişim sisteminin temelini oluşturan elektromanyetik dalgalardır. Değişen frekansları ile radyo yayınlarının yanı sıra kablosuz cihazlarda, telefon, televizyon, radar, navigasyon ve telemetrik sistemlerde kullanılmıştır.

Radyo dalgalarında frekans belirleyici özelliktir. Kısa dalgaların

Devamını oku...

Telemetrik Takip Uygulama Örnekleri

Asagıdaki uygulama örnekleri TURA Teknoloji Danışmanlık'ın gönderdiği uygulama örneklerinden seçilmiştir. Detaylar için www.turaconsulting.com 

Uzaktan Tank İzleme Sistemleri

Her geçen gün firmaların LNG (sıvılaştırılmış doğal gaz) depolama tanklarını İzleme taleplerinde artış olmaktadır. Bu tankların çoğu ya erişimi uzak bir yerde ya da şehir dışında bulunmaktadır. Bazı yerlerde ise bulunan tank sayısı birden fazla olabilmektedir.

Telemetri modülleri, Devamını oku...

   
Real-time visitors monitor and live stats
© MUHENDIX.Com 2012, Tum hakları saklıdır.