[
https://issues.apache.org/jira/browse/CASSANDRA-4663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15798727#comment-15798727
]
Corentin Chary commented on CASSANDRA-4663:
-------------------------------------------
The thing is that as far as I understand
{code}StreamSession#getOrCreateNextSession(){code} will create multiple
sessions:
{code}
INFO [main] 2017-01-04 16:42:41,003 StorageService.java:1438 - JOINING:
Starting to bootstrap...
INFO [main] 2017-01-04 16:42:41,532 StreamResultFuture.java:90 - [Stream
#cef1c0e0-d29c-11e6-b978-d922683f145b] Executing streaming plan for Bootstrap
INFO [StreamConnectionEstablisher:1] 2017-01-04 16:42:41,538
StreamSession.java:266 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b]
Starting streaming to /10.50.4.115
INFO [StreamConnectionEstablisher:1] 2017-01-04 16:42:41,541
StreamCoordinator.java:264 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b,
ID#0] Beginning stream session with /10.50.4.115
INFO [STREAM-IN-/10.50.4.115:7000] 2017-01-04 16:42:41,562
StreamResultFuture.java:187 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b]
Session with /10.50.4.115 is complete
INFO [StreamConnectionEstablisher:2] 2017-01-04 16:42:41,574
StreamSession.java:266 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b]
Starting streaming to /10.50.4.115
INFO [StreamConnectionEstablisher:2] 2017-01-04 16:42:41,576
StreamCoordinator.java:264 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b,
ID#1] Beginning stream session with /10.50.4.115
INFO [STREAM-IN-/10.50.4.115:7000] 2017-01-04 16:42:41,594
StreamResultFuture.java:187 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b]
Session with /10.50.4.115 is complete
INFO [StreamConnectionEstablisher:3] 2017-01-04 16:42:41,601
StreamSession.java:266 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b]
Starting streaming to /10.50.4.115
INFO [StreamConnectionEstablisher:3] 2017-01-04 16:42:41,602
StreamCoordinator.java:264 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b,
ID#2] Beginning stream session with /10.50.4.115
INFO [STREAM-IN-/10.50.4.115:7000] 2017-01-04 16:42:41,607
StreamResultFuture.java:187 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b]
Session with /10.50.4.115 is complete
INFO [StreamConnectionEstablisher:4] 2017-01-04 16:42:41,609
StreamSession.java:266 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b]
Starting streaming to /10.50.4.126
INFO [StreamConnectionEstablisher:4] 2017-01-04 16:42:41,610
StreamCoordinator.java:264 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b,
ID#0] Beginning stream session with /10.50.4.126
INFO [STREAM-IN-/10.50.4.126:7000] 2017-01-04 16:42:41,676
StreamResultFuture.java:173 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b
ID#0] Prepare completed. Receiving 7 files(1.181GiB), sending 0 files(0.000KiB)
INFO [StreamConnectionEstablisher:5] 2017-01-04 16:42:41,679
StreamSession.java:266 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b]
Starting streaming to /10.50.4.126
INFO [StreamConnectionEstablisher:5] 2017-01-04 16:42:41,682
StreamCoordinator.java:264 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b,
ID#1] Beginning stream session with /10.50.4.126
INFO [STREAM-IN-/10.50.4.126:7000] 2017-01-04 16:42:41,718
StreamResultFuture.java:173 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b
ID#1] Prepare completed. Receiving 8 files(772.249MiB), sending 0
files(0.000KiB)
INFO [StreamConnectionEstablisher:6] 2017-01-04 16:42:41,719
StreamSession.java:266 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b]
Starting streaming to /10.50.4.126
INFO [StreamConnectionEstablisher:6] 2017-01-04 16:42:41,720
StreamCoordinator.java:264 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b,
ID#2] Beginning stream session with /10.50.4.126
INFO [STREAM-IN-/10.50.4.126:7000] 2017-01-04 16:42:41,726
StreamResultFuture.java:187 - [Stream #cef1c0e0-d29c-11e6-b978-d922683f145b]
Session with /10.50.4.126 is complete
{code}
And because of {code}fetchAsync(){code} iterates on keyspaces to call
{code}requestRanges(){code} this will spread the keyspace accross multiple
sessions (it would be even better to spread the ranges).
And because the bottleneck is the STREAM-IN thread (IncomingMessageHandler) it
will improve the performances.
With three keyspaces and three connections I was able to double the throughput
and hopefully that is not just placebo effect.
> Streaming sends one file at a time serially.
> ---------------------------------------------
>
> Key: CASSANDRA-4663
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4663
> Project: Cassandra
> Issue Type: Improvement
> Reporter: sankalp kohli
> Priority: Minor
> Fix For: 3.x
>
> Attachments:
> 0001-streaming-add-a-way-to-configure-the-number-of-conne.patch
>
>
> This is not fast enough when someone is using SSD and may be 10G link. We
> should try to create multiple connections and send multiple files in
> parallel.
> Current approach under utilize the link(even 1G).
> This change will improve the bootstrapping time of a node.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)