Hi Chris,

I think current LEventStore's blocking methods should take ExecutionContext
as an implicit parameter and Future version of methods should be provided.
I don't know why they aren't. Is there anyone who knows reason for the
current LEventStore API?

At the moment, you can consider to use LEvent directly to access Future
version of methods as a workaround.

2018年10月11日(木) 23:05 Chris Wewerka <chris.wewe...@gmail.com>:
>
> Thanks George, good to hear that!
>
> Today I did a test by raising the bar for the max allowed threads in the
"standard"
>
> scala.concurrent.ExecutionContext.Implicits.global
>
> I did this before calling "pio deploy" by adding
>
> export JAVA_OPTS="$JAVA_OPTS -Dscala.concurrent.context.numThreads=1000
-Dscala.concurrent.context.maxThreads=1000"
>
> Now we do see much more CPU usage by elasticsearch. So it seems that the
QueryServer by using the standard thread pool bounded to the available
processors acted like a dam.
>
> By setting the above values we now have sth. like a traditional Java JEE
or Spring application which blocks thread because of synchronous calls and
creates new threads if there is demand (requests) for it.
>
> So this is far from being a good solution. Going full async/reactive is
still the way to go in my opinion.
>
> Cheers
> Chris
>
> On Thu, 11 Oct 2018 at 14:07, George Yarish <gyar...@griddynamics.com>
wrote:
>>
>>
>> Hi Chris,
>>
>> I'm not a contributor of the predictionio. But want to mention we also
quite interested in that changes in my company.
>> We often develop some custom pio engines, and it doesn't look right to
me to use Await.result with non-blocking api.
>> Totally agree with your point.
>> Thanks for the question!
>>
>> George



--
Naoki Takezoe

Reply via email to