You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@river.apache.org by "Michał Kłeczek (XPro Sp. z o. o.)" <mi...@xpro.biz> on 2017/02/04 12:38:15 UTC

Serialization issues

Unfortunately due to "writeObject" and "readObject" methods that have to 
be handled (to comply with the spec) - it is not possible to 
serialize/deserialize in a non-blocking fashion.
So yes... - it is serialization per se.

Thanks,
Michal

Niclas Hedhman wrote:
> Oh, well that is not "Serialization" per se... No wonder i didn't get it.
>
> On Sat, Feb 4, 2017 at 7:20 PM, Peter<ji...@zeus.net.au>  wrote:
>
>> On 4/02/2017 9:09 PM, Niclas Hedhman wrote:
>>
>>> but rather with the APIs - it is inherently blocking by design.
>>> I am not sure I understand what you mean by that.
>>>
>>>
>> He means the client thread that makes the remote call blocks waiting for
>> the remote end to process the request and respond.
>>
>> Cheers,
>>
>> Peter.
>>
>>
>
>


Re: Serialization issues

Posted by "Michał Kłeczek (XPro Sp. z o. o.)" <mi...@xpro.biz>.
1. Yes, you can buffer the whole object graph as long as it is small enough.
2. In the end threads are just abstraction on top of inherently serial 
machine that produces asynchronous events (CPU with interrupts)
providing a nice programming in languages that do not support monads.
It might be worth investigating http://www.paralleluniverse.co/quasar/ 
for River.

OTOH I have also read papers about handling C10M problem. These guys are 
serious :) .
The general conclusion is that any "general" abstraction (such as 
threads) breaks. Any context switches are no-no.
So you implement the full event (interrupt) driven network stack in user 
space - the architecture somewhat similar to an exokernel.
See https://www.freebsd.org/cgi/man.cgi?query=netmap&sektion=4

But we are diverging...
Cheers,
Michal

Niclas Hedhman wrote:
> Ok, but assuming that you are not talking about GB-sized object graphs, it
> is more an issue with RMI than Serialization, because you can create
> non-blocking I/O "on top", just like Jetty has non-blocking I/O "on top" of
> the equally blocking Servlet API. Right? I assume that there is a similar
> thing in Tomcat, because AFAIK Google AppEngine runs on Tomcat
> It is not required (even it is) that the ObjectOutputStream is directly
> connected to the underlying OS file descriptor. I am pretty sure that it
> would be a mistake trying to re-design all software that writes to a stream
> to have a non-blocking design.
>
> Additionally, while looking into this, I came across
> https://www.usenix.org/legacy/events/hotos03/tech/full_papers/vonbehren/vonbehren_html/index.html,
> which might be to your interest. Not totally relevant, but still an
> interesting read.
>
> Cheers
>
> On Sun, Feb 5, 2017 at 2:04 AM, "Micha\u0142 K\u0142eczek (XPro Sp. z o. o.)"<
> michal.kleczek@xpro.biz>  wrote:
>
>> You do not have to do any IO in readObject/writeObject.
>>
>> The fact that you have readObject/writeObject methods means that you are
>> forced to do blocking IO.
>> It is simple:
>>
>> readObject(...) {
>>    ois.defaultReadObject();
>>    //the above line MUST be blocking because
>>    verifyMyState();
>>    //this line expects the data to be read
>> }
>>
>> Siilarly:
>>
>> writeObject(ObjectOutputStream oos) {
>>    oos.writeInt(whateverField);
>>    //buffers full? You need to block, sorry
>>    oos.writeObject(...)
>>
>> }
>>
>> Thanks,
>> Michal
>>
>> Niclas Hedhman wrote:
>>
>> I am asking what Network I/O you are doing in the readObject/writeObject
>> methods. Because to me I can't figure out any use-case where that is a
>> problem...
>>
>> On Sun, Feb 5, 2017 at 1:14 AM, "Micha\u0142 K\u0142eczek (XPro Sp. z o. o.)"<mi...@xpro.biz>  wrote:
>>
>>
>> Don't know about other serialization uses but my issue with it is that it
>> precludes using it in non-blocking IO.
>> Sorry if I haven't been clear enough.
>>
>>
>> Thanks,
>> Michal
>>
>> Niclas Hedhman wrote:
>>
>> And what I/O (network I/O I presume) are you doing during the serialization
>> (without RMI)?
>>
>> On Sun, Feb 5, 2017 at 12:48 AM, "Micha\u0142 K\u0142eczek (XPro Sp. z o. o.)"<mi...@xpro.biz>  <mi...@xpro.biz>
>>   wrote:
>>
>>
>> It is not possible to do non-blocking as in "non blocking IO" - meaning -
>> threads do not block on IO operations.
>> Just google "C10K problem"
>>
>> Thanks,
>> Michal
>>
>> Niclas Hedhman wrote:
>>
>> I don't follow. What does readObject/writeObject got to do with blocking or
>> not? You could spin up executors to do the work in parallel if you so wish.
>> And why is "something else" less blocking? And what are you doing that is
>> "blocking" since the "work" is (or should be) CPU only, there is limited
>> (still) opportunity to do that non-blocking (whatever that would mean in
>> CPU-only circumstance). Feel free to elaborate... I am curious.
>>
>>
>>
>> On Sat, Feb 4, 2017 at 8:38 PM, "Micha\u0142 K\u0142eczek (XPro Sp. z o. o.)"<mi...@xpro.biz>  <mi...@xpro.biz>  <mi...@xpro.biz>  <mi...@xpro.biz>
>>   wrote:
>>
>>
>> Unfortunately due to "writeObject" and "readObject" methods that have to
>> be handled (to comply with the spec) - it is not possible to
>> serialize/deserialize in a non-blocking fashion.
>> So yes... - it is serialization per se.
>>
>> Thanks,
>> Michal
>>
>> Niclas Hedhman wrote:
>>
>> Oh, well that is not "Serialization" per se... No wonder i didn't get it.
>>
>> On Sat, Feb 4, 2017 at 7:20 PM, Peter<ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  wrote:
>>
>>
>> On 4/02/2017 9:09 PM, Niclas Hedhman wrote:
>>
>>
>> but rather with the APIs - it is inherently blocking by design.
>>
>> I am not sure I understand what you mean by that.
>>
>>
>>
>> He means the client thread that makes the remote call blocks waiting for
>> the remote end to process the request and respond.
>>
>> Cheers,
>>
>> Peter.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>


Re: Serialization issues

Posted by Niclas Hedhman <ni...@hedhman.org>.
Ok, but assuming that you are not talking about GB-sized object graphs, it
is more an issue with RMI than Serialization, because you can create
non-blocking I/O "on top", just like Jetty has non-blocking I/O "on top" of
the equally blocking Servlet API. Right? I assume that there is a similar
thing in Tomcat, because AFAIK Google AppEngine runs on Tomcat
It is not required (even it is) that the ObjectOutputStream is directly
connected to the underlying OS file descriptor. I am pretty sure that it
would be a mistake trying to re-design all software that writes to a stream
to have a non-blocking design.

Additionally, while looking into this, I came across
https://www.usenix.org/legacy/events/hotos03/tech/full_papers/vonbehren/vonbehren_html/index.html,
which might be to your interest. Not totally relevant, but still an
interesting read.

Cheers

On Sun, Feb 5, 2017 at 2:04 AM, "Michał Kłeczek (XPro Sp. z o. o.)" <
michal.kleczek@xpro.biz> wrote:

> You do not have to do any IO in readObject/writeObject.
>
> The fact that you have readObject/writeObject methods means that you are
> forced to do blocking IO.
> It is simple:
>
> readObject(...) {
>   ois.defaultReadObject();
>   //the above line MUST be blocking because
>   verifyMyState();
>   //this line expects the data to be read
> }
>
> Siilarly:
>
> writeObject(ObjectOutputStream oos) {
>   oos.writeInt(whateverField);
>   //buffers full? You need to block, sorry
>   oos.writeObject(...)
>
> }
>
> Thanks,
> Michal
>
> Niclas Hedhman wrote:
>
> I am asking what Network I/O you are doing in the readObject/writeObject
> methods. Because to me I can't figure out any use-case where that is a
> problem...
>
> On Sun, Feb 5, 2017 at 1:14 AM, "Michał Kłeczek (XPro Sp. z o. o.)" <mi...@xpro.biz> wrote:
>
>
> Don't know about other serialization uses but my issue with it is that it
> precludes using it in non-blocking IO.
> Sorry if I haven't been clear enough.
>
>
> Thanks,
> Michal
>
> Niclas Hedhman wrote:
>
> And what I/O (network I/O I presume) are you doing during the serialization
> (without RMI)?
>
> On Sun, Feb 5, 2017 at 12:48 AM, "Michał Kłeczek (XPro Sp. z o. o.)" <mi...@xpro.biz> <mi...@xpro.biz>
>  wrote:
>
>
> It is not possible to do non-blocking as in "non blocking IO" - meaning -
> threads do not block on IO operations.
> Just google "C10K problem"
>
> Thanks,
> Michal
>
> Niclas Hedhman wrote:
>
> I don't follow. What does readObject/writeObject got to do with blocking or
> not? You could spin up executors to do the work in parallel if you so wish.
> And why is "something else" less blocking? And what are you doing that is
> "blocking" since the "work" is (or should be) CPU only, there is limited
> (still) opportunity to do that non-blocking (whatever that would mean in
> CPU-only circumstance). Feel free to elaborate... I am curious.
>
>
>
> On Sat, Feb 4, 2017 at 8:38 PM, "Michał Kłeczek (XPro Sp. z o. o.)" <mi...@xpro.biz> <mi...@xpro.biz> <mi...@xpro.biz> <mi...@xpro.biz>
>  wrote:
>
>
> Unfortunately due to "writeObject" and "readObject" methods that have to
> be handled (to comply with the spec) - it is not possible to
> serialize/deserialize in a non-blocking fashion.
> So yes... - it is serialization per se.
>
> Thanks,
> Michal
>
> Niclas Hedhman wrote:
>
> Oh, well that is not "Serialization" per se... No wonder i didn't get it.
>
> On Sat, Feb 4, 2017 at 7:20 PM, Peter <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> wrote:
>
>
> On 4/02/2017 9:09 PM, Niclas Hedhman wrote:
>
>
> but rather with the APIs - it is inherently blocking by design.
>
> I am not sure I understand what you mean by that.
>
>
>
> He means the client thread that makes the remote call blocks waiting for
> the remote end to process the request and respond.
>
> Cheers,
>
> Peter.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


-- 
Niclas Hedhman, Software Developer
http://polygene.apache.org <http://zest.apache.org> - New Energy for Java

Re: Serialization issues

Posted by "Michał Kłeczek (XPro Sp. z o. o.)" <mi...@xpro.biz>.
You do not have to do any IO in readObject/writeObject.

The fact that you have readObject/writeObject methods means that you are 
forced to do blocking IO.
It is simple:

readObject(...) {
   ois.defaultReadObject();
   //the above line MUST be blocking because
   verifyMyState();
   //this line expects the data to be read
}

Siilarly:

writeObject(ObjectOutputStream oos) {
   oos.writeInt(whateverField);
   //buffers full? You need to block, sorry
   oos.writeObject(...)
}

Thanks,
Michal

Niclas Hedhman wrote:
> I am asking what Network I/O you are doing in the readObject/writeObject
> methods. Because to me I can't figure out any use-case where that is a
> problem...
>
> On Sun, Feb 5, 2017 at 1:14 AM, "Micha\u0142 K\u0142eczek (XPro Sp. z o. o.)"<
> michal.kleczek@xpro.biz>  wrote:
>
>> Don't know about other serialization uses but my issue with it is that it
>> precludes using it in non-blocking IO.
>> Sorry if I haven't been clear enough.
>>
>>
>> Thanks,
>> Michal
>>
>> Niclas Hedhman wrote:
>>
>> And what I/O (network I/O I presume) are you doing during the serialization
>> (without RMI)?
>>
>> On Sun, Feb 5, 2017 at 12:48 AM, "Micha\u0142 K\u0142eczek (XPro Sp. z o. o.)"<mi...@xpro.biz>  wrote:
>>
>>
>> It is not possible to do non-blocking as in "non blocking IO" - meaning -
>> threads do not block on IO operations.
>> Just google "C10K problem"
>>
>> Thanks,
>> Michal
>>
>> Niclas Hedhman wrote:
>>
>> I don't follow. What does readObject/writeObject got to do with blocking or
>> not? You could spin up executors to do the work in parallel if you so wish.
>> And why is "something else" less blocking? And what are you doing that is
>> "blocking" since the "work" is (or should be) CPU only, there is limited
>> (still) opportunity to do that non-blocking (whatever that would mean in
>> CPU-only circumstance). Feel free to elaborate... I am curious.
>>
>>
>>
>> On Sat, Feb 4, 2017 at 8:38 PM, "Micha\u0142 K\u0142eczek (XPro Sp. z o. o.)"<mi...@xpro.biz>  <mi...@xpro.biz>
>>   wrote:
>>
>>
>> Unfortunately due to "writeObject" and "readObject" methods that have to
>> be handled (to comply with the spec) - it is not possible to
>> serialize/deserialize in a non-blocking fashion.
>> So yes... - it is serialization per se.
>>
>> Thanks,
>> Michal
>>
>> Niclas Hedhman wrote:
>>
>> Oh, well that is not "Serialization" per se... No wonder i didn't get it.
>>
>> On Sat, Feb 4, 2017 at 7:20 PM, Peter<ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  wrote:
>>
>>
>> On 4/02/2017 9:09 PM, Niclas Hedhman wrote:
>>
>>
>> but rather with the APIs - it is inherently blocking by design.
>>
>> I am not sure I understand what you mean by that.
>>
>>
>>
>> He means the client thread that makes the remote call blocks waiting for
>> the remote end to process the request and respond.
>>
>> Cheers,
>>
>> Peter.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>


Re: Serialization issues

Posted by Niclas Hedhman <ni...@hedhman.org>.
I am asking what Network I/O you are doing in the readObject/writeObject
methods. Because to me I can't figure out any use-case where that is a
problem...

On Sun, Feb 5, 2017 at 1:14 AM, "Michał Kłeczek (XPro Sp. z o. o.)" <
michal.kleczek@xpro.biz> wrote:

> Don't know about other serialization uses but my issue with it is that it
> precludes using it in non-blocking IO.
> Sorry if I haven't been clear enough.
>
>
> Thanks,
> Michal
>
> Niclas Hedhman wrote:
>
> And what I/O (network I/O I presume) are you doing during the serialization
> (without RMI)?
>
> On Sun, Feb 5, 2017 at 12:48 AM, "Michał Kłeczek (XPro Sp. z o. o.)" <mi...@xpro.biz> wrote:
>
>
> It is not possible to do non-blocking as in "non blocking IO" - meaning -
> threads do not block on IO operations.
> Just google "C10K problem"
>
> Thanks,
> Michal
>
> Niclas Hedhman wrote:
>
> I don't follow. What does readObject/writeObject got to do with blocking or
> not? You could spin up executors to do the work in parallel if you so wish.
> And why is "something else" less blocking? And what are you doing that is
> "blocking" since the "work" is (or should be) CPU only, there is limited
> (still) opportunity to do that non-blocking (whatever that would mean in
> CPU-only circumstance). Feel free to elaborate... I am curious.
>
>
>
> On Sat, Feb 4, 2017 at 8:38 PM, "Michał Kłeczek (XPro Sp. z o. o.)" <mi...@xpro.biz> <mi...@xpro.biz>
>  wrote:
>
>
> Unfortunately due to "writeObject" and "readObject" methods that have to
> be handled (to comply with the spec) - it is not possible to
> serialize/deserialize in a non-blocking fashion.
> So yes... - it is serialization per se.
>
> Thanks,
> Michal
>
> Niclas Hedhman wrote:
>
> Oh, well that is not "Serialization" per se... No wonder i didn't get it.
>
> On Sat, Feb 4, 2017 at 7:20 PM, Peter <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> wrote:
>
>
> On 4/02/2017 9:09 PM, Niclas Hedhman wrote:
>
>
> but rather with the APIs - it is inherently blocking by design.
>
> I am not sure I understand what you mean by that.
>
>
>
> He means the client thread that makes the remote call blocks waiting for
> the remote end to process the request and respond.
>
> Cheers,
>
> Peter.
>
>
>
>
>
>
>
>
>
>
>
>


-- 
Niclas Hedhman, Software Developer
http://polygene.apache.org <http://zest.apache.org> - New Energy for Java

Re: Serialization issues

Posted by "Michał Kłeczek (XPro Sp. z o. o.)" <mi...@xpro.biz>.
Don't know about other serialization uses but my issue with it is that 
it precludes using it in non-blocking IO.
Sorry if I haven't been clear enough.

Thanks,
Michal

Niclas Hedhman wrote:
> And what I/O (network I/O I presume) are you doing during the serialization
> (without RMI)?
>
> On Sun, Feb 5, 2017 at 12:48 AM, "Micha\u0142 K\u0142eczek (XPro Sp. z o. o.)"<
> michal.kleczek@xpro.biz>  wrote:
>
>> It is not possible to do non-blocking as in "non blocking IO" - meaning -
>> threads do not block on IO operations.
>> Just google "C10K problem"
>>
>> Thanks,
>> Michal
>>
>> Niclas Hedhman wrote:
>>
>> I don't follow. What does readObject/writeObject got to do with blocking or
>> not? You could spin up executors to do the work in parallel if you so wish.
>> And why is "something else" less blocking? And what are you doing that is
>> "blocking" since the "work" is (or should be) CPU only, there is limited
>> (still) opportunity to do that non-blocking (whatever that would mean in
>> CPU-only circumstance). Feel free to elaborate... I am curious.
>>
>>
>>
>> On Sat, Feb 4, 2017 at 8:38 PM, "Micha\u0142 K\u0142eczek (XPro Sp. z o. o.)"<mi...@xpro.biz>  wrote:
>>
>>
>> Unfortunately due to "writeObject" and "readObject" methods that have to
>> be handled (to comply with the spec) - it is not possible to
>> serialize/deserialize in a non-blocking fashion.
>> So yes... - it is serialization per se.
>>
>> Thanks,
>> Michal
>>
>> Niclas Hedhman wrote:
>>
>> Oh, well that is not "Serialization" per se... No wonder i didn't get it.
>>
>> On Sat, Feb 4, 2017 at 7:20 PM, Peter<ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  <ji...@zeus.net.au>  wrote:
>>
>>
>> On 4/02/2017 9:09 PM, Niclas Hedhman wrote:
>>
>>
>> but rather with the APIs - it is inherently blocking by design.
>>
>> I am not sure I understand what you mean by that.
>>
>>
>>
>> He means the client thread that makes the remote call blocks waiting for
>> the remote end to process the request and respond.
>>
>> Cheers,
>>
>> Peter.
>>
>>
>>
>>
>>
>>
>>
>>
>
>



Re: Serialization issues

Posted by Niclas Hedhman <ni...@hedhman.org>.
And what I/O (network I/O I presume) are you doing during the serialization
(without RMI)?

On Sun, Feb 5, 2017 at 12:48 AM, "Michał Kłeczek (XPro Sp. z o. o.)" <
michal.kleczek@xpro.biz> wrote:

> It is not possible to do non-blocking as in "non blocking IO" - meaning -
> threads do not block on IO operations.
> Just google "C10K problem"
>
> Thanks,
> Michal
>
> Niclas Hedhman wrote:
>
> I don't follow. What does readObject/writeObject got to do with blocking or
> not? You could spin up executors to do the work in parallel if you so wish.
> And why is "something else" less blocking? And what are you doing that is
> "blocking" since the "work" is (or should be) CPU only, there is limited
> (still) opportunity to do that non-blocking (whatever that would mean in
> CPU-only circumstance). Feel free to elaborate... I am curious.
>
>
>
> On Sat, Feb 4, 2017 at 8:38 PM, "Michał Kłeczek (XPro Sp. z o. o.)" <mi...@xpro.biz> wrote:
>
>
> Unfortunately due to "writeObject" and "readObject" methods that have to
> be handled (to comply with the spec) - it is not possible to
> serialize/deserialize in a non-blocking fashion.
> So yes... - it is serialization per se.
>
> Thanks,
> Michal
>
> Niclas Hedhman wrote:
>
> Oh, well that is not "Serialization" per se... No wonder i didn't get it.
>
> On Sat, Feb 4, 2017 at 7:20 PM, Peter <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> <ji...@zeus.net.au> wrote:
>
>
> On 4/02/2017 9:09 PM, Niclas Hedhman wrote:
>
>
> but rather with the APIs - it is inherently blocking by design.
>
> I am not sure I understand what you mean by that.
>
>
>
> He means the client thread that makes the remote call blocks waiting for
> the remote end to process the request and respond.
>
> Cheers,
>
> Peter.
>
>
>
>
>
>
>
>


-- 
Niclas Hedhman, Software Developer
http://polygene.apache.org <http://zest.apache.org> - New Energy for Java

Re: Serialization issues

Posted by "Michał Kłeczek (XPro Sp. z o. o.)" <mi...@xpro.biz>.
It is not possible to do non-blocking as in "non blocking IO" - meaning 
- threads do not block on IO operations.
Just google "C10K problem"

Thanks,
Michal

Niclas Hedhman wrote:
> I don't follow. What does readObject/writeObject got to do with blocking or
> not? You could spin up executors to do the work in parallel if you so wish.
> And why is "something else" less blocking? And what are you doing that is
> "blocking" since the "work" is (or should be) CPU only, there is limited
> (still) opportunity to do that non-blocking (whatever that would mean in
> CPU-only circumstance). Feel free to elaborate... I am curious.
>
>
>
> On Sat, Feb 4, 2017 at 8:38 PM, "Micha\u0142 K\u0142eczek (XPro Sp. z o. o.)"<
> michal.kleczek@xpro.biz>  wrote:
>
>> Unfortunately due to "writeObject" and "readObject" methods that have to
>> be handled (to comply with the spec) - it is not possible to
>> serialize/deserialize in a non-blocking fashion.
>> So yes... - it is serialization per se.
>>
>> Thanks,
>> Michal
>>
>> Niclas Hedhman wrote:
>>
>> Oh, well that is not "Serialization" per se... No wonder i didn't get it.
>>
>> On Sat, Feb 4, 2017 at 7:20 PM, Peter<ji...@zeus.net.au>  <ji...@zeus.net.au>  wrote:
>>
>>
>> On 4/02/2017 9:09 PM, Niclas Hedhman wrote:
>>
>>
>> but rather with the APIs - it is inherently blocking by design.
>>
>> I am not sure I understand what you mean by that.
>>
>>
>>
>> He means the client thread that makes the remote call blocks waiting for
>> the remote end to process the request and respond.
>>
>> Cheers,
>>
>> Peter.
>>
>>
>>
>>
>>
>
>


Re: Serialization issues

Posted by Niclas Hedhman <ni...@hedhman.org>.
I don't follow. What does readObject/writeObject got to do with blocking or
not? You could spin up executors to do the work in parallel if you so wish.
And why is "something else" less blocking? And what are you doing that is
"blocking" since the "work" is (or should be) CPU only, there is limited
(still) opportunity to do that non-blocking (whatever that would mean in
CPU-only circumstance). Feel free to elaborate... I am curious.



On Sat, Feb 4, 2017 at 8:38 PM, "Michał Kłeczek (XPro Sp. z o. o.)" <
michal.kleczek@xpro.biz> wrote:

> Unfortunately due to "writeObject" and "readObject" methods that have to
> be handled (to comply with the spec) - it is not possible to
> serialize/deserialize in a non-blocking fashion.
> So yes... - it is serialization per se.
>
> Thanks,
> Michal
>
> Niclas Hedhman wrote:
>
> Oh, well that is not "Serialization" per se... No wonder i didn't get it.
>
> On Sat, Feb 4, 2017 at 7:20 PM, Peter <ji...@zeus.net.au> <ji...@zeus.net.au> wrote:
>
>
> On 4/02/2017 9:09 PM, Niclas Hedhman wrote:
>
>
> but rather with the APIs - it is inherently blocking by design.
>
> I am not sure I understand what you mean by that.
>
>
>
> He means the client thread that makes the remote call blocks waiting for
> the remote end to process the request and respond.
>
> Cheers,
>
> Peter.
>
>
>
>
>


-- 
Niclas Hedhman, Software Developer
http://polygene.apache.org <http://zest.apache.org> - New Energy for Java