Cross-posting to dev
Folks, I'm confused by the issue discussed in this thread. Here is the scenario: - Start server node with a cache with POJO store configured. There is one type declared, read-through enabled. - Start client node and execute get() for a key that exists in underlying DB. - During deserialization on the client, 'Requesting mapping from grid failed for' exception is thrown. Specifying the type explicitly in BinaryConfiguration solves the issue, and I think I understand technical reasons for this. But is this really expected? Is it possible to fix the issue without requiring to provide this configuration? I thought we do not require to provide types in configuration as long as there is only one platform involved, am I wrong? If yes, we need to identify scenarios when this documentation is required and document them. -Val On Mon, Aug 14, 2017 at 4:23 AM, franck102 <[hidden email]> wrote: > My bad, here is the whole project. > > Franck ignite-binary-sample.zip > <http://apache-ignite-users.70518.x6.nabble.com/file/ > n16158/ignite-binary-sample.zip> > > > > -- > View this message in context: http://apache-ignite-users. > 70518.x6.nabble.com/Failure-to-deserialize-simple-model- > object-tp15440p16158.html > Sent from the Apache Ignite Users mailing list archive at Nabble.com. > |
Guys,
Does anyone has ideas? -Val On Mon, Aug 14, 2017 at 4:33 PM, Valentin Kulichenko < [hidden email]> wrote: > Cross-posting to dev > > Folks, > > I'm confused by the issue discussed in this thread. > > Here is the scenario: > - Start server node with a cache with POJO store configured. There is one > type declared, read-through enabled. > - Start client node and execute get() for a key that exists in underlying > DB. > - During deserialization on the client, 'Requesting mapping from grid > failed for' exception is thrown. > > Specifying the type explicitly in BinaryConfiguration solves the issue, > and I think I understand technical reasons for this. But is this really > expected? Is it possible to fix the issue without requiring to provide this > configuration? > > I thought we do not require to provide types in configuration as long as > there is only one platform involved, am I wrong? If yes, we need to > identify scenarios when this documentation is required and document them. > > -Val > > On Mon, Aug 14, 2017 at 4:23 AM, franck102 <[hidden email]> wrote: > >> My bad, here is the whole project. >> >> Franck ignite-binary-sample.zip >> <http://apache-ignite-users.70518.x6.nabble.com/file/n16158/ >> ignite-binary-sample.zip> >> >> >> >> -- >> View this message in context: http://apache-ignite-users.705 >> 18.x6.nabble.com/Failure-to-deserialize-simple-model-object- >> tp15440p16158.html >> Sent from the Apache Ignite Users mailing list archive at Nabble.com. >> > > |
I am fixing this issue:
https://issues.apache.org/jira/browse/IGNITE-5966?filter=-1 Reviewing it with Vladimir Ozerov and Sergey Chugunov: ---------------------------------- ПРОБЛЕМА “get” не работает для данных загруженных из cache store ROOT CAUSE There two separate type information stores: metadata store backed by the file system and binary marshaller’s “type ID -> type name” store. Binary marshaller use the latter one when deserialising objects. BinaryObjectBuilderImpl used by the CacheJdbcPojoStore updates only metadata store but not the marshaller mappings cache. Thus we get this issue described in the ticket. SOLUTION Update BinaryObjectBuilderImpl to add type mapping to the marshaller cache. On Fri, Aug 18, 2017 at 1:41 AM, Valentin Kulichenko < [hidden email]> wrote: > Guys, > > Does anyone has ideas? > > -Val > > On Mon, Aug 14, 2017 at 4:33 PM, Valentin Kulichenko < > [hidden email]> wrote: > >> Cross-posting to dev >> >> Folks, >> >> I'm confused by the issue discussed in this thread. >> >> Here is the scenario: >> - Start server node with a cache with POJO store configured. There is one >> type declared, read-through enabled. >> - Start client node and execute get() for a key that exists in underlying >> DB. >> - During deserialization on the client, 'Requesting mapping from grid >> failed for' exception is thrown. >> >> Specifying the type explicitly in BinaryConfiguration solves the issue, >> and I think I understand technical reasons for this. But is this really >> expected? Is it possible to fix the issue without requiring to provide this >> configuration? >> >> I thought we do not require to provide types in configuration as long as >> there is only one platform involved, am I wrong? If yes, we need to >> identify scenarios when this documentation is required and document them. >> >> -Val >> >> On Mon, Aug 14, 2017 at 4:23 AM, franck102 <[hidden email]> wrote: >> >>> My bad, here is the whole project. >>> >>> Franck ignite-binary-sample.zip >>> <http://apache-ignite-users.70518.x6.nabble.com/file/n16158/ >>> ignite-binary-sample.zip> >>> >>> >>> >>> -- >>> View this message in context: http://apache-ignite-users.705 >>> 18.x6.nabble.com/Failure-to-deserialize-simple-model-object- >>> tp15440p16158.html >>> Sent from the Apache Ignite Users mailing list archive at Nabble.com. >>> >> >> > -- Best regards, Alexey |
This is a suggested fix:
https://reviews.ignite.apache.org/ignite/review/IGNT-CR-269 On Fri, Aug 18, 2017 at 12:15 PM, kukushal . <[hidden email]> wrote: > I am fixing this issue: https://issues.apache.org/jira/browse/IGNITE-5966? > filter=-1 > Reviewing it with Vladimir Ozerov and Sergey Chugunov: > ---------------------------------- > ПРОБЛЕМА > “get” не работает для данных загруженных из cache store > ROOT CAUSE > There two separate type information stores: metadata store backed by the > file system and binary marshaller’s “type ID -> type name” store. Binary > marshaller use the latter one when deserialising objects. > BinaryObjectBuilderImpl used by the CacheJdbcPojoStore updates only > metadata store but not the marshaller mappings cache. Thus we get this > issue described in the ticket. > SOLUTION > Update BinaryObjectBuilderImpl to add type mapping to the marshaller cache. > > On Fri, Aug 18, 2017 at 1:41 AM, Valentin Kulichenko < > [hidden email]> wrote: > >> Guys, >> >> Does anyone has ideas? >> >> -Val >> >> On Mon, Aug 14, 2017 at 4:33 PM, Valentin Kulichenko < >> [hidden email]> wrote: >> >>> Cross-posting to dev >>> >>> Folks, >>> >>> I'm confused by the issue discussed in this thread. >>> >>> Here is the scenario: >>> - Start server node with a cache with POJO store configured. There is >>> one type declared, read-through enabled. >>> - Start client node and execute get() for a key that exists in >>> underlying DB. >>> - During deserialization on the client, 'Requesting mapping from grid >>> failed for' exception is thrown. >>> >>> Specifying the type explicitly in BinaryConfiguration solves the issue, >>> and I think I understand technical reasons for this. But is this really >>> expected? Is it possible to fix the issue without requiring to provide this >>> configuration? >>> >>> I thought we do not require to provide types in configuration as long as >>> there is only one platform involved, am I wrong? If yes, we need to >>> identify scenarios when this documentation is required and document them. >>> >>> -Val >>> >>> On Mon, Aug 14, 2017 at 4:23 AM, franck102 <[hidden email]> wrote: >>> >>>> My bad, here is the whole project. >>>> >>>> Franck ignite-binary-sample.zip >>>> <http://apache-ignite-users.70518.x6.nabble.com/file/n16158/ >>>> ignite-binary-sample.zip> >>>> >>>> >>>> >>>> -- >>>> View this message in context: http://apache-ignite-users.705 >>>> 18.x6.nabble.com/Failure-to-deserialize-simple-model-object- >>>> tp15440p16158.html >>>> Sent from the Apache Ignite Users mailing list archive at Nabble.com. >>>> >>> >>> >> > > > -- > Best regards, > Alexey > -- Best regards, Alexey |
Free forum by Nabble | Edit this page |