SORU
3 Kasım 2010, ÇARŞAMBA


Asenkron Olası arama bulunmaktaydı.

Eğer bir veritabanının zaman uyumsuz çağrı yapmak için bir yol olup olmadığını merak ediyorum?

Mesela, hayal ettiğim bir büyük isteği kabul çok uzun bir zaman süreci, göndermek istiyorum isteği ve bildirim almayı ne zaman talep edecek bir dönüş değeri (geçerken bir Dinleyici/geri arama ya da bir şey). Veritabanı cevap vermesini bekliyorum engellemek istemiyorum.

İş parçacığı havuzu kullanarak ölçek olmadığı için bir çözüm olduğunu düşünmüyorum, ağır eşzamanlı istekleri halinde bu konuları çok sayıda doğacaktır.

Ağ sunucuları ile bu tür bir sorun ile karşı karşıyayız ve seçme/anket/epoll sistemi ara bağlantı başına bir iş parçacığı önlemek için kullanarak çözüm bulduk. Sadece veritabanı isteği ile benzer bir özellik var nasıl merak ediyorum?

Not: Bir FixedThreadPool iyi olabilir kullanarak geçici bir çözüm olduğunun farkındayım, ama kimse bir sistemi gerçekten asenkron (ekstra iplik kullanımı olmadan) geliştirdiği şaşırdım.

** Güncelleme **
Bir kütüphane (aldatmak parçası) kendim oluşturmaya karar verdim gerçek pratik çözümler eksikliği, çünkü: finagle-mysql. Temelde bu başlık altında/Netty Aldatmak mysql/çözer çözer. Son derece iyi bağlantıları çok sayıda bile ölçekler.

CEVAP
30 EYLÜL 2011, Cuma


Şal OLANLARI Aktörler, uygulayıcısı ya da başka bir şeye çağıran önerilen yaklaşımlar burada nasıl yardımcı olacağını anlamıyorum biri açıklığa kavuşturmak için.

Elbette temel sorun, soket IO üzerinde BULUNMAKTAYDI işlemleri bloğu. Ne zaman bu hikaye sonunda konu onun çalışmasını engeller. Olacak bir iş parçacığı meşgul olmak ile sonuna kadar kullanmayı tercih ne olursa olsun/eşzamanlı istek başına engelledi.

Temel veritabanı sürücüleri (MySql?) fazla bir anlamı kesişecek yuva oluşturma (bkz SocketFactory) o zaman hayal olur mümkün oluşturmak için bir zaman uyumsuz olay tabanlı veritabanı katmanı üstünde OLANLARI (apı ama birlikte olursak, saklanması bütün OLANLARI geride bir olay tahrik cephe ve cephe yapamaz gibi OLANLARI (sonra olur olay güdümlü). Veritabanı işlem zaman uyumsuz arayan için farklı bir iş parçacığı üzerinde olacağını, ve iş parçacığı benzeşme bağlı olmayan bir işlem yöneticisi oluşturmak için nasıl çalışmak gerek.

Yaklaşımı gibi bir şey hatta tek bir arka plan iş parçacığı eşzamanlı OLANLARI exec bir yük işlemek için izin verecek söz. Muhtemelen uygulamada iş parçacığı havuzu birden çok çekirdek kullanmak için koşmalısın.

(Tabii ki değilim yorumda mantık asıl soru cevapları ima bu eşzamanlılık bir senaryo ile engelleme soket IO mümkün olmayan kullanıcının seçici desen daha kolay çalışmak, tipik OLANLARI (eşzamanlılık ve koymak bir bağlantı havuzu doğru boyut).


MySql muhtemelen öneriyorum çizgisinde bir şey gibi görünüyor --- http://code.google.com/p/async-mysql-connector/wiki/UsageExample

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • spederson7

    spederson7

    17 Temmuz 2006
  • Crossover

    Crossover

    18 HAZİRAN 2007
  • Xbox

    Xbox

    1 Kasım 2005