Hi there Aashish,

Thank for that information. From the info provided, 10-30s is crazy!

One thing that just came to mind.. are you running virtualized? Maybe noisy neighbours? This would not show up with normal Geode logs or stats.

--Udo


On 10/30/18 10:16, aashish choudhary wrote:
Hi Udo,

To answer your questions.

  * How many keys are part of the getAll() request. Keys are very
    small in size for some requests it was 10 for some it was 30 or
    something. getAll time was above 10 seconds most of the time for
    above cases and 30 seconds was max.
  * How large are your value objects? It's not very large. All it has
    is collections of some object. Object has just two attributes.
  * Is this request made from a client? Yes from a client.
  * Is there any memory pressure on the client? Are there any gc's
    taking place at that time? Not that we have observed so far as per
    our investigation. We have gc logs enabled for client application
    and we have not seen any 'stop the world' scenario.
  * Have you configured a CacheLoader? No
  * What about eviction and eviction thresholds. No.

Do we know like how much time a client application can take because of this bug if this at all related to our case.

We will be enabling stats for our client application to see if something comes up there.

I agree single-hop enabled or not 30 seconds is a lot for any system to give back response. Also as Charlie and Mike suggested we will do a profiling and network monitoring for client application. For network issue a normal ping for Gemfire servers from the machine where client apps are running is very fast. If that was the question.


With best regards,
Ashish

On Sat, Oct 27, 2018, 12:29 AM Udo Kohlmeyer <u...@apache.org <mailto:u...@apache.org>> wrote:

    Hi there Aashish,

    Could you possibly provide a little more information, as to the
    getAll() operation.

    Just for interest sake:

      * How many keys are part of the getAll() request
      * How large are your value objects?
      * Is this request made from a client?
      * Is there any memory pressure on the client? Are there any gc's
        taking place at that time?
      * Have you configured a CacheLoader?
      * What about eviction and eviction thresholds.

    The reason I'm asking is that when you initiate a getAll() the
    server(s) might be able to respond in a reasonable time frame,
    BUT, if there keys/values are really large, you might be seeing
    that the servers spend some time serializing the data. When that
    data is returned to the client, the client needs to provision all
    that space for the deserialized data. Given that Geode operations
    are not yet streaming enabled, means that you hit "all-or-nothing"
    semantics. Which means, to retrieve the result from the getAll,
    requires all the data to have been delivered and deserialized
    before it is made available as a response object.

    Even with non-single hop enabled, I do not see any real reason as
    to the 30s response times. So there must be other factors here...

    Maybe to help us, try and help you, some more information about
    operation, key/values sizes, amount of keys, gc state, logs could
    be more helpful.


    --Udo


    On 10/25/18 11:36, aashish choudhary wrote:
    Hi,

    We have an issue wherein our getAll operations are taking too
    long to respond (in some cases as high as 30 seconds) which is
    not acceptable from IMDG like Geode. Also this seems to be an
    existing issue as per the link given below and being fixed in 1.8
    version.
    https://issues.apache.org/jira/browse/GEODE-5649
    We are on version 1.2 and wanted to confirm if this issue exits
    in that version too. If yes is there any workaround for that?.
    Not sure if 1.8 is available for download.


    With best regards,
    Ashish


Reply via email to