[jira] [Commented] (IGNITE-2894) Binary object inside of Externalizable still serialized with OptimizedMarshaller
[ https://issues.apache.org/jira/browse/IGNITE-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16465753#comment-16465753 ] Vladimir Ozerov commented on IGNITE-2894: - [~NSAmelchev], [~dpavlov], Folks, At this point I am not sure whether product needs this change. We do not see consistent flow of problems with our binary serialization engine. Complex {{Externalizable}} objects are rarely used in data models, they cannot be queried, and in general we consider their usage as antipattern. At the same time this change introduce serious protocol changes: New mode is enabled by default, so all users of our persistence will have difficulties with migration. Also some special case for hash code calculation is introduced. Some new special cases for {{GridCacheInternal}} and {{AffinityKey}} are introduced. All this would be rather complex to explain and understand. I propose to either put this feature on hold until AI 3.0 where we will try to remove {{OptimizedMarshaller}}, or make sure that dafault behavior remained the same. > Binary object inside of Externalizable still serialized with > OptimizedMarshaller > > > Key: IGNITE-2894 > URL: https://issues.apache.org/jira/browse/IGNITE-2894 > Project: Ignite > Issue Type: Bug > Components: binary >Affects Versions: 1.5.0.final >Reporter: Valentin Kulichenko >Assignee: Amelchev Nikita >Priority: Critical > Labels: community, customer, iep-2 > Fix For: 2.6 > > > When binary marshaller meets an Externalizable object, it switches to > optimized marshaller. And if there is a regular object inside, it's still > serialized with optimized, even if its type is declared in binary > configuration with custom mapper, etc. > Essentially, binary marshaller should fully support Java serialization, > including {{Externalizable}} and {{writeObject}}/{{readObject}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-2894) Binary object inside of Externalizable still serialized with OptimizedMarshaller
[ https://issues.apache.org/jira/browse/IGNITE-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16448153#comment-16448153 ] Dmitriy Pavlov commented on IGNITE-2894: [~vozerov] could you check this change now? 2.5 scope freeze is soon > Binary object inside of Externalizable still serialized with > OptimizedMarshaller > > > Key: IGNITE-2894 > URL: https://issues.apache.org/jira/browse/IGNITE-2894 > Project: Ignite > Issue Type: Bug > Components: binary >Affects Versions: 1.5.0.final >Reporter: Valentin Kulichenko >Assignee: Amelchev Nikita >Priority: Critical > Labels: community, customer, iep-2 > Fix For: 2.6 > > > When binary marshaller meets an Externalizable object, it switches to > optimized marshaller. And if there is a regular object inside, it's still > serialized with optimized, even if its type is declared in binary > configuration with custom mapper, etc. > Essentially, binary marshaller should fully support Java serialization, > including {{Externalizable}} and {{writeObject}}/{{readObject}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-2894) Binary object inside of Externalizable still serialized with OptimizedMarshaller
[ https://issues.apache.org/jira/browse/IGNITE-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16330120#comment-16330120 ] Vladimir Ozerov commented on IGNITE-2894: - Out of scope for 2.4 release. Makes sense to re-target to 2.5 because I of serious impact. > Binary object inside of Externalizable still serialized with > OptimizedMarshaller > > > Key: IGNITE-2894 > URL: https://issues.apache.org/jira/browse/IGNITE-2894 > Project: Ignite > Issue Type: Bug > Components: binary >Affects Versions: 1.5.0.final >Reporter: Valentin Kulichenko >Assignee: Amelchev Nikita >Priority: Critical > Labels: community, customer, iep-2 > Fix For: 2.5 > > > When binary marshaller meets an Externalizable object, it switches to > optimized marshaller. And if there is a regular object inside, it's still > serialized with optimized, even if its type is declared in binary > configuration with custom mapper, etc. > Essentially, binary marshaller should fully support Java serialization, > including {{Externalizable}} and {{writeObject}}/{{readObject}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-2894) Binary object inside of Externalizable still serialized with OptimizedMarshaller
[ https://issues.apache.org/jira/browse/IGNITE-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16200044#comment-16200044 ] Amelchev Nikita commented on IGNITE-2894: - [~vozerov] I have done without deserialization on servers. Could you review, please? > Binary object inside of Externalizable still serialized with > OptimizedMarshaller > > > Key: IGNITE-2894 > URL: https://issues.apache.org/jira/browse/IGNITE-2894 > Project: Ignite > Issue Type: Bug > Components: binary >Affects Versions: 1.5.0.final >Reporter: Valentin Kulichenko >Assignee: Amelchev Nikita >Priority: Critical > Labels: community, customer, iep-2 > Fix For: 2.4 > > > When binary marshaller meets an Externalizable object, it switches to > optimized marshaller. And if there is a regular object inside, it's still > serialized with optimized, even if its type is declared in binary > configuration with custom mapper, etc. > Essentially, binary marshaller should fully support Java serialization, > including {{Externalizable}} and {{writeObject}}/{{readObject}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (IGNITE-2894) Binary object inside of Externalizable still serialized with OptimizedMarshaller
[ https://issues.apache.org/jira/browse/IGNITE-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16185817#comment-16185817 ] Vladimir Ozerov commented on IGNITE-2894: - Moving to 2.4 due to huge impact. > Binary object inside of Externalizable still serialized with > OptimizedMarshaller > > > Key: IGNITE-2894 > URL: https://issues.apache.org/jira/browse/IGNITE-2894 > Project: Ignite > Issue Type: Bug > Components: binary >Affects Versions: 1.5.0.final >Reporter: Valentin Kulichenko >Assignee: Amelchev Nikita >Priority: Critical > Labels: community, customer, iep-2 > Fix For: 2.4 > > > When binary marshaller meets an Externalizable object, it switches to > optimized marshaller. And if there is a regular object inside, it's still > serialized with optimized, even if its type is declared in binary > configuration with custom mapper, etc. > Essentially, binary marshaller should fully support Java serialization, > including {{Externalizable}} and {{writeObject}}/{{readObject}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (IGNITE-2894) Binary object inside of Externalizable still serialized with OptimizedMarshaller
[ https://issues.apache.org/jira/browse/IGNITE-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16153157#comment-16153157 ] Vladimir Ozerov commented on IGNITE-2894: - [~NSAmelchev], I looked at the implementation and have questions about the design. Let's continue discussion on the dev list. > Binary object inside of Externalizable still serialized with > OptimizedMarshaller > > > Key: IGNITE-2894 > URL: https://issues.apache.org/jira/browse/IGNITE-2894 > Project: Ignite > Issue Type: Bug > Components: general >Affects Versions: 1.5.0.final >Reporter: Valentin Kulichenko >Assignee: Amelchev Nikita >Priority: Critical > Labels: community, customer > Fix For: 2.3 > > > When binary marshaller meets an Externalizable object, it switches to > optimized marshaller. And if there is a regular object inside, it's still > serialized with optimized, even if its type is declared in binary > configuration with custom mapper, etc. > Essentially, binary marshaller should fully support Java serialization, > including {{Externalizable}} and {{writeObject}}/{{readObject}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (IGNITE-2894) Binary object inside of Externalizable still serialized with OptimizedMarshaller
[ https://issues.apache.org/jira/browse/IGNITE-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16152265#comment-16152265 ] Amelchev Nikita commented on IGNITE-2894: - [~vozerov] Could you review, please? > Binary object inside of Externalizable still serialized with > OptimizedMarshaller > > > Key: IGNITE-2894 > URL: https://issues.apache.org/jira/browse/IGNITE-2894 > Project: Ignite > Issue Type: Bug > Components: general >Affects Versions: 1.5.0.final >Reporter: Valentin Kulichenko >Assignee: Amelchev Nikita >Priority: Critical > Labels: community, customer > Fix For: 2.3 > > > When binary marshaller meets an Externalizable object, it switches to > optimized marshaller. And if there is a regular object inside, it's still > serialized with optimized, even if its type is declared in binary > configuration with custom mapper, etc. > Essentially, binary marshaller should fully support Java serialization, > including {{Externalizable}} and {{writeObject}}/{{readObject}}. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (IGNITE-2894) Binary object inside of Externalizable still serialized with OptimizedMarshaller
[ https://issues.apache.org/jira/browse/IGNITE-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16054248#comment-16054248 ] ASF GitHub Bot commented on IGNITE-2894: GitHub user NSAmelchev opened a pull request: https://github.com/apache/ignite/pull/2160 IGNITE-2894 - Add support Externalizable in BinaryMarshaller. - Use type Object(103) for Externalizable objects. You can merge this pull request into a Git repository by running: $ git pull https://github.com/NSAmelchev/ignite IGNITE-2894 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/ignite/pull/2160.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #2160 commit bca9756cc4fbe3e89fbc29453d94619d2f90c95b Author: NSAmelchev Date: 2017-02-07T14:04:02Z Merge remote-tracking branch 'refs/remotes/apache/master' commit fc8ed83579ee9781061490041c0cce553c9a4025 Author: NSAmelchev Date: 2017-03-27T12:45:44Z Merge remote-tracking branch 'refs/remotes/apache/master' commit 1c7493cbb5de000f1c131745c90b93d7b57d4d50 Author: NSAmelchev Date: 2017-04-04T09:50:52Z Merge remote-tracking branch 'refs/remotes/apache/master' commit 91703d9004a4f68bfd2ca694c93b6c3b2fb45101 Author: NSAmelchev Date: 2017-04-17T12:06:48Z Merge remote-tracking branch 'refs/remotes/apache/master' commit 7e0e55e52812d605cde570ca5b50c5764d69e0fb Author: NSAmelchev Date: 2017-04-25T09:27:33Z Merge remote-tracking branch 'refs/remotes/apache/master' commit e603cc6107b6a972d752fb2176bf1d1461058584 Author: NSAmelchev Date: 2017-04-27T14:23:21Z Merge branch 'master' of https://github.com/apache/ignite commit e66897fddff3818c136e9d9afebe5b4bec802abe Author: NSAmelchev Date: 2017-05-04T08:35:19Z Merge remote-tracking branch 'refs/remotes/apache/master' commit 2f58e9eec7c1f55e80c5dd99ae8e907d628992c6 Author: NSAmelchev Date: 2017-05-04T10:17:14Z support the Externalizable in BM commit ef7648d7528bdf8ca789520ef3044003941d0dec Author: NSAmelchev Date: 2017-05-04T12:23:06Z Some fix commit 21ea1192266ceea27be04cd2f3df5fbe2ad23a9c Author: NSAmelchev Date: 2017-05-10T13:38:26Z Some fix commit 6df725446d4a7db3f6e8d913724389c08fe3a5da Author: NSAmelchev Date: 2017-05-10T15:07:07Z Some fix commit 339b220307c69c29998d7b24f3aff14a67aea982 Author: NSAmelchev Date: 2017-05-11T16:46:17Z Some fix BinaryObject commit e8068b07fb8a7079385b113da821587fef4348c4 Author: NSAmelchev Date: 2017-05-18T10:17:40Z Merge remote-tracking branch 'refs/remotes/apache/master' commit fd9c2823571130cd4093a20e7d46563df6f4aade Author: NSAmelchev Date: 2017-05-22T13:35:26Z Merge branch 'master' of https://github.com/apache/ignite commit 39672adaa5a9ca0c91142ffd0fb65bc9a3fe83aa Author: NSAmelchev Date: 2017-05-22T13:39:19Z Merge remote-tracking branch 'apache/master' into IGNITE-2894 commit 2faae43ba7afd32e21f9906ff67d945a8426c352 Author: NSAmelchev Date: 2017-05-24T15:04:11Z Fix for externalizable object without shema in BinaryObjectBuilderImpl commit a6ef73c5fc8421050a59a5517fb473e4f5020031 Author: NSAmelchev Date: 2017-05-24T15:09:36Z Merge remote-tracking branch 'refs/remotes/origin/master' into IGNITE-2894 commit d3520807ff1dad53b892b6e30125dc57f406ed80 Author: NSAmelchev Date: 2017-05-24T15:22:17Z Delete unnecessary condition and refactoring commit 481e5e9ff24b23fb8616e1ce17ec47aab32c2e53 Author: NSAmelchev Date: 2017-05-26T14:16:51Z Merge remote-tracking branch 'apache/master' commit eb1213c6ca284ee1afe1858c2f433f232cadcf6b Author: NSAmelchev Date: 2017-05-29T11:51:00Z Merge remote-tracking branch 'apache/master' commit ffcde8913d68964207b4d9f85ea1de431c24d80d Author: NSAmelchev Date: 2017-05-30T14:15:01Z Merge remote-tracking branch 'origin/master' into IGNITE-2894 commit bc30bacf14d4794af3ff38e2221da59aa605ba41 Author: NSAmelchev Date: 2017-05-31T13:06:51Z Replace magic const commit ae572f4b856cb7112d9acbea093e53ae01bc7a7f Author: NSAmelchev Date: 2017-05-31T13:15:51Z Delete comment commit aa6ce9865ab3b8dbbceb474b3b66cb82e281c720 Author: NSAmelchev Date: 2017-06-08T08:44:16Z Refactoring code commit e33d2fbf411be0b60e9064d0759c6115c7a3b6d8 Author: NSAmelchev Date: 2017-06-08T09:36:35Z Add some tests commit e6a56841db0190a936775f12be78b7cc6e48e129 Author: NSAmelchev Date: 2017-06-08T11:45:34Z Delete comments commit 1730aaf53976d6ea8fbe3090a8dadec7c1e14430 Author: NSAmelchev Date: 2017-06-15T15:14:06Z Fix. Write as raw. commit ec8b1e0345086747e22cd99fda24df46a661ca6e Author: NSAmelchev Date: 2017-06-15T15:27:17Z Replace Ext before Object and after Binary commit ccd51b8a3a4f84ad4de4be86098c7b7313a37b70 Author: NSAmelchev
[jira] [Commented] (IGNITE-2894) Binary object inside of Externalizable still serialized with OptimizedMarshaller
[ https://issues.apache.org/jira/browse/IGNITE-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15826750#comment-15826750 ] Denis Magda commented on IGNITE-2894: - [~NSAmelchev] > Binary object inside of Externalizable still serialized with > OptimizedMarshaller > > > Key: IGNITE-2894 > URL: https://issues.apache.org/jira/browse/IGNITE-2894 > Project: Ignite > Issue Type: Bug > Components: general >Affects Versions: 1.5.0.final >Reporter: Valentin Kulichenko >Assignee: Amelchev Nikita >Priority: Critical > Labels: community, customer, important > Fix For: 2.0 > > > When binary marshaller meets an Externalizable object, it switches to > optimized marshaller. And if there is a regular object inside, it's still > serialized with optimized, even if its type is declared in binary > configuration with custom mapper, etc. > Essentially, binary marshaller should fully support Java serialization, > including {{Externalizable}} and {{writeObject}}/{{readObject}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (IGNITE-2894) Binary object inside of Externalizable still serialized with OptimizedMarshaller
[ https://issues.apache.org/jira/browse/IGNITE-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15211981#comment-15211981 ] Andrey Kornev commented on IGNITE-2894: --- Just for completeness, here's a copy of my posting from the dev list related to this subject. {quote} Ignite Serialization should follow the approach similar to what Java serialization does: it can transparently and consistently handle both Serializable and Externalizable classes. It can do it because it relies on a single class - ObjectOutputStream - to do serialization (and a single class - ObjectInputStream - to do the opposite, but let's ignore it for the moment). ObjectOutputStream delegates to proper user callbacks (writeObject or writeExternal) at the right moments, but otherwise it fully controls the on-the-wire representation and takes care of all the necessary stream framing/marking so that ObjectInputStream can then correctly deserialize the bytes. It's never a problem for Java to serialize an Externalizable field from a Serializable object and vice versa. Users can mix and match serialization APIs as they please. Ignite should just have a single marshaller, let's say the Binary, which drives the whole serialization process. It doesn't delegate to OptimizedMarshaller as it does today. Instead it detects the Serializable/Externalizable classes and calls their serialization callbacks - writeObject/writeExternal - passing in *itself* as ObjectOutputStream/ObjectOutput correspondingly. This way the entire serialization process never leaves the context of a single Binary marshaller and allows Ignite to handle any combination of serialization types (Binary, Externalizable, Serializable) seamlessly. {quote} > Binary object inside of Externalizable still serialized with > OptimizedMarshaller > > > Key: IGNITE-2894 > URL: https://issues.apache.org/jira/browse/IGNITE-2894 > Project: Ignite > Issue Type: Bug > Components: general >Affects Versions: 1.5.0.final >Reporter: Valentin Kulichenko >Priority: Critical > Labels: community, customer, important > Fix For: 1.6 > > > When binary marshaller meets an Externalizable object, it switches to > optimized marshaller. And if there is a regular object inside, it's still > serialized with optimized, even if its type is declared in binary > configuration with custom mapper, etc. > Essentially, binary marshaller should fully support Java serialization, > including {{Externalizable}} and {{writeObject}}/{{readObject}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)