Sektörden Haberler

Vektör Saatler (Vector Clocks) Nedir?

8 Haziran 2026 Pazartesi


Dağıtık sistemlerin en büyük zorluklarından biri, birden fazla düğüm (node) üzerinde gerçekleşen işlemlerin hangi sırada yapıldığını anlamaktır. Merkezi bir sunucunuz olsaydı, her olaya bir zaman damgası (timestamp) verip sıralamak kolaydı. Ancak her sunucunun kendi donanım saati olduğu "dağıtık dünyada", saatler asla tam olarak senkronize olmaz (Clock Skew). 

Peki, hangi olayın diğerinden önce gerçekleştiğini nasıl bileceğiz? İşte burada devreye “Vektör Saatler” girer.

Temel Mantık: Kronoloji değil, Nedensellik

Vektör Saatler, zamanı bir saat gibi değil, nedensellik ilişkisi (causality) olarak izler. Eğer bir sistemde A olayı, B olayına yol açtıysa (örneğin bir mesajın gönderilmesi ve alınması), Vektör Saatler bu ilişkiyi matematiksel olarak kayıt altına alır.

Nasıl Çalışır?

Sistemdeki her düğümün kendi sayacı (counter) vardır. Bir düğüm bir işlem yaptığında veya başka bir düğümden mesaj aldığında kendi vektörünü günceller:

  1. Yerel Olay: Düğüm kendi üzerindeki işlemi gerçekleştirir ve kendi indeksindeki sayacı +1 artırır.
  2.   Mesajlaşma: Bir düğüm başka bir düğüme mesaj gönderdiğinde, kendi güncel "vektör saatini" de mesajın içine ekler.
  3. Birleştirme (Merge): Mesajı alan düğüm, mesajdaki vektör ile kendi vektörünü karşılaştırır ve her indeks için en yüksek olan değeri alır.

Bu sayede her düğüm, sistemin geri kalanında hangi olayların gerçekleştiğine dair güncel bir "tarihçe" tutar.

Neden Önemlidir?

  • Çakışma Tespiti: İki farklı düğüm aynı veriyi eş zamanlı güncellerse, Vektör Saatler bu iki değişikliğin "birbiriyle ilişkisiz" (concurrent) olduğunu fark etmemizi sağlar.
  •  Tutarlılık: Özellikle Cassandra, Riak veya DynamoDB gibi "eventual consistency" (nihai tutarlılık) odaklı sistemlerde, hangi verinin daha yeni veya "geçerli" olduğuna karar vermek için kullanılır.

Özet
Vektör Saatler, dağıtık bir sistemde "kim önce geldi?" sorusunu saatlere güvenmeden, nedensellik bağıyla çözmemizi sağlayan bir mantıksal izleme mekanizmasıdır.