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 |
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 <[hidden email]> 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 |
In what cases BinaryObjecImpl is used?
2017-04-12 18:08 GMT+03:00 Denis Magda <[hidden email]>: > 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 <[hidden email]> > 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 |
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 <[hidden email]> wrote: > > In what cases BinaryObjecImpl is used? > > 2017-04-12 18:08 GMT+03:00 Denis Magda <[hidden email]>: > >> 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 <[hidden email]> >> 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 |
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 <[hidden email]>: > 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 <[hidden email]> > wrote: > > > > In what cases BinaryObjecImpl is used? > > > > 2017-04-12 18:08 GMT+03:00 Denis Magda <[hidden email]>: > > > >> 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 <[hidden email]> > >> 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 |
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 <[hidden email]> 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 <[hidden email]>: > >> 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 <[hidden email]> >> wrote: >>> >>> In what cases BinaryObjecImpl is used? >>> >>> 2017-04-12 18:08 GMT+03:00 Denis Magda <[hidden email]>: >>> >>>> 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 <[hidden email]> >>>> 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 |
>> 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 <[hidden email]>: > 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 <[hidden email]> > 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 <[hidden email]>: > > > >> 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 <[hidden email]> > >> wrote: > >>> > >>> In what cases BinaryObjecImpl is used? > >>> > >>> 2017-04-12 18:08 GMT+03:00 Denis Magda <[hidden email]>: > >>> > >>>> 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 <[hidden email] > > > >>>> 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 |
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 <[hidden email]> 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 <[hidden email]>: > >> 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 <[hidden email]> >> 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 <[hidden email]>: >>> >>>> 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 <[hidden email]> >>>> wrote: >>>>> >>>>> In what cases BinaryObjecImpl is used? >>>>> >>>>> 2017-04-12 18:08 GMT+03:00 Denis Magda <[hidden email]>: >>>>> >>>>>> 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 <[hidden email] >>> >>>>>> 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 |
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 <[hidden email]>: > 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 <[hidden email]> > 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 <[hidden email]>: > > > >> 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 <[hidden email]> > >> 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 <[hidden email]>: > >>> > >>>> 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 <[hidden email] > > > >>>> wrote: > >>>>> > >>>>> In what cases BinaryObjecImpl is used? > >>>>> > >>>>> 2017-04-12 18:08 GMT+03:00 Denis Magda <[hidden email]>: > >>>>> > >>>>>> 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 < > [hidden email] > >>> > >>>>>> 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 |
>> 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 <[hidden email]>: > 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 <[hidden email]>: > >> 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 <[hidden email]> >> 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 <[hidden email]>: >> > >> >> 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 <[hidden email] >> > >> >> 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 <[hidden email]>: >> >>> >> >>>> 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 < >> [hidden email]> >> >>>> wrote: >> >>>>> >> >>>>> In what cases BinaryObjecImpl is used? >> >>>>> >> >>>>> 2017-04-12 18:08 GMT+03:00 Denis Magda <[hidden email]>: >> >>>>> >> >>>>>> 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 < >> [hidden email] >> >>> >> >>>>>> 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 |
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 <[hidden email]> 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 <[hidden email]>: > >> 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 <[hidden email]>: >> >>> 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 <[hidden email]> >>> 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 <[hidden email]>: >>>> >>>>> 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 <[hidden email] >>>> >>>>> 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 <[hidden email]>: >>>>>> >>>>>>> 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 < >>> [hidden email]> >>>>>>> wrote: >>>>>>>> >>>>>>>> In what cases BinaryObjecImpl is used? >>>>>>>> >>>>>>>> 2017-04-12 18:08 GMT+03:00 Denis Magda <[hidden email]>: >>>>>>>> >>>>>>>>> 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 < >>> [hidden email] >>>>>> >>>>>>>>> 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 |
>> 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 <[hidden email]>: > 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 <[hidden email]> > 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 <[hidden email]>: > > > >> 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 <[hidden email]>: > >> > >>> 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 <[hidden email] > > > >>> 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 <[hidden email]>: > >>>> > >>>>> 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 < > [hidden email] > >>>> > >>>>> 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 <[hidden email]>: > >>>>>> > >>>>>>> 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 < > >>> [hidden email]> > >>>>>>> wrote: > >>>>>>>> > >>>>>>>> In what cases BinaryObjecImpl is used? > >>>>>>>> > >>>>>>>> 2017-04-12 18:08 GMT+03:00 Denis Magda <[hidden email]>: > >>>>>>>> > >>>>>>>>> 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 < > >>> [hidden email] > >>>>>> > >>>>>>>>> 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 |
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 <[hidden email]> 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 <[hidden email]>: > >> 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 <[hidden email]> >> 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 <[hidden email]>: >>> >>>> 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 <[hidden email]>: >>>> >>>>> 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 <[hidden email] >>> >>>>> 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 <[hidden email]>: >>>>>> >>>>>>> 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 < >> [hidden email] >>>>>> >>>>>>> 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 <[hidden email]>: >>>>>>>> >>>>>>>>> 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 < >>>>> [hidden email]> >>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> In what cases BinaryObjecImpl is used? >>>>>>>>>> >>>>>>>>>> 2017-04-12 18:08 GMT+03:00 Denis Magda <[hidden email]>: >>>>>>>>>> >>>>>>>>>>> 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 < >>>>> [hidden email] >>>>>>>> >>>>>>>>>>> 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 |
Denis, thanks a lot for your explanations.
2017-04-17 21:20 GMT+03:00 Denis Magda <[hidden email]>: > 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 <[hidden email]> > 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 <[hidden email]>: > > > >> 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 <[hidden email]> > >> 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 <[hidden email]>: > >>> > >>>> 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 <[hidden email]>: > >>>> > >>>>> 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 < > [hidden email] > >>> > >>>>> 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 <[hidden email]>: > >>>>>> > >>>>>>> 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 < > >> [hidden email] > >>>>>> > >>>>>>> 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 <[hidden email]>: > >>>>>>>> > >>>>>>>>> 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 < > >>>>> [hidden email]> > >>>>>>>>> wrote: > >>>>>>>>>> > >>>>>>>>>> In what cases BinaryObjecImpl is used? > >>>>>>>>>> > >>>>>>>>>> 2017-04-12 18:08 GMT+03:00 Denis Magda <[hidden email]>: > >>>>>>>>>> > >>>>>>>>>>> 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 < > >>>>> [hidden email] > >>>>>>>> > >>>>>>>>>>> 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 > > -- Best Regards, Vyacheslav |
Free forum by Nabble | Edit this page |