Yandex’in sorgu yanıtlama düzeni

Kullanıcılardan her gün 100 milyondan fazla sorgu alan Yandex’in, gelen tüm sorgulara hem tam ve doğru yanıtlar bulabilmesi, hem de ilgili veri akışını yeterince çabuk işleyebilmesi gerekmektedir. Bu hedefe en etkili şekilde ulaşmak için Yandex, “indeks” olarak tanımlanan, önceden hazırlanmış özel bir veri dizisini kullanır. Bir kitabın son sayfalarındaki dizine benzeyen bu web arama indeksi, web sitelerinde arama yapılması ve gerekli yanıtların bulunması işlemlerini de önemli ölçüde hızlandırır. Ancak bu indeksin boyutları da doğal olarak çok fazladır. Bu büyüklükteki bir veri dizisini etkili olarak işlemek için Yandex aynı anda binlerce sunucu kullanmak zorundadır. Sunucular, sunucu kümelerine (server cluster), kümeler ise bazen daha büyük “üst küme”lere gruplanır.
Yandex’in web arama düzeninin (mimarisinin) özellikleri, sürekli büyüyen internete yeni veriler eklendikçe onları işlemek üzere mevcut sunuculara yeni sunucuların eklenmesini büyük ölçüde kolaylaştırır.
Kullanıcılardan gelen tüm sorgular önce MetaSearch sistemine gider. Her sorgu, gerçek zamanlı olarak işlenerek sorgunun tam olarak nereden geldiği, hangi sınıfa ait olduğu gibi tüm bilgilerin tespiti ve dil yapısı analizi yapılır. Ardından, kullanıcılardan sık sık gelen sorguların yanıtları bir süre MetaSearch belleğinde kayıtlı kaldığı için MetaSearch, son birkaç gün içinde aynı konuda yanıtların hazırlanıp hazırlanmadığını kontrol eder ve uygun örneklerin bulunması halinde onu, baştan hazırlamaya gerek kalmaksızın önceden hazırlanmış bir arama sonucu olarak kullanıcıya sunar.
Uygun örneklerin bellekte bulunmaması durumundaysa gelen sorgu, MetaSearch’ten Temel Arama (basic search) sisteminin sunucularına aktarılır. Temel Arama sistemi, her biri ayrı birer sunucu üzerinde tutulan birkaç parçaya bölünmüş ve bir bütün olarak internetin tamamından alınmış bir kalıba benzeyen Arama Veritabanı’nı içerir. Arama Veritabanı’nın birkaç parçaya bölünmüş olması, aramanın aynı anda birkaç parça üzerinde yapılmasıyla zaman tasarrufu sağlar. Her sunucunun ayrıca birkaç adet kopyası da vardır. Dolayısıyla sunucuların biri ya da birkaçının aşırı yüklenme yüzünden yavaş çalışır ya da çalışamaz hale gelmesi durumunda, hem veri kaybı önlenir hem de sorgulara yanıt vermek için bilgi bulabilecek yedek bir sunucunun mutlaka hazırda bulunması sağlanır. MetaSearch, Temel Arama’nın binlerce sunucusundan halihazırda en az yüklü çalışanlarını seçerek farklı sunuculardaki parçalardan Arama Veritabanı’nın tümünu yeniden toplar ve çalışmaya devam eder.
Bu işlemin ardından sorgudaki kelimeleri içeren tüm dosyalar hakkında bilgiler, listeler halinde ilgili sunuculardan MetaSearch’e gönderilerek ortak bir liste oluşacak şekilde birleştirilir ve MatrixNet teknolojisi yardımıyla sınıflandırılarak arama sonuçları sayfasına gönderilir.
Tüm bu işlemler Yandex web aramanın bu özel mimarisi sayesinde bir saniyeden az bir süre içinde tamamlanarak hazırlanan yanıt kullanıcıya sunulur.