ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Larry Mark <larry.m...@principled.io>
Subject Re: write behind performance impacting main thread. Write behind buffer is never full
Date Fri, 03 Nov 2017 21:14:38 GMT
Alexey,

With our use case setting the coalesce off will probably make it worse, for
at least some caches we are doing many updates to the same key, one of the
reasons I am setting the batch size to 500.

I will send the cachestore implementation and some logs that show the
phenomenon early next week.  Thanks for your help.

Larry

On Fri, Nov 3, 2017 at 12:11 PM, Alexey Popov <tank2.alex@gmail.com> wrote:

> Hi,
>
> Can you share your cache store implementation?
>
> It could be several reasons for possible performance degradation in
> write-behind mode.
> Ignite can start flushing your cache values in main() thread if cacheSize
> becomes greater than 1,5 x setWriteBehindFlushSize. It is a common case but
> it does not look like your case.
>
> WriteBehind implementation could use ReentrantReadWriteLock while you
> insert/update the Cache entries in your main thread. WriteBehind background
> threads use these locks when they read and flush entries.
> Such WriteBehind implementation is used when writeCoalescing is turned on
> by
> setWriteBehindCoalescing(true); BTW, the default value is TRUE. Actually,
> it
> makes sense only when you configure several flush threads
> (setWriteBehindFlushThreadCount(X)) to have a real concurrency in multiple
> reads and writes.
>
> It is hard to believe that it could slow down your main() thread, but
> please
> check: just add setWriteBehindCoalescing(false) to your config and try
> your
> tests again.
>
> Thanks,
> Alexey
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Mime
View raw message