> Only partitioned regions support parallel queues.

Thanks, yes my trivial example is not partitioned.

I might suggested some sort of option validation to detect this to prevent
the hanging at startup from what I guess is a side effect of
misconfiguration.

Thanks again

Rob

On Fri, 2 Nov 2018 at 18:23, Anthony Baker <[email protected]> wrote:

> Also, it matters if your region is partitioned or not.  Only partitioned
> regions support parallel queues.
>
> I’m not sure about the gfsh behavior you’re seeing when you set
> parallel=true.
>
> Anthony
>
>
> On Nov 2, 2018, at 11:12 AM, John Blum <[email protected]> wrote:
>
> Hi Rob-
>
> Sorry, just noticed your follow up where you figured out the hot CPU issue
> caused by your batch-time-interval of 0.
>
> As for setting parallel to *true*, it may be you have other severs
> currently running that do not have parallel currently configured to *true*,
> which I think (don't remember for sure) might be considered incompatible
> Region configuration by the cluster.  All Regions with the same name hosted
> by members in the cluster must have compatible configuration.
>
> Check whether you may already have existing members with the same Region
> (by name) that may not currently have the associated AEQ set with
> parallel=true.
>
> Cheers,
> -j
>
>
> On Fri, Nov 2, 2018 at 11:07 AM, John Blum <[email protected]> wrote:
>
>> Hi Rob-
>>
>> Please see here [1].  Default is 5 Threads.  Also see [2].
>>
>> Alternatively, look at  [3] (<async-event-queue dispatcher-threads=".."
>> ..>) or [4] (create async-event-queue --dispatcher-threads).
>>
>> The threads should not be having an impact, but you can experiment with
>> the number to find out.
>>
>> -j
>>
>>
>> [1]
>> http://geode.apache.org/releases/latest/javadoc/org/apache/geode/cache/asyncqueue/AsyncEventQueue.html#getDispatcherThreads--
>> [2]
>> http://geode.apache.org/releases/latest/javadoc/org/apache/geode/cache/asyncqueue/AsyncEventQueueFactory.html#setDispatcherThreads-int-
>> [3]
>> http://geode.apache.org/docs/guide/17/reference/topics/cache_xml.html#async-event-queue
>> [4]
>> http://geode.apache.org/docs/guide/17/tools_modules/gfsh/command-pages/create.html#topic_ryz_pb1_dk
>>
>>
>> On Fri, Nov 2, 2018 at 9:56 AM, Rob Shepherd <[email protected]>
>> wrote:
>>
>>> Thank you Nabarun,
>>>
>>> Having started to pull out my config to send to you, I noticed the
>>> following in my cache.xml:
>>>
>>> <async-event-queue
>>>     id="expiry-event-queue"
>>>     parallel="false"
>>>     enable-batch-conflation="false"
>>>     disk-synchronous="true"
>>>     forward-expiration-destroy="true"
>>>         —-> batch-time-interval=“0"
>>>     batch-size="1"
>>>     >...
>>>
>>> …Which is a copy from the example here:
>>> https://github.com/apache/geode-examples/blob/master/async/scripts/start.gfsh
>>>
>>> create async-event-queue --id=example-async-event-queue \
>>>   --parallel=false \
>>>   --enable-batch-conflation=false \
>>>   --batch-size=1 \
>>>   --batch-time-interval=0 \
>>>   --listener=org.apache.geode_examples.async.ExampleAsyncEventListener
>>>
>>>
>>>
>>> I pondered on “batch-time-interval” and set it to 1000 and it has fixed
>>> the issue.
>>>
>>> I think I understand what this parameter is for and so a delay here
>>> would be tolerable.
>>>
>>>
>>>
>>> I have another question, if I set parallel=“true” the gfsh start server
>>> command hangs and I have to kill the new server process and the gfsh
>>> launcher.
>>>
>>> it is not important to me now, but i would like to evaluate this at some
>>> point and so i’ll happily try and debug the cause.
>>>
>>> Thanks
>>>
>>> Rob
>>>
>>>
>>>
>>>
>>> On 2 Nov 2018, at 16:22, Nabarun Nag <[email protected]> wrote:
>>>
>>> Hi Rob,
>>>
>>> We will look into this, meanwhile could you please elaborate on what
>>> configuration is Apache Geode running, like how many servers, how many AEQs
>>> regions etc, what workload is it running.
>>>
>>> Thank you
>>> Nabarun Nag
>>>
>>> On Nov 2, 2018, at 8:37 AM, Rob Shepherd <[email protected]> wrote:
>>>
>>> Hi,
>>>
>>> I’m using Geode (1.7.0)  locally (OSX) and on a server.  (Linux Arm64)
>>>
>>> On both I’m seeing maxed out CPUs.
>>>
>>> I’ve profiled it locally on a dormant server instance (no application
>>> activity) and the Async Queue routines are the highest contributor to CPU
>>> activity by a long stretch.
>>>
>>> <PastedGraphic-1.png>
>>>
>>> Back Traces - MethodTotal Time [%]Total Time [µs]Total Time (CPU)Samples
>>>
>>> org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderQueue.getHeadKey()
>>>
>>> 100.00% 2829377292 2829377292 8639
>>>
>>> .org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderQueue.getCurrentKey()
>>>
>>> 0.00% 0 0 8639
>>>
>>> ..org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderQueue.peekAhead()
>>>
>>> 0.00% 0 0 8263
>>>
>>> ...org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderQueue.peek()
>>>
>>> 1.21% 9906300 9906300 8180
>>>
>>> ....org.apache.geode.internal.cache.wan.AbstractGatewaySenderEventProcessor.processQueue()
>>>
>>> 100.00% 1144915695 1144915695 5
>>>
>>> .....org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderEventProcessor.run()
>>>
>>> 0.00% 0 0 5
>>>
>>>
>>> How can I determine if this is a problem with my setup or if it is a bug?
>>>
>>> A supposition:  I notice that there are multiple instances of a thread
>>> named after my Async Event queue ID
>>>
>>> Event Processor for GatewaySender_AsyncEventQueue_expiry-event-queue.1
>>> Event Processor for GatewaySender_AsyncEventQueue_expiry-event-queue.2
>>> Event Processor for GatewaySender_AsyncEventQueue_expiry-event-queue.3
>>> Event Processor for GatewaySender_AsyncEventQueue_expiry-event-queue.4
>>>
>>> Are there supposed to be 4?  are they interfering with each other
>>> (wait/notify) on an empty queue?
>>>
>>> Thanks for any insight
>>>
>>> Rob
>>>
>>>
>>>
>>>
>>
>>
>> --
>> -John
>> john.blum10101 (skype)
>>
>
>
>
> --
> -John
> john.blum10101 (skype)
>
>
> --
Rob Shepherd BEng PhD

Reply via email to