2010-01-04 39 views

cevap

4

Bu gerçekten veri erişimi için kullandığınız mekanizmaya çok bağlıdır. Çok ölçeklenebilir bir veri erişiminiz varsa ve bir çok iş parçacığınız varsa, bir tür iş parçacığı kullanarak statik veri erişimi avantajlı olabilir.

Ölçeklenebilir veri erişiminiz yoksa, sağlayıcınız her işlem için birden çok ileti iş parçacığını desteklemiyor ya da yalnızca bu noktada ölçeklenebilirliğe ihtiyacınız yok, uygun senkronizasyona sahip bir tekli kullanarak daha kolay ve daha kolay uygulanır .

Çoğu işletme stili uygulaması için, kişisel olarak tekil yaklaşımın sürdürülmesinin daha kolay olduğunu ve muhtemelen daha iyi olduğunu düşünürüm - başka bir nedenden ötürü, etkili bir şekilde test etmek çok daha kolay değildir. Veri erişimi için muhtemelen birden fazla iş parçacığı olması gerekli değildir, çünkü veri erişimi, kullanılabilirliği etkileyen bir darboğaz olmayacaktır (doğru şekilde tasarlıyorsanız ve toplu iş isteklerini uygun şekilde düzenlerseniz).

+0

DAO'lar aslında iki kaynağa bağlanıyor: SimpleDB ve RPC aracılığıyla bir PHP API'si. Tahminimce, darboğaz sorunlarından kaçınmak için muhtemelen 100 iş parçacığı ile her bir iş parçacığı için DAO kullanmalıyım. Bu durumda hiç belirgin bir neden görmüyor musunuz? – pondermatic

+0

DAO'yu tekil yapmak ve dahili olarak sadece eşzamansız çalışmak için muhtemelen daha iyi. Daha sonra gerektiği gibi bir ThreadPool kullanarak ölçeklenebilir ... Bu web istekleri asenkronize büyük iş gibi, özellikle PHP API için doğrudur ve çoğu web çerçeveleri bunun için iyi bir destek var ... –

0

kullanın iyi, başvurunuz mimarisini uygun yaklaşım sürece:

1) Kişisel veri erişim nesneleri bu durumda bir iş parçacığı güvenli singleton düşkündürler gerektiğini oluşturmak için pahalıdır.

2) Nesneleriniz, Active Record pattern'daki gibi değişebilir durumunu korur. (Zaman aşımı eşikleri gibi ölçülebilir DAO yapılandırma durumu sayılmaz.)

İlgili konular