[jira] [Commented] (IGNITE-2894) Binary object inside of Externalizable still serialized with OptimizedMarshaller

2018-05-07 Thread Vladimir Ozerov (JIRA)

[ 
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

2018-04-23 Thread Dmitriy Pavlov (JIRA)

[ 
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

2018-01-17 Thread Vladimir Ozerov (JIRA)

[ 
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

2017-10-11 Thread Amelchev Nikita (JIRA)

[ 
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

2017-09-29 Thread Vladimir Ozerov (JIRA)

[ 
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

2017-09-04 Thread Vladimir Ozerov (JIRA)

[ 
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

2017-09-04 Thread Amelchev Nikita (JIRA)

[ 
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

2017-06-19 Thread ASF GitHub Bot (JIRA)

[ 
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

2017-01-17 Thread Denis Magda (JIRA)

[ 
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

2016-03-25 Thread Andrey Kornev (JIRA)

[ 
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)