Uygulamamızın bir bölümünü büyük bir veri kümesi (> 2000 varlığı) yüklemesi ve bu sette hesaplama yapması gerekiyor. Her varlığın boyutu yaklaşık 5 KB'dir. zamanın kendisi çok küçük hesaplama gerçekleştirmek için gerekli süre bizim ilk, naif, uygulama günüGAE datastore'dan büyük (> 2000) varlık miktarını 1 saniyeden daha kısa sürede nasıl alırsınız?
, darboğaz < (zaman (2000 varlıklar için ~ 40 saniye) bütün varlıkları yüklemek için gerekli gibi görünüyor 1 saniye).
Biz varlıklar alma hızlandırmak için çeşitli stratejiler denemişti: 2000 varlıklar için ~ 20 saniye:
- Bölme birkaç paralel örneklerini içine alma isteği ve sonra sonucu birleştirilmesi.
- Varlıkları, yerleşik bir arka uçta yerleştirilen bir bellek içi önbellekte saklamak: ~ 2000 öğesi için 5 saniye.
hesaplama dinamik olarak yazma anda on hesaplama yapıyor ve bizim durumumuzda çalışmıyor sonucu depolamak, bilgisayarlı gerekmektedir.
Bir saniyeden kısa bir süre içinde ~ 2000 öğeyi alabilmeyi umuyoruz. Bu GAE/J yeteneği içinde mi? Bu tür bir geri alma için uygulayabileceğimiz başka stratejiler var mı?
GÜNCELLEME: bizim kullanma durumu ve paralelizasyon sonucu hakkında ek bilgi sunmak:
- Biz veri deposuna aynı türden birden fazla 200.000 varlıklara sahip ve operasyon alma salt yazılır.
- 10 paralel çalışan örneğini denedik ve elde ettiğimiz tipik bir sonuç this pastebin'da görülebilir. Varlıkları ana örneğe geri aktarırken gereken serileştirme ve serileştirme işleminin performansı engelliyor gibi görünüyor.
GÜNCELLEME 2:
- en bunun iyi bir yatırım olmadığını bilmek analiz edilmesi gereken bir StockDerivative varlık var diyelim: Biz yapmaya çalışıyoruz ne bir örnek verilmesi ya da değil. Gerçekleştirilen analiz, hem harici (ör., Kullanıcının tercihi, piyasa koşulu) hem de dahili (yani, kuruluşun özelliklerinden) birçok faktöre dayanan ve tek bir "yatırım puanı" değeri çıkaran karmaşık hesaplamalar gerektirir.
- Kullanıcı, türevlerinin yatırım puanına göre sıralanmasını talep edebilir ve N-sayısında en yüksek sayıda türev ile sunulmasını isteyebilir.
Kullanıcılara yönelik bir istek için neden bu kadar çok varlığı almanız gerekiyor? Gerçekte yaptığınız şey hakkında daha fazla bilgi verebilir misiniz? –
Kullanıcıya, bazı giriş parametrelerine ve kullanıcı tanımlı bir işleve dayalı olarak en büyük karı veren bir varlık alt kümesi sunmamız gerekiyor. Kullanım durumumuzda, arama alanını yalnızca en iyi ~ 2000 varlık alt kümesine indirgeyebiliriz. –
Peter'ın işaret ettiği gibi, tek bir kullanıcı sorgusu için bir bilgi verisi almaya çalışıyorsunuz. Bunu bir şekilde yeniden yapılandırmanız ve yaptıklarınız hakkında daha fazla bilgi vermeden, nasıl olduğunu söylemek zor. –