Github user liyezhang556520 commented on a diff in the pull request:
https://github.com/apache/spark/pull/12083#discussion_r58287274
--- Diff:
common/network-common/src/main/java/org/apache/spark/network/protocol/MessageWithHeader.java
---
@@ -44,6 +45,14 @@
private long totalBytesTransferred;
/**
+ * When the write buffer size is larger than this limit, I/O will be
done in chunks of this size.
+ * The size should not be too large as it will waste underlying memory
copy. e.g. If network
+ * avaliable buffer is smaller than this limit, the data cannot be sent
within one single write
+ * operation while it still will make memory copy with this size.
+ */
+ private static final int NIO_BUFFER_LIMIT = 512 * 1024;
--- End diff --
>Is it possible to know the accurate number? I guess not because it's OS
dependent and may be changed vis OS settings.
There might be a way to get the accurate number of the network buffer, but
I think it's meaningless to do that because even we get the accurate number, we
cannot guarantee the network send buffer is empty each time we write the data,
which means, it's always possible that we can only write part of the data
whatever size we set `NIO_BUFFER_LIMIT`. We can only say the smaller the
`NIO_BUFFER_LIMIT` is, the less redundant copy will be made.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]