title: Cassandra 3.11 SSTableLoader mechanics
body: <p>I've been using the SSTableLoader utility to bulk transfer data between two distinct Cassandra clusters and I was wondering if anyone else has run into the same issues.  The source cluster has data, the destination does not.</p>
  
  <p>I've read the datastax page on the utility's details but still I have some unanswered questions about how it works.</p>
  
  <p>I am using the utility on the source cluster's live nodes and the commands follow this format:</p>
  
  <pre><code>sstableloader -d target.host.ip -v -f /etc/cassandra/cassandra.yaml /cassandra/data/keyspace1/table1-uuid
  </code></pre>
  
  <p>The clusters are both setup with 256 vnodes each with 6 nodes in each cluster.  The schema is RF = 3 in both environments and the tables are all structured the same.</p>
  
  <p>So my questions are as follows:</p>
  
  <p>1) The utility pulls source cluster information from the cassandra.yaml you specify, but you have to specify an absolute path to the SSTables still.  So does running SSTableLoader from a single node give me the entire table at the destination once complete?  It seems difficult to verify since the token ranges are different at the destination cluster.</p>
  
  <p>2) The datastax information says:</p>
  
  <blockquote>
    <p>To get the best throughput from SSTable loading, you can use multiple
    instances of sstableloader to stream across multiple machines. No hard
    limit exists on the number of SSTables that sstableloader can run at
    the same time, so you can add additional loaders until you see no
    further improvement.</p>
  </blockquote>
  
  <p>Does this mean that for a single table, I would start multiple instances of SSTableLoader across multiple source machines?  Or does it just mean that I can use SSTableLoader for multiple different tables on multiple machines at the same time.  I'm trying to understand if the throughput gain they are mentioning is for a single table or for just multiple tables in flight.</p>
  
  <p>3) What syntax modification is needed to run from snapshots instead?  I took a snapshot and tested by running the same command but further down into the snapshot directory of the table and it didn't parse correctly it was saying "snapshot" is an invalid keyspace.</p>
  
  <p>Anyway thanks hope I was clear enough with my questions.</p>