Re: copyOnRead to false

2017-11-29 Thread ezhuravlev
Hi Colin,

I would suggest you send a new message to user list with a detailed
description of your use case, I think the community could check it and give
some comments.

Evgenii



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


Re: copyOnRead to false

2017-10-22 Thread colinc
Benchmarks I've run on this flag and tests on mutating the entry
(acknowledging that this would be bad practice in production) - agree with
Evgenii's comments. Namely that this attribute has an effect for on-heap
caches (I'm using 2.1). I find it has more of an effect in cases where he
same records are read multiple times - as compared with a single scan type
operation. The effect is about 50% faster than when using off heap storage
only.

Having said this, it is still 100 times slower than a hashmap for local read
operations. For the benefit of my understanding, what is likely to be taking
the time in this case? The mutation test suggests that there is no
marshalling/copying. Is there anything we can configure to improve on this?

Regards,
Colin.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


Re: copyOnRead to false

2017-09-06 Thread steve.hostett...@gmail.com
HI,I am using 1.9 and according to your explanation neither does it  make sense to me. Thanks anyway for explaining the precise semantics. I will try to change some parameters of the tests to see if I can come up with some meaningful explanation.Thanks againSteve Original Message Subject: Re: copyOnRead to falseFrom: Evgenii Zhuravlev To: user@ignite.apache.orgCC: Hi,I want to clarify about usage copyOnRead=False:As far as I know, It should help in 1.x releases, with the default configuration, when entries stored in onheap and in 2.x releases, with _onHeapCacheEnabled_=true(it's not default). I think we should mention this in the documentation.Also, it shouldn't affect behavior in 2.x without enabled on heap cache, so, It's not clear to me why you get performance degradation.Evgenii2017-09-05 10:36 GMT+03:00 steve.hostettler :Hello,

thanks for the answer. The benchmark is actually our application stressed
with several volumes. Some quite complex to describe. However, for these
benchmarks we are only using one node.

Basically we are loading a set of caches from the database, do a lot of
querying both ScanQuery (on BinaryObjects) and SQLQueries.

Most of what we are doing is read only with lot of computations (at least we
segregated the caches that are r/w)

Based on what you described, I should witness an performance improvment.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/



Re: copyOnRead to false

2017-09-05 Thread Evgenii Zhuravlev
Hi,

I want to clarify about usage copyOnRead=False:
As far as I know, It should help in 1.x releases, with the default
configuration, when entries stored in onheap and in 2.x releases, with
onHeapCacheEnabled=true(it's not default). I think we should mention this
in the documentation.

Also, it shouldn't affect behavior in 2.x without enabled on heap cache,
so, It's not clear to me why you get performance degradation.

Evgenii

2017-09-05 10:36 GMT+03:00 steve.hostettler <steve.hostett...@gmail.com>:

> Hello,
>
> thanks for the answer. The benchmark is actually our application stressed
> with several volumes. Some quite complex to describe. However, for these
> benchmarks we are only using one node.
>
> Basically we are loading a set of caches from the database, do a lot of
> querying both ScanQuery (on BinaryObjects) and SQLQueries.
>
> Most of what we are doing is read only with lot of computations (at least
> we
> segregated the caches that are r/w)
>
> Based on what you described, I should witness an performance improvment.
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: copyOnRead to false

2017-09-05 Thread steve.hostettler
Hello,

thanks for the answer. The benchmark is actually our application stressed
with several volumes. Some quite complex to describe. However, for these
benchmarks we are only using one node.

Basically we are loading a set of caches from the database, do a lot of
querying both ScanQuery (on BinaryObjects) and SQLQueries.

Most of what we are doing is read only with lot of computations (at least we
segregated the caches that are r/w)

Based on what you described, I should witness an performance improvment.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


Re: copyOnRead to false

2017-09-04 Thread ezhuravlev
Hi,

Could you describe your benchmarks? So we can understand whats could be
wrong here.

If the value is fetched from a remote node, you will always get a copy. If
you get the value locally, you can force Ignite to return the stored
instance by setting CacheConfiguration.setCopyOnRead(false) property, but
this should be used only in read-only scenario. It's not safe to modify this
instance because the serialized form will not be updated until you call
cache.put(), so the one that reads it will potentially get the old value.
Additionally, it can be concurrently serialized which can cause data
corruption. 

If you use BinaryMarshaller, with copyOnRead flag, Ignite stores serialized
copy in heap and do not copy object on each "get" (if the object does not
change after "get"):

Please share info about your benchmarks(or code) to investigation of this
problem.

Evgenii 



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


copyOnRead to false

2017-09-03 Thread steve.hostettler
Hello,

we did some benchmarks and did set the copyOnRead flag to false and it did
increase the processing time and the memory a little bit (10%). I cannot
figure out why this would be case since my understanding is that if anything
it should reduce the processing time by avoiding a clone.

One note: we heavely use the BinaryMarshaller and BinaryObjects without
deserializalation. Maybe this has an impact.

Many Thanks in advance

Steve




--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/