ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Denis Magda <dma...@apache.org>
Subject Re: question: How data are stored in IgniteCache?
Date Mon, 17 Apr 2017 18:20:12 GMT
It depends on a storage. If it’s a relational database and isStoreKeepBinary is false then
an object will be deserialized upon the store invocation and the storage will insert or update
a record using “INSERT * ..” or “UPDATE * …” statements. Take a look at the code.

—
Denis

> On Apr 17, 2017, at 5:04 AM, Vyacheslav Daradur <daradurvs@gmail.com> wrote:
> 
>>> When you transfer an object over the wire or put it into a persistent
> store (withKeepBinary property enabled) then only the byte array is used.
> If we put objects into persistent store and withKeepBinary property is
> DISABLED, in wich form it will be stored?
> 
> 2017-04-16 18:29 GMT+03:00 Denis Magda <dmagda@apache.org>:
> 
>> 1. When you transfer an object over the wire or put it into a persistent
>> store (withKeepBinary property enabled) then only the byte array is used.
>> 2. No
>> 
>> —
>> Denis
>> 
>>> On Apr 15, 2017, at 1:51 PM, Vyacheslav Daradur <daradurvs@gmail.com>
>> wrote:
>>> 
>>>>> If we use a cache which is configured to use binary mashaller:
>>>>> 1. In which cases a placed in the cache object (serialized object)
>> won't
>>> be wrapped?
>>>>> 2. In which cases a placed in the cache object won't be serialized (to
>>> byte array) and will be stored as is?
>>> 
>>> I meant: Are there any cases of described (1,2) situations.
>>> If yes, which cases?
>>> 
>>> 2017-04-15 23:44 GMT+03:00 Vyacheslav Daradur <daradurvs@gmail.com>:
>>> 
>>>> If we use a cache which is configured to use binary mashaller:
>>>> 1. In which cases a placed in the cache object (serialized object) won't
>>>> be wrapped?
>>>> 2. In which cases a placed in the cache object won't be serialized (to
>>>> byte array) and will be stored as is?
>>>> 
>>>> 2017-04-14 20:03 GMT+03:00 Denis Magda <dmagda@apache.org>:
>>>> 
>>>>> If a serialized object is stored in an on-heap cache then it will be
>>>>> wrapped by BinaryObjectImp but if it’s an off-heap cache then
>>>>> BinaryObjectOffHeapImpl is used instead.
>>>>> 
>>>>> —
>>>>> Denis
>>>>> 
>>>>>> On Apr 14, 2017, at 12:32 AM, Vyacheslav Daradur <daradurvs@gmail.com
>>> 
>>>>> wrote:
>>>>>> 
>>>>>>>> when it’s stored in memory in a specific cache partition
>>>>>> Does that mean that any serialized object is always stored IN MEMORY
>> as
>>>>> is
>>>>>> wrapped by BinaryObjectImpl?
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 2017-04-14 3:42 GMT+03:00 Denis Magda <dmagda@apache.org>:
>>>>>> 
>>>>>>> A serialized object is always wrapped by BinaryObjectImpl when
it’s
>>>>> stored
>>>>>>> in memory in a specific cache partition or you access it from
your
>>>>>>> application in a form of BinaryObject. However, when you transfer
the
>>>>>>> object over the wire or put it into a persistent store
>> (withKeepBinary
>>>>>>> property enabled) then only the byte array is used.
>>>>>>> 
>>>>>>> —
>>>>>>> Denis
>>>>>>> 
>>>>>>>> On Apr 13, 2017, at 12:21 AM, Vyacheslav Daradur <
>> daradurvs@gmail.com
>>>>>> 
>>>>>>> wrote:
>>>>>>>> 
>>>>>>>> Denis, thank you for answers.
>>>>>>>> 
>>>>>>>> I meant another.
>>>>>>>> 
>>>>>>>> For example:
>>>>>>>> Cache queries use a BinaryObjectImpl and a withKeepBinary-mode
use
>>>>> it, so
>>>>>>>> looks like all actions on serialized object are make via
a
>>>>>>> BinaryObjectImpl.
>>>>>>>> 
>>>>>>>> Does a serialized object always is stored as BinaryObjectImpl
or it
>>>>> will
>>>>>>> be
>>>>>>>> wrapped on demand?
>>>>>>>> 
>>>>>>>> 2017-04-12 22:34 GMT+03:00 Denis Magda <dmagda@apache.org>:
>>>>>>>> 
>>>>>>>>> A Java wrapper around an actual binary byte array with
some
>>>>> additional
>>>>>>>>> fields and methods to work with the serialized data.
>>>>>>>>> 
>>>>>>>>> —
>>>>>>>>> Denis
>>>>>>>>> 
>>>>>>>>>> On Apr 12, 2017, at 8:33 AM, Vyacheslav Daradur <
>>>>> daradurvs@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>> In what cases BinaryObjecImpl is used?
>>>>>>>>>> 
>>>>>>>>>> 2017-04-12 18:08 GMT+03:00 Denis Magda <dmagda@apache.org>:
>>>>>>>>>> 
>>>>>>>>>>> Hi,
>>>>>>>>>>> 
>>>>>>>>>>> A cache entry is always stored in a binary format
(byte array)
>> in a
>>>>>>>>> cache.
>>>>>>>>>>> Even when you transfer an entry from one node
to another, as a
>>>>> result
>>>>>>> of
>>>>>>>>>>> cache.put(…), operation the entry will be serialized
into the
>>>>> binary
>>>>>>>>> format
>>>>>>>>>>> and transferred over the wire.
>>>>>>>>>>> 
>>>>>>>>>>> —
>>>>>>>>>>> Denis
>>>>>>>>>>> 
>>>>>>>>>>>> On Apr 12, 2017, at 1:11 AM, Vyacheslav Daradur
<
>>>>> daradurvs@gmail.com
>>>>>>>> 
>>>>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> Hello Igniters!
>>>>>>>>>>>> 
>>>>>>>>>>>> I have one conceptual question:
>>>>>>>>>>>> 
>>>>>>>>>>>> When we put an object in IgniteCache, how
it is stored?
>>>>>>>>>>>> 
>>>>>>>>>>>> As I understand, after marshalling we have
an array of bytes,
>>>>>>>>>>>> 1) in a local node it is wrapped in BinaryObjectImpl
and stored
>> in
>>>>>>>>> memory
>>>>>>>>>>>> 2) it is sent to remote node as byte array
where it will be
>>>>> wrapped
>>>>>>> in
>>>>>>>>>>>> BinaryObjectImpl and be stored in memory
>>>>>>>>>>>> 
>>>>>>>>>>>> --
>>>>>>>>>>>> Best Regards, Vyacheslav
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> --
>>>>>>>>>> Best Regards, Vyacheslav
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> --
>>>>>>>> Best Regards, Vyacheslav
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Best Regards, Vyacheslav
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> --
>>>> Best Regards, Vyacheslav
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> Best Regards, Vyacheslav
>> 
>> 
> 
> 
> -- 
> Best Regards, Vyacheslav


Mime
View raw message