Kalite Fonksiyon Yayılımı için Yeni Bir Yaklaşım
Transkript
Kalite Fonksiyon Yayılımı için Yeni Bir Yaklaşım
Görevdeş (P2P) Ağlarda Sık Bulunan Öğelerin Belirlenmesine Dağıtık Yaklaşım Emrah Çem1, Öznur Özkasap2 Koç Üniversitesi, Bilgisayar Mühendisliği Bölümü, İstanbul 1,2 [email protected], [email protected] Özet: Birçok geniş ölçekli P2P uygulama, veri erişim sıklığı, sorgu ve olay sayısı gibi sistem genelindeki bilgileri kullanmaya gereksinim duymaktadır. Sistem genelinde belirli bir eşik değerinden daha fazla bulunan öğeler sık ya da popüler öğeler olarak adlandırılır. Popüler öğelerin etkin şekilde belirlenmesi görevdeş ağlar için önemli bir servis olacaktır. Ayrıca, bu problem veritabanı uygulamaları, algılayıcı ağlar ve güvenlik mekanizmalarına uyarlanabilir olmasından dolayı önemlidir. Bu bildiride görevdeş ağlarda popüler öğelerin belirlenmesinin önemi, kullanım alanları, ortaya konan çalışmaların özellikleri ve önerdiğimiz dağıtık yaklaşım anlatılmaktadır. Anahtar Sözcükler: Dağıtık Sistemler, Görevdeş (P2P) ağlar, Kümeleme, Popüler öğeler. A Distributed Approach for Discovering Frequent Items in Peer-to-Peer (P2P) Networks Abstract: Several P2P applications require a global view of the information such as data access frequencies, query and event counts, that are available locally and partially at peers. Items that globally occur more than a threshold value are referred as frequent or popular. Efficiently discovering frequent items would be a valuable service for peers. Being significant for P2P systems, frequent item discovery problem is also applicable to distributed database applications, sensor networks, and security mechanisms in which identifying frequently occurring items in the entire system is very useful. In this study, application areas and importance of discovering frequent items, related works and proposed distributed approach are introduced. Keywords: Distributed Systems, Peer-to-peer networks, Aggregate computation, Popular items. 1. Giriş Ağlardaki bilgi hacmi arttıkça bilginin tamamının tek bir bilgisayarda merkezi olarak tutulması olanaksız hale gelmiştir. Bilgi hacmindeki bu artış görevdeş ağlar ve kablosuz algılayıcı ağları gibi dağıtık sistemlerin ortaya çıkmasının nedenlerinden biridir. Bunun sonucunda,dağıtık sistemlerde, özellikle geniş ölçekli P2P ağlarda, bilgi ağdaki eşlere yayılmış durumda olduğu için, sistem hakkında genel bilgi sahibi olma konusu önemli bir problem haline gelmiştir. Görevdeş ağlarda sık bulunan öğelerin belirlenmesi genel bilgiye ulaşma problemlerinden bir tanesidir. Sık bulunan öğeler, kullanıcının seçtiği eşik değerine göre belirlenir. Bu eşik değerinden daha sık rastlanan öğeler „popüler öğe‟ olarak adlandırılır. Eşik değeri 2 türlü tanımlanabilir [9]. Birinci yöntem, eşik değerini sitemdeki öğelerin sayısı ve dağılımından bağımsız, sabit bir sayı olarak belirlemektir. Bu yöntem sabit eşik yöntemi olarak adlandırılır. İkinci yöntem ise, eşik değerini sistemdeki öğelerin dağılımına ve yoğunluğuna göre belirlemektir. Bu yöntem ise göreli eşik yöntemi olarak adlandırılır. Popüler öğelerin belirlenmesi problemi sadece görevdeş ağlarda değil, ayrıca veritabanı uygulamalarında, algılayıcı ağlarda [4]; hatta bazı gerçek senaryolarda da kullanilabilir. Örneğin, bir anayoldaki araç sayısı eşik değerini geçtiğinde veya bir bölgede sınırı geçen asker sayısının eşik değerinin üstüne çıktığında uyarı verilmesi [8]. Ayrıca bir bölgedeki sıcaklık algılayıcıları sayesinde o bölgedeki atmosfer bozukluklarının belirlenmesinde de kullanılabilir [5]. Bu örneklerin ortak özellikleri yerel verilerin eşlerde bulunması ancak istenilen bilginin bu verilerin yorumlanmasıyla elde edilebilecek bir sistem bilgisi olmasıdır. Bunların dışında önbellek yönetimi, internet solucanlarının ve DOS ataklarının belirlenmesi, ağ ilinge eniyilemesi (network topology optimization) gibi uygulamalara da uyarlanabilir [10]. Bu yöntemde eşlerin hepsine aynı görev verilir. Özelleşmiş görevlere sahip veya herhangi bir sıradüzen içerisinde yer alan eşler bulunmaz. Epidemik yönteme dayalı algoritmalar devirlerden (round) oluşmaktadır ve her devirde her eş ya kendinde bulunan bilgiyi hedeflediği diğer bir kaç eşe bildirir (push-based) ya da hedeflediği eşlerden içerikleri hakkında bilgi alırlar (pull-based). Her ikisinin de tek bir devirde yapılması da(pull-push based) mümkündür. Algoritma belirli bir devir sayısına ulaştığı zaman her eş kendi bilgisini tüm sisteme yaymış olur. Yöntem ne kadar fazla devirden oluşursa, bütün bilgilerin tüm sisteme yayılma olasılığı o kadar artar. Bu yöntem eşlerin sistemden ayrılmasına veya kopmasına karşı esnek bir yöntemdir. Bu nedenle görevdeş ağlarda veya bağlantı kopma oranı yüksek olan kablosuz ağlarda sık tercih edilen bir yöntemdir. Epidemik yöntemler işlevselliği açısından üç gruba ayrılabilir: Bu bildiri, şu şekilde düzenlenmiştir. 2. bölümde kümeleme ve sık öğelerin 1. Eşlerin içeriklerinin tüm sisteme belirlenmesi konusunda literaturdeki dağıtılması çalışmalardan bahsedilmiştir. 3. Bölümde ise 2. Yinelenmiş verilerin (replicated data) kendi önerdiğimiz dağıtık yaklaşım anlatılıp tamir edilmesi yaklaşımın uygulandığı bir örnek senaryo 3. Kümeleme gösterilmiştir. Epidemik yöntemlerin belli başlı yararları 2.Yöntemler basitliği, ölçeklenebilirliği, hataya karşı dayanıklılığının yüksek olmasıdır [1]. Bu 2.1 Kümeleme yöntemde elde edilen sonuçlar sıradüzensel Kümeleme işlemi, toplam, aritmetik yöntemin aksine olasılıklıdır (probabilistic), ortalama, minimum, maksimum gibi sistem belirleyici (deterministic) değildir. geneli bilgilerini belirleme işlemlerine verilen genel bir isimdir. Kümeleme işlemi sık Bir çok araştırmacı epidemik yönteme dayalı öğelerin belirlenmesinde önemli bir işlemdir dağıtık kümele işlemi hakkında çalışmalar çünkü öğelerin sık olup olmaması kararı yapmıştır. Kempe [7] bir ağda dağıtılmış verilirken kümeleme işleminin sonucu direk olarak bulunan değerlerin epidemik yöntem olarak kullanılmaktadır. Kümeleme yöntemi ile kümeleme değerlerinin hesaplanması için ağdaki eşlerin haberleşme türüne göre 2 merkezi olmayan bir yöntem önermiştir. gruba ayrılabilir. Örneğin, toplam ve aritmetik ortalama hesaplamalarını O(log n) devirde ve O(n log Epidemik (Gossip) Tabanlı Kümeleme n) mesaj ile gerçekleştiren bir teknik ortaya koymuştur. Bunun yanı sıra, derecelendirme (rank) ve örnekleme (sampling) hesaplamaları da önerilen teknik ile O(log2 n) devirde ve O(n log2 n) mesaj ile gerçekleştirilmektedir. Kashyap [6] minimum, maximum, toplam, aritmetik ortalma ve derecelendirme(rank) gibi kümeleme işlemlerini O(n log log n) mesaj ile ve O(log n log log n) devirde hesaplayabilen ilk algoritmayı geliştirmiştir. Boyd [2] ise düzensiz epidemik yönteme dayalı kümeleme işlemi yapan bir teknik geliştirmiştir. Bu çalışmaya göre eş i nin komşusu j ile haberleşmesi ihtimali Pij dir. Chen [3] kablosuz sensör ağlarda kümeleme hesaplaması için epidemik yönteme dayalı bir algoritma geliştirmiştir. Bu algoritmanın performansının diğer algoritmalara göre daha iyi olmasına rağmen, algoritmada kablosuz sensör ağlara has yayım (broadcasting) yöntemi kullanıldığı için uygulama alanı kısıtlıdır. Sıradüzensel Kümeleme Bu yöntemde eşler arasında bir sıradüzen oluşturulur. Ancak bu yöntemin en önemli problemi, sıradüzenin üst katmanlarında yer alan eşlerden birinin ağdan ayrılması veya ağdan kopması durumunda hesaplamalarda büyük kayıplar oluşmasıdır (single point of failure). Başka bir deyişle, tek bir eşin bile ağdan ayrılması durumunda çok büyük bir bilgi kaybına uğraması problemidir. Gossip yöntemi ile karşılaştırıldığında bu yöntem ölçeklenirlik açısından geride kalmaktadır. Li [10] kümeleme bilgisini hesaplamak için eşler arasında bir sıradüzen oluşturmuştur ve bu sıradüzenin en üst katmanına ağdaki en dayanıklı eş konulur. Bu eşin komşuları bir alt katmanda yer alır. Onların komşuları ise bir sonraki katmanda yer alır ve bütün eşler sıradüzene dahil olduğu zaman bu işlem sonlanmış olur. Bir eşin sıradüzene katılabilmesi için dayanıklı olarak nitelendirilmiş olması gerekir. Dayanıklı olmayan eşler yerel bilgilerini ait oldukları eş grubunun lideri konumunda olan dayanıklı eşe iletmekle görevlidir. Bu çalışmada, diğer çalışmalardan farklı olarak teorik olarak kesin hata payı olmayan bir çözüm sunulmuştur. Manjhi [11] de veri akışında sık bulunan öğeleri belirlerken aynı şekilde bir sıradüzen oluşturmuştur. Bu sıradüzende bir kaç haberci (monitor) eş ve bir temel eş bulunmaktadır. Haberci eşler, kendilerine gelen bilgileri belirli aralıklarla temel eşe haber verirler. Temel eş ise gelen bilgileri kullanarak belirli bir doğruluk payı içerisinde kümeleme hesaplamasını gerçekleştirir. Keralapura [8] uzak mevki (remote site) diye adlandırdığı ağdaki bazı eşlere belirli bir eş grubunun bilgilerini toplama görevi vermistir. Ağda bir de eşgüdümcü mevki (coordinator site) mevcuttur, eşgüdümcü mevki uzak mevkilerden, belirli koşullar sağlandığında ( örn. eşik değerinin aşılması) güncel bilgileri alır. Sıradüzensel yöntemlerin hepsinde de özelleşmiş bir eşin sistemden ayrılması veya kopması durumunda önemli bir bilgi kaybı olacağından, hesapların güvenilirliği ciddi bir şekilde azalır o yüzden eş giriş çıkışlarının sık olduğu ağlarda sıradüzensel yöntemin kullanımı güvenilir olmamaktadır. 2.2 Sık Öğelerin Belirlenmesi Önceki çalışmalar gözönünde bulundurulduğunda görevdeş ağlarda popüler öğelerin belirlenmesinde „epidemik‟ yöntem „sıradüzensel‟ yönteme nazaran daha nadir kullanılmıştır. Misra ve Gries [13] veri akışında sık bulunan öğelerin belirlenmesi konusunda ilk belirleyici çalışmayı yapmışlardır. Veri akışında n/k den fazla bulunan öğelerin belirlenmesi için üç tane algoritma önerisinde bulunmuşlardır. Burada n veri yapısının büyüklüğü, k ise kullanıcı tarafından tanımlanan bir parametredir ve 2≤ k ≤ n eşitsizliğini sağlamak zorundalar. Bu çalışmada ayrıca problemin O(n log k) zamanda çözülebilmesi için uygun olan veri yapısının AVL ağaç yapısı olduğunu ve bu zamanın da bu problem için bir alt sınır olduğu göstermişlerdir. Manku and Motwani [12] ise kullanıcı tarafından belirlenen eşik değerinden fazla bulunan öğelerinin belirlenmesi için iki farklı algoritma ortaya koymuşlardır. Bu algoritmalarda öğelerin yaklaşık sıklık değerleri hesaplanır ve hata payı kullanıcı tarafından belirlenen bir parametre ile sınırlanır. Birinci algoritma yapışkan örnekleme (sticky sampling) kullanıcı tarafından belirlenen parametreler ile kontrol edilir. Bu parametreler destek değeri s , hata oranı ε, ve bozukluk olasılığı dır. hesaplanıyormuş gibi olmaktadır. Sistemde sık bulunan öğeler listelenirken sıklık değeri (s-ε)N ve üzerinde olan öğeler seçilir. Diğer algoritma ise kayıplı sayım (lossy counting) olarak adlandırılır. Yapışkan örneklemeden en belirgin farkı, bu algoritmanın olasılıklı değil deterministik olmasıdır. Bu algoritmada veri akışı, genişliği w= ceil(1/e) olan kovalar kümesi olarak algılanır. Kullanılan veri yapısı D (e,f, ) üçlülerinden oluşmaktadır. , f teki en büyük hata oranını temsil eder. Toplam ceil(N/w) tane kova mevcuttur ve yürürlükteki kova bcurrent ile temsil edilir. Algoritma 2-Kayıplı Sayım Algoritma 1- Yapışkan Örnekleme Veri akışının uzunluğunun N, kullanılan veri yapısınn isminin S ve içeriğinin öğe-sıklık ikililerinden oluştuğunu varsayalım. İlk olarak S boştur ve örnekleme oranı1 1 dir. Algoritmada (Algoritma-1) belirtilen r değerinin hesaplanması şu şekilde olmaktadır: t= 1/(ε log(s-1δ-1)) olduğunu varsayalım. İlk 2t öğe için r=1, sonraki 2t öğe için r=2, sonraki 4t öğe için r=4, ve bu şekilde devam etmektedir. Bunun dışında, örnekleme oranında herhangi bir değişiklik olduğunda her bir öğenin sıklık değeri k değeri kadar azaltılır, burada k değeri geometrik dağılıma sahip bir değişkendir. Bu azaltma işlemi sayesinde öğelerin örnekleme oranı sanki başından beri o anki r oranı ile Bu algoritmada kovanın sınırında yer alan 2 öğeler aşağıdaki eşitsizliği sağlıyorsa, o öğeler silinir. Manku ve Motwani ayrıca bu problemi tek bir devirde çözecek bir algoritma da ortaya koymuşlardır. Ancak, öğelerin dağılımının çarpık (skewed) olması durumunda algoritma büyük hatalar yapmaktadır. Önerilen algoritmalar verimli olsada dağıtık olmamasından dolayı görevdeş ağlarda uygulanabilir olduğu söylenemez. Veri akışlarındaki sık öğelerin belirlenmesi alanındaki diğer bir çalışma da Manjhi [11] tarafından yapılmıştır. Bu çalışmada [12] den farklı olarak, öğeler dağıtık bir sistemde 1 Örnekleme oranının r olması, bir öğenin seçilme ihtimalinin 1/r olduğu anlamına gelir. 2 Sınırda yer almak N=0 mod w anlamına gelir. mevcut olduğu için önerilen algoritmanın görevdeş ağlara uygulanabilirliği vardır. Çalışmanın amacı sistem genelinde belirli bir eşik değerinden fazla sıklık değerine sahip öğelerin kullanıcı tarafından belirlenen maksimum bir hata payı dahilinde belirli periyotlar (T) ile belirlenmesidir. T değeri s*N olarak hesaplanır, s [0,1] değişkeni kullanıcının belirlediği destek değerini temsil eder. Sistemde m adet S1 ,S2, ..., Sm veri akımı olduğunu, ve veri akımı Si nin (oi1, ti1),( oi2, ti2), gibi öğe-frekans ikililerinden oluştuğunu varsayalım. Sistemde ayrıca her bir veri akımını izleyen toplam m adet monitör eşler olduğunu da varsayalım. Monitör eşler sistemde bir adet bulunan temel eşi bilginlendirmek ile görevlidir. Öğelerin sıklık değeri aşağidaki gibi hesaplanır: tnow şuanki zamanı temsil ederken, a dengelem katsayısının agresifliğini temsil eder. Bu çalışmanın diğer çalışmalardan farkı, yakın zamanda görülmüş olan öğelerin sıklık değeri üzerindeki etkisi daha eski öğelere göre daha fazla olmasıdır. Bu çalışmada da eşler arasında sıradüzensel bir yapı mevcuttur. Temel eş ağacın en tepesinde yer alırken, onun komşuları bir alt seviyede, komşularının komşuları ise daha alt seviyede yer alır. Bütün eşler bu sıradüzene dahil olana kadar bu yordam devam eder. Bu sıranın en alt katmanında bulunan düğümler yaprak düğümler (leaf nodes), orta katmanda yer alan öğeler ise ara düğümler (intermediate nodes) olarak adlandırılırlar. Her bir katmana ait bir hata oranı εi vardır. Sonucun doğru bir şekilde temel eşe iletilmesi için bu hata oranının sıradüzenin alt katmanından üst katmanına doğru azalması gerekmektedir. Bu yaklaşıma duyarlık meğili (precision gradient) adı verilmektedir. Bir grup çalışma [2,14] eşikli sayımları dağıtık izleme konusunda bir algoritma önerisinde bulunmuşlardır. Dağıtımlı izleme probleminin, sonucun tek bir eşte toplanması açısından sık öğelerin belirlenmesi problemine uyarlanması mümkün değildir. Popüler öğelerin belirlenmesi probleminde her eşin sistem genelindeki sık öğeleri bilmesi gerekir. Bu özelliğe sahip algoritmalar tedbirli (proactive) algoritmalar olarak adlandırılırken, [8] ve [14] teki çalışmalarda önerilen algoritmalar tepkili (reactive) algoritmalar olarak adlandırılmaktadır. Diğer bir çalışmada [10], görevdeş ağlarda sık bulunan öğelerin belirlenmesine sıradüzensel bir yaklaşım ile in-network filtering adında bir algoritma önerilmektedir. Bu algoritma 2 aşamadan oluşmaktadır. Birinci aşama aday süzme (candidate filtering) olarak adlandırılır ve bu aşamada eşler arasında gruplar oluşturulur ve bu gruplarda sık görülen öğeler ilk elemeden geçerler. İlk elemeden geçen öğeler ikinci aşama olan aday doğrulama (candidate verification) aşamasına geçer. Bu aşamada ise her bir öğenin sıklık değeri, oluşturulan sıradüzen aracılığı ile hesaplanır ve kulanıcı tarafından belirlenen eşik değerinin üstünde sıklık değeri olan öğeler sık öğeler olarak belirlenir. Lahiri ve Tirthapura [9] bu alanda epidemik yöntemi kullanan tek çalışmayı yapmışlardır. Bu çalışmada „birörnek (uniform) epidemik algoritma kullanılmıştır ve ağdaki her bir eşin sadece bir öğe bulundurabileceği baz alınmıştır. Bu durum algoritmanın uygulanabilirliğini azaltmaktadır. 3. Önerdiğimiz Dağıtık Yaklaşım N eşten oluşan tasarsız bağlantılı (connected) bir görevdeş ağın olduğunu varsayalım ve ağdaki eşleri P={P1, P2,...,PN} kümesi olarak, öğeleri ise D={d1, d2, d3,..., dt} kümesi ile adlandıralım. Burada t değeri tüm ağda kaç farklı öğe olduğunu gösterir. Her bir öğenin sistem genelinde kaç adet bulunduğunu ise g(di), i={1,2,...,t} olarak gösterelim. Ayrıca Pj‟nin öğe içeriğini de Sj={sj1, sj2,..., sjm,..., sjk } olarak gösterelim, burada k değeri, o eşte kaç tane farklı öğe bulunduğunu gösterir ve Sj D dir. Eş j‟de bulunan herhangi bir öğenin, sm olduğunu varsayalım, yerel sıklık değerini v(sjm) ve tanımlayıcısını da id(sjm) olarak gösterelim. Bu durumda öğelerin sıklık değerleri şu şekilde yazılabilir. N g (d i ) v( s ji ), i {1,2,..., t} j 1 Elde etmeye çalıştığımız sonuç, algoritma sonucunda her eşin, sistem genelindeki tüm öğelerin sayısını( g(di) , i={1,2,...,t} ) hesaplamış olmasıdır. Çünkü, amacımız tek bir eşin değil, her eşin sistemdeki sık öğeleri tespit edebilmesidir. Sık öğeyi tanımlarken de bir eşik değeri belirlenmesi gerekir. Bu eşik değerini T olarak gösterelim. Buna göre sistemdeki sık öğeleri şu şekilde tanımlayabiliriz: F (t ) {d i g (d i ) T } , i {1,2,..., t} Önerdiğimiz yöntemin diğer çalışmalardan en önemli farkı sık öğelerin tanımında öğenin sıklık değerini değil, onun sistem genelindeki ortalamasını temel almamızdır. Bunun nedeni ise epidemik yöntemde eşler arası haberleşme belirli bir hiyerarşiye dayanmadığından dolayı, aynı eşler birden fazla haberleşmiş olabilirler. Bu durumda her eşin yerel değerlerini toplayarak onların sistem genelindeki sıklık değerini elde etmemiz mümkün değildir. Bizim önerdiğimiz yaklaşımda sık öğeler şu şekilde tanımlanır: F (t ) {d i ga(d i ) } i {1,2,..., t} ga(d i ) g (d i ) 1 N N N v( s j 1 ji ) T N Burada ek olarak hesaplamamız gereken sistemde kaç tane eş bulunduğunun tahmin edilmesidir.Ancak, bu hesaplama da herhangi bir öğenin sistem genelindeki sıklık değerinin hesaplanmasıyla paralel olduğu için ayrı bir işlem gerektirmeyecektir. Tek yapılması gereken, sistemdeki eşlerden her birine aynı öğeden ekleyip o öğenin sıklık değerini tek bir eş hariç sıfıra eşitlemek, tek eşte (başlatıcı eş) ise 1 e eşitlemek olacaktır. Böylelikle, bu eklediğimiz öğenin sistem genelindeki ortalamasını hesapladığımızda 1/N değerine yaklaşacağız. Algoritmanın İşleyişi Önerdiğimiz algoritma belirli periyotlarda eşlerin birbiri ile haberleşmesine dayanmaktadır. Her bir periyotta, eşler komşuları arasından rastgele haberleşeceği eşi seçer ve kendi içeriğini gönderir. Bu içeriği alan eş, gelen her öğeye bakar. Eğer bir öğe kendinde bulunmuyorsa o öğeyi sıklık değerini sıfıra eşitleyip içeriğine ekler. Daha sonra öğenin kendisindeki ve öğeyi aldığı eşteki değerlerin ortalmasını hesaplayıp kendi içeriğine kaydeder. İçeriğini güncelleyen eş, sadece o periyotta güncellemiş olduğu içeriği geri gönderir. Her eş bu işlemi gerçekleştirdikten sonra ilk periyot tamamlanmış olur. Sistem genelinde her öğenin sıklık değeri korunduğu için ve de her eşte belli bir periyottan sonra aynı değere yakınsayacağı için, bu değer o öğenin ortalaması olacaktır. Bu yaklaşımı açıklamaka için herhangi bir öğenin her eşteki yerel sıklık değerlerinin ilk durumunu düşünelim. Bu değerlerden en büyüğü ile en küçüğünün değeri Vmin, Vmax olsun. Vmin yerel sıklık değerini içeren eş ilk periyottan sonra Vmin değerini Vmin den daha büyük bir değerle değiştirecektir, çünkü kendisinden daha büyük bir değerle ortalamasını hesaplayıp içeriğine kaydedecektir. Aynı şekilde Vmax değeri de her periyotta azalacaktır. Bir öğenin eşlerdeki sıklık değerleri Vmin ile Vmax arasında olduğu için ve bu değerler gittikçe birbirine yaklaştığı için, en sonunda tüm eşlerdeki değerler gerçek ortalama değere yakınsayacaktır. Örnek Senaryo Ağımızda üç eş olduğunu varsayalım ve herbirinin diğer iki eşle komşu olduğunu varsayalım (tam çizge). Başlangıç içerikleri de şöyle olsun: S1 S2 S3 Toplam {(id1, 2),(id2, 7)} {(id1, 4)} {(id1, 4)} {(id1, 10), (id2, 7)} Eşlerin başlangıç içerikleri Eşik değerinin de 8 olduğunu varsayalım. Algoritmanın sık öğe olarak sadece id1 öğesini dönmesi gerekir. XY : X eşinin içeriğini paylaşmak için Y eşini seçtiği anlamına gelir. 1.Periyot Başlatıcı eş: P1 S1S2, S3S1, S2S1 olduğunu varsayalım. Bu durumda S1={(id1, 2),(id2, 7),(id, 1)} S2={(id1, 4), (id, 0)} S1S2 sonucunda S1={(id1, (2+4)/2),(id2, (0+7)/2),(id, 0.5) } S2={(id1, (2+4)/2),(id2, (0+7)/2),(id, 0.5)} Step1 S3={(id1, 4),(id, 0)} S1={(id1, 3),(id2, 3.5),(id, 0.5)} S3S1 sonucunda S2={(id1, 3),(id2, 3.5),(id, 0.5)} S1={(id1, 3.5),(id2, 3.5),(id, 0.25)} S2S1 sonucunda S2={(id1, 3.25),(id2, 3.5),(id, 0.375)} S1={(id1, 3.25),(id2, 3.5),(id, 0.375)} Step3 İlk periyot sonunda eşlerdeki içerik şu şekilde olur: S1 {(id1, 3.25),(id2, 3.5),(id, 0.375)} S2 {(id1, 3.25), (id2, 3.5),(id, 0.375)} S3 {(id1, 3.5), (id, 0.25)} Top {(id1, 10), (id2, 7), ((id, 1))} Birinci periyot sonunda içerikler Tabloda görüldüğü gibi, öğelerin yerel sıklık değerleri değişmesine rağmen, toplam satırındaki öğelerin sistem genelindeki sıklık değerlerinde herhangi bir değişiklik gözlemlenmemiştir. Bu durum bize yakınsanan değerinin öğelerin ortalama değeri olduğunu göstermektedir. Birinci periyot sonunda her bir eşe sık öğelerin listesini sorduğumuzda aldığımız cevaplar ise şöyle olacaktır: S1 için S2 için S3 için =8*0.375=3, F={id1,id2} =8*0.375=3, F={id1,id2} =8*0.25=2, F={id1} 2. Periyot S1S3, S2S1, S3S2 olduğunu varsayalım. Bu durumda, 2. Periyot sonunda eşlerin içeriği şu şekilde olacaktır. S3={(id1, 3.5),(id, 0.25)} S1 {(id1, 3.3125),(id2, 2.625),(id, 0.34375)} S1={(id1, 3.5),(id2, 3.5),(id, 0.25)} S2 {(id1, 3.34375), (id2, 2.1875),(id, 0.328125)} S3 {(id1, 3.34375), (id2, 2.1875),(id, 0.328125)} Top {(id1, 10), (id2, 7), ((id, 1))} Step2 İkinci periyot sonunda içerikler Birinci periyot sonunda her bir eşe sık öğelerin listesini sorduğumuzda aldığımız cevaplar ise şöyle olacaktır: S1 için S2 için S3 için =8*0.34375=2.75, F={id1} =8*0.328125=2.625, F={id1} =8*0.328125=2.625, F={id1} Sonuç olarak her bir eş dağıtık yaklaşım ile sistem genelinde sık bulunan öğenin id1 olduğuna karar verdi. Sistem geneline baktığımız zaman sıklık değeri eşik değerinin üstünde olan tek öğenin id1 olduğu da görülmektedir. 4. Sonuç Bu çalışmada, görevdeş ağlarda popüler öğelerin belirlenmesinin öneminden, uygulama alanlarından ve literatürde bu konudaki önemli çalışmalardan bahsettik. Bu çalışmaların bir özetini yapıp, pozitif ve negatif yönlerini belirleyip, birbirleri ile karşılaştırdık. Ayrıca, görevdeş ağlarda popüler öğelerin belirlenmesinde epidemik tabanlı dağıtık bir çözüm önerisinde bulunduk. Önceki çalışmalardan farklı olarak, bu yaklaşım sık öğelerin belirlenmesinde ortalama fonksiyonunu kullanarak tamamen dağıtık şekilde ilerlemektedir. Sistem modelinin P2P ağ benzetim (PeerSim) ve test (PlanetLab) platformları üzerinde geliştirilmesi, konunun enerji verimliliği boyutunun dikkate alınması ve literatürdeki diğer çözümlerle başarım karşılaştırması hedeflenmektedir. 5.Kaynaklar [1] Birman, K., “The promise, and limitations, of gossip protocols”, Operating Systems Review, vol. 41, no. 5, pp. 8–13, 2007. [2] Boyd, S. P., Ghosh, A., Prabhakar, B. and Shah, D., “Gossip algorithms: design, analysis and applications”, INFOCOM, 2005, pp. 1653–1664. [3] Chen, J.-Y., Pandurangan, G. and Xu, D., “Robust computation of aggregates in wireless sensor networks: Distributed randomized algorithms and analysis”, IEEE Trans. Parallel Distrib. Syst., vol. 17, no. 9, pp. 987–1000, 2006. [4] Chitnis, L., Dobra, A., Ranka, S., “Aggregation methods for large-scale sensor networks”, ACM Transactions on Sensor Networks (TOSN), v.4 n.2, p.1-36, March 2008 [5] Jelasity, M., Montresor, A., Babaoglu, O., “Gossip-based aggregation in large dynamic networks”, ACM Transactions on Computer Systems (TOCS), v.23 n.3, p.219-252, August 2005 [6] Kashyap, S., Deb, S., Naidu, K., Rastogi, R., and Srinivasan, A., “Efficient gossipbased aggregate computation.”, Proceedings of ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems (PODS), June 2006. [7] Kempe, D., Dobra, A., and Gehrke, J., “Gossip-based computation of aggregate information”, Proceedings of Symposium on Foundations of Computer Science (FOCS), pages 482–491, October 2003. [8] Keralapura, R., Cormode, G., and Ramamirtham, J., “Communication-efficient distributed monitoring of thresholded counts”, SIGMOD Conference, June 2006, pp. 289–300. [9] Lahiri, B. and Tirthapura, S., “Computing frequent elements using gossip”, SIROCCO, 2008, pp. 119–130. [10] Li, M. and Lee, W.-C., “Identifying frequent items in peer-to-peer systems.”, Pennsylvania State University Technical report, July 2006. [11] Manjhi, A., Shkapenyuk, V., Dhamdhere, K. and Olston, C., “Finding (recently) frequent items in distributed data streams”, Proc. of International Conference on Data Engineering (ICDE), Apr. 2005, pp. 767–778. [12] Manku, G.S. and Motwani, R., “Approximate frequency counts over data streams”, VLDB, 2002, pp. 346–357. [13] Misra, J. and Gries, D., “Finding repeated elements”, Sci. Comput. Program., vol. 2, no. 2, pp. 143–152, 1982. [14] Olston, C., Jiang, J. and Widom, J., “Adaptive filters for continuous queries over distributed data streams”, SIGMOD Conference, 2003, pp. 563–574.