2011-03-06 12 views
5

Eşzamanlılık denetimi için çoklu sürüm zaman damgası siparişini uygulayan DBMS'ler genellikle önlerindeki yazma günlüklerini içerir? görüntülerden önce ve sonra veya bunlardan biri? zaman damgaları? başka ?Bir yazma günlüğüne ne yazardınız?

+1

Bir uygulama seçin ve teknik belgelere bakın. Postgres bir tür MVCC kullanır ve oldukça iyi ayrıntılı belgelere sahiptir IIRC ... Firebird veya etrafta dürtülen diğer açık motorlar hakkında emin değilim. –

cevap

3

Documentation of Postgres WAL: şimdiye kadar en iyi olmak için bu makaleyi buldum. Postgres MVTO MVCC tipini kullanır. InnoDB, MVRC'yi kullanıyor.

Burada, kurtarma için önemli olan Postgres log structure ve pg_control structure belirtilmiştir. Zaman damgası güvenilir olmadığı için kullanılmaz, daha çok monoton artışlı tamsayı sayacı kullanır (işlem kimliği). Bu nedenle, tüm geri alma ile ilgili veriler, WAL'de değil, ana verilerin kendisinde saklanır.

WAL'in temel amacı, elektrik kesintisi, işletim sistemi sorunları veya bazı donanım arızalarından kaynaklanan (özellikle ciddi disk hataları hariç) sorunların oluşmasıdır. Yani WAL bundan çok bağımsız olmalı.

Innodb günlük yapısı innodb/include/log0log.h dizinindedir.

+0

@Zimbabo: teşekkürler! MVTO ve MVRC arasındaki farkı biliyor musunuz? – geeko

+0

Yanıtladığım önceki sorunuzda size bir bağlantı verdim (http://simpledbm.googlecode.com/files/mvcc-survey-1.0.pdf). Bu MVCC algoritmalarını açıklar, postgre'ler MVTO kullanır ve InnoDB/Oracle MVRC kullanır. – Zimbabao

+1

@Zimbabao, bağlantılar: 404ed – Pacerier

İlgili konular