[jira] [Comment Edited] (SPARK-21701) Add TCP send/rcv buffer size support for RPC client

2017-08-11 Thread neoremind (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-21701?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16123096#comment-16123096
 ] 

neoremind edited comment on SPARK-21701 at 8/11/17 9:46 AM:


Hi Sean, 
Thanks for your quick response. SO_RCVBUF and SO_SNDBUF are for TCP, and in 
server side, the two parameters are specified in
{code:java}
org.apache.spark.network.server.TransportServer
{code}
through SparkConf. If server side specify a bigger SO_RCVBUF size, while client 
does not have any place to set the corresponding param (although we can set the 
value in OS, if no set, use default value), then peers may set a relatively 
small sliding window size for later communication. Thus the param set in 
SparkConf in server side is useless and does not take effect as expected. To 
achieve consistency in both client and server side, enable client to get these 
params from SparkConf would make sense. Moreover, due to the fact that spark 
RPC module is not for high throughput and performant C/S service system, it 
should not to be a big problem, so I set the ticket to improvement label.

In a word, my point is it would be better to keep an entrance to the outside 
world to set these params in client side and keep consistent with how server 
side specifies these params.

Thanks


was (Author: xu.zhang):
Hi Sean, 
Thanks for your quick response. SO_RCVBUF and SO_SNDBUF are for TCP, and in 
server side, the two parameters are specified in
{code:java}
org.apache.spark.network.server.TransportServer
{code}
through SparkConf. If server side specify a bigger SO_RCVBUF size, while client 
does not have any place to set the corresponding param (although we can set the 
value in OS, if no set, use default value), then peers may set a relatively 
small sliding window size for later communication. Thus the param set in 
SparkConf in server side is useless and does not take effect as expected. To 
achieve consistency in both client and server side, enable client to get these 
params from SparkConf would make sense. Moreover, due to the fact that spark is 
not high throughput and performant C/S service system, it should not to be a 
big problem, so I set the ticket to improvement label and lower priority.

In a word, my point is to keep an entrance to the outside world to set these 
params in client side and keep consistent with how server side specifies these 
params.

Thanks

> Add TCP send/rcv buffer size support for RPC client
> ---
>
> Key: SPARK-21701
> URL: https://issues.apache.org/jira/browse/SPARK-21701
> Project: Spark
>  Issue Type: Improvement
>  Components: Spark Core
>Affects Versions: 1.6.0
>Reporter: neoremind
>Priority: Trivial
>
> For TransportClientFactory class, there are no params derived from SparkConf 
> to set ChannelOption.SO_RCVBUF and ChannelOption.SO_SNDBUF for netty. 
> Increasing the receive buffer size can increase the I/O performance for 
> high-volume transport.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Comment Edited] (SPARK-21701) Add TCP send/rcv buffer size support for RPC client

2017-08-11 Thread neoremind (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-21701?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16123096#comment-16123096
 ] 

neoremind edited comment on SPARK-21701 at 8/11/17 9:44 AM:


Hi Sean, 
Thanks for your quick response. SO_RCVBUF and SO_SNDBUF are for TCP, and in 
server side, the two parameters are specified in
{code:java}
org.apache.spark.network.server.TransportServer
{code}
through SparkConf. If server side specify a bigger SO_RCVBUF size, while client 
does not have any place to set the corresponding param (although we can set the 
value in OS, if no set, use default value), then peers may set a relatively 
small sliding window size for later communication. Thus the param set in 
SparkConf in server side is useless and does not take effect as expected. To 
achieve consistency in both client and server side, enable client to get these 
params from SparkConf would make sense. Moreover, due to the fact that spark is 
not high throughput and performant C/S service system, it should not to be a 
big problem, so I set the ticket to improvement label and lower priority.

In a word, my point is to keep an entrance to the outside world to set these 
params in client side and keep consistent with how server side specifies these 
params.

Thanks


was (Author: xu.zhang):
Hi Sean, 
Thanks for your quick response. SO_RCVBUF and SO_SNDBUF are for TCP, and in 
server side, the two parameters are specified in
{code:java}
org.apache.spark.network.server.TransportServer
{code}
through SparkConf. If server side specify a bigger SO_RCVBUF size, while client 
does not have any place to set the corresponding param (although we can set the 
value in OS, if no set, use default value), then peers may set a relatively 
small sliding window size for later communication. Thus the param set in 
SparkConf in server side is useless and does not take effect as expected. To 
achieve consistency in both client and server side, enable client to get these 
params from SparkConf would make sense. Moreover, due to the fact that spark is 
not high throughput and performant C/S service system, it should not to be a 
big problem, so I set the ticket to improvement label and lower priority.

In a word, my point is to keep a entrance to the outside world to set these 
params in client side and keep consistent with how server side specifies these 
params.

Thanks

> Add TCP send/rcv buffer size support for RPC client
> ---
>
> Key: SPARK-21701
> URL: https://issues.apache.org/jira/browse/SPARK-21701
> Project: Spark
>  Issue Type: Improvement
>  Components: Spark Core
>Affects Versions: 1.6.0
>Reporter: neoremind
>Priority: Trivial
>
> For TransportClientFactory class, there are no params derived from SparkConf 
> to set ChannelOption.SO_RCVBUF and ChannelOption.SO_SNDBUF for netty. 
> Increasing the receive buffer size can increase the I/O performance for 
> high-volume transport.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-21701) Add TCP send/rcv buffer size support for RPC client

2017-08-11 Thread neoremind (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-21701?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16123096#comment-16123096
 ] 

neoremind commented on SPARK-21701:
---

Hi Sean, 
Thanks for your quick response. SO_RCVBUF and SO_SNDBUF are for TCP, and in 
server side, the two parameters are specified in
{code:java}
org.apache.spark.network.server.TransportServer
{code}
through SparkConf. If server side specify a bigger SO_RCVBUF size, while client 
does not have any place to set the corresponding param (although we can set the 
value in OS, if no set, use default value), then peers may set a relatively 
small sliding window size for later communication. Thus the param set in 
SparkConf in server side is useless and does not take effect as expected. To 
achieve consistency in both client and server side, enable client to get these 
params from SparkConf would make sense. Moreover, due to the fact that spark is 
not high throughput and performant C/S service system, it should not to be a 
big problem, so I set the ticket to improvement label and lower priority.

In a word, my point is to keep a entrance to the outside world to set these 
params in client side and keep consistent with how server side specifies these 
params.

Thanks

> Add TCP send/rcv buffer size support for RPC client
> ---
>
> Key: SPARK-21701
> URL: https://issues.apache.org/jira/browse/SPARK-21701
> Project: Spark
>  Issue Type: Improvement
>  Components: Spark Core
>Affects Versions: 1.6.0
>Reporter: neoremind
>Priority: Trivial
>
> For TransportClientFactory class, there are no params derived from SparkConf 
> to set ChannelOption.SO_RCVBUF and ChannelOption.SO_SNDBUF for netty. 
> Increasing the receive buffer size can increase the I/O performance for 
> high-volume transport.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Comment Edited] (SPARK-21703) Why RPC message are transferred with header and body separately in TCP frame

2017-08-11 Thread neoremind (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-21703?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16123071#comment-16123071
 ] 

neoremind edited comment on SPARK-21703 at 8/11/17 9:18 AM:


Thanks Sean to guide me to the right place. Here's the 
http://apache-spark-user-list.1001560.n3.nabble.com/SPARK-CORE-Why-RPC-message-are-transferred-with-header-and-body-separately-in-TCP-frame-td29054.html.


was (Author: xu.zhang):
Thanks Sean to guide me to the right place. Here's the 
[link](http://apache-spark-user-list.1001560.n3.nabble.com/SPARK-CORE-Why-RPC-message-are-transferred-with-header-and-body-separately-in-TCP-frame-td29054.html).

> Why RPC message are transferred with header and body separately in TCP frame
> 
>
> Key: SPARK-21703
> URL: https://issues.apache.org/jira/browse/SPARK-21703
> Project: Spark
>  Issue Type: Question
>  Components: Spark Core
>Affects Versions: 1.6.0
>Reporter: neoremind
>Priority: Trivial
>  Labels: RPC
>
> After seeing the details of how spark leverage netty, I found one question, 
> typically RPC message wire format would have a header+payload structure, and 
> netty uses a TransportFrameDecoder to deal with how to determine a complete 
> message from remote peer. But after using Wireshark sniffing tool, I found 
> that the message are sent separately with header and then followed by body, 
> although this works fine, but for underlying TCP there would be ACK segments 
> sent back to acknowledge, there might be a little bit redundancy since we can 
> sent them together and the header are usually very small. 
> The main reason can be found in MessageWithHeader class, since transferTo 
> method write tow times for header and body.
> Could someone help me understand the background story on why to implement in 
> such way?  Thanks!



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Commented] (SPARK-21703) Why RPC message are transferred with header and body separately in TCP frame

2017-08-11 Thread neoremind (JIRA)

[ 
https://issues.apache.org/jira/browse/SPARK-21703?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16123071#comment-16123071
 ] 

neoremind commented on SPARK-21703:
---

Thanks Sean to guide me to the right place. Here's the 
[link](http://apache-spark-user-list.1001560.n3.nabble.com/SPARK-CORE-Why-RPC-message-are-transferred-with-header-and-body-separately-in-TCP-frame-td29054.html).

> Why RPC message are transferred with header and body separately in TCP frame
> 
>
> Key: SPARK-21703
> URL: https://issues.apache.org/jira/browse/SPARK-21703
> Project: Spark
>  Issue Type: Question
>  Components: Spark Core
>Affects Versions: 1.6.0
>Reporter: neoremind
>Priority: Trivial
>  Labels: RPC
>
> After seeing the details of how spark leverage netty, I found one question, 
> typically RPC message wire format would have a header+payload structure, and 
> netty uses a TransportFrameDecoder to deal with how to determine a complete 
> message from remote peer. But after using Wireshark sniffing tool, I found 
> that the message are sent separately with header and then followed by body, 
> although this works fine, but for underlying TCP there would be ACK segments 
> sent back to acknowledge, there might be a little bit redundancy since we can 
> sent them together and the header are usually very small. 
> The main reason can be found in MessageWithHeader class, since transferTo 
> method write tow times for header and body.
> Could someone help me understand the background story on why to implement in 
> such way?  Thanks!



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-21703) Why RPC message are transferred with header and body separately in TCP frame

2017-08-10 Thread neoremind (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-21703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

neoremind updated SPARK-21703:
--
Description: 
After seeing the details of how spark leverage netty, I found one question, 
typically RPC message wire format would have a header+payload structure, and 
netty uses a TransportFrameDecoder to deal with how to determine a complete 
message from remote peer. But after using Wireshark sniffing tool, I found that 
the message are sent separately with header and then followed by body, although 
this works fine, but for underlying TCP there would be ACK segments sent back 
to acknowledge, there might be a little bit redundancy since we can sent them 
together and the header are usually very small. 

The main reason can be found in MessageWithHeader class, since transferTo 
method write tow times for header and body.

Could someone help me understand the background story on how to implement in 
such way?  Thanks!

  was:
After seeing the details of how spark leverage netty, I found one question, 
typically RPC message wire format would have a header+payload structure, and 
netty uses a TransportFrameDecoder to deal with how to determine a complete 
message from remote peer. But after using Wireshark sniffing tool, I found that 
the message are sent separately with header and then followed by body, although 
this works fine, but for underlying TCP there would be ACK segments sent back 
to acknowledge, there might be a little bit redundancy since we can sent them 
together and the header are usually very small. 

The main reason can be found in MessageWithHeader class, since transferTo 
method write tow times for header and body.

Could some one help me understand the background story on how to implement in 
such way?  Thanks!


> Why RPC message are transferred with header and body separately in TCP frame
> 
>
> Key: SPARK-21703
> URL: https://issues.apache.org/jira/browse/SPARK-21703
> Project: Spark
>  Issue Type: Question
>  Components: Spark Core
>Affects Versions: 1.6.0
>Reporter: neoremind
>Priority: Trivial
>  Labels: RPC
>
> After seeing the details of how spark leverage netty, I found one question, 
> typically RPC message wire format would have a header+payload structure, and 
> netty uses a TransportFrameDecoder to deal with how to determine a complete 
> message from remote peer. But after using Wireshark sniffing tool, I found 
> that the message are sent separately with header and then followed by body, 
> although this works fine, but for underlying TCP there would be ACK segments 
> sent back to acknowledge, there might be a little bit redundancy since we can 
> sent them together and the header are usually very small. 
> The main reason can be found in MessageWithHeader class, since transferTo 
> method write tow times for header and body.
> Could someone help me understand the background story on how to implement in 
> such way?  Thanks!



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-21703) Why RPC message are transferred with header and body separately in TCP frame

2017-08-10 Thread neoremind (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-21703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

neoremind updated SPARK-21703:
--
Description: 
After seeing the details of how spark leverage netty, I found one question, 
typically RPC message wire format would have a header+payload structure, and 
netty uses a TransportFrameDecoder to deal with how to determine a complete 
message from remote peer. But after using Wireshark sniffing tool, I found that 
the message are sent separately with header and then followed by body, although 
this works fine, but for underlying TCP there would be ACK segments sent back 
to acknowledge, there might be a little bit redundancy since we can sent them 
together and the header are usually very small. 

The main reason can be found in MessageWithHeader class, since transferTo 
method write tow times for header and body.

Could someone help me understand the background story on why to implement in 
such way?  Thanks!

  was:
After seeing the details of how spark leverage netty, I found one question, 
typically RPC message wire format would have a header+payload structure, and 
netty uses a TransportFrameDecoder to deal with how to determine a complete 
message from remote peer. But after using Wireshark sniffing tool, I found that 
the message are sent separately with header and then followed by body, although 
this works fine, but for underlying TCP there would be ACK segments sent back 
to acknowledge, there might be a little bit redundancy since we can sent them 
together and the header are usually very small. 

The main reason can be found in MessageWithHeader class, since transferTo 
method write tow times for header and body.

Could someone help me understand the background story on how to implement in 
such way?  Thanks!


> Why RPC message are transferred with header and body separately in TCP frame
> 
>
> Key: SPARK-21703
> URL: https://issues.apache.org/jira/browse/SPARK-21703
> Project: Spark
>  Issue Type: Question
>  Components: Spark Core
>Affects Versions: 1.6.0
>Reporter: neoremind
>Priority: Trivial
>  Labels: RPC
>
> After seeing the details of how spark leverage netty, I found one question, 
> typically RPC message wire format would have a header+payload structure, and 
> netty uses a TransportFrameDecoder to deal with how to determine a complete 
> message from remote peer. But after using Wireshark sniffing tool, I found 
> that the message are sent separately with header and then followed by body, 
> although this works fine, but for underlying TCP there would be ACK segments 
> sent back to acknowledge, there might be a little bit redundancy since we can 
> sent them together and the header are usually very small. 
> The main reason can be found in MessageWithHeader class, since transferTo 
> method write tow times for header and body.
> Could someone help me understand the background story on why to implement in 
> such way?  Thanks!



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Updated] (SPARK-21703) Why RPC message are transferred with header and body separately in TCP frame

2017-08-10 Thread neoremind (JIRA)

 [ 
https://issues.apache.org/jira/browse/SPARK-21703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

neoremind updated SPARK-21703:
--
Description: 
After seeing the details of how spark leverage netty, I found one question, 
typically RPC message wire format would have a header+payload structure, and 
netty uses a TransportFrameDecoder to deal with how to determine a complete 
message from remote peer. But after using Wireshark sniffing tool, I found that 
the message are sent separately with header and then followed by body, although 
this works fine, but for underlying TCP there would be ACK segments sent back 
to acknowledge, there might be a little bit redundancy since we can sent them 
together and the header are usually very small. 

The main reason can be found in MessageWithHeader class, since transferTo 
method write tow times for header and body.

Could some one help me understand the background story on how to implement in 
such way?  Thanks!

  was:
After seeing the details of how spark leverage netty, I found one question, 
typically RPC message wire format would have a header+payload structure, and 
netty uses a TransportFrameDecoder to deal with how to determine a complete 
message from remote peer. But after using Wireshark sniffing tool, I found that 
the message are sent separately with header and then a body, although this 
works fine, but for underlying TCP there would be ACK segments sent back to 
acknowledge, there might be a little bit redundancy since we can sent them 
together and the header are usually very small. 

The main reason can be found in MessageWithHeader class, since transferTo 
method write tow times for header and body.

Could some one help me understand the background story on how to implement in 
such way?  Thanks!


> Why RPC message are transferred with header and body separately in TCP frame
> 
>
> Key: SPARK-21703
> URL: https://issues.apache.org/jira/browse/SPARK-21703
> Project: Spark
>  Issue Type: Question
>  Components: Spark Core
>Affects Versions: 1.6.0
>Reporter: neoremind
>Priority: Trivial
>  Labels: RPC
>
> After seeing the details of how spark leverage netty, I found one question, 
> typically RPC message wire format would have a header+payload structure, and 
> netty uses a TransportFrameDecoder to deal with how to determine a complete 
> message from remote peer. But after using Wireshark sniffing tool, I found 
> that the message are sent separately with header and then followed by body, 
> although this works fine, but for underlying TCP there would be ACK segments 
> sent back to acknowledge, there might be a little bit redundancy since we can 
> sent them together and the header are usually very small. 
> The main reason can be found in MessageWithHeader class, since transferTo 
> method write tow times for header and body.
> Could some one help me understand the background story on how to implement in 
> such way?  Thanks!



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Created] (SPARK-21703) Why RPC message are transferred with header and body separately in TCP frame

2017-08-10 Thread neoremind (JIRA)
neoremind created SPARK-21703:
-

 Summary: Why RPC message are transferred with header and body 
separately in TCP frame
 Key: SPARK-21703
 URL: https://issues.apache.org/jira/browse/SPARK-21703
 Project: Spark
  Issue Type: Question
  Components: Spark Core
Affects Versions: 1.6.0
Reporter: neoremind
Priority: Trivial


After seeing the details of how spark leverage netty, I found one question, 
typically RPC message wire format would have a header+payload structure, and 
netty uses a TransportFrameDecoder to deal with how to determine a complete 
message from remote peer. But after using Wireshark sniffing tool, I found that 
the message are sent separately with header and then a body, although this 
works fine, but for underlying TCP there would be ACK segments sent back to 
acknowledge, there might be a little bit redundancy since we can sent them 
together and the header are usually very small. 

The main reason can be found in MessageWithHeader class, since transferTo 
method write tow times for header and body.

Could some one help me understand the background story on how to implement in 
such way?  Thanks!



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org



[jira] [Created] (SPARK-21701) Add TCP send/rcv buffer size support for RPC client

2017-08-10 Thread neoremind (JIRA)
neoremind created SPARK-21701:
-

 Summary: Add TCP send/rcv buffer size support for RPC client
 Key: SPARK-21701
 URL: https://issues.apache.org/jira/browse/SPARK-21701
 Project: Spark
  Issue Type: Improvement
  Components: Spark Core
Affects Versions: 1.6.0
Reporter: neoremind
Priority: Trivial


For TransportClientFactory class, there are no params derived from SparkConf to 
set ChannelOption.SO_RCVBUF and ChannelOption.SO_SNDBUF for netty. Increasing 
the receive buffer size can increase the I/O performance for high-volume 
transport.




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org