Guest User

Jairam

a guest
Jan 19th, 2011
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.32 KB | None | 0 0
  1. private void maybeInit()
  2.         {
  3.             // check if we need another batch
  4.             if (rows != null && i >= rows.size())
  5.                 rows = null;
  6.            
  7.             if (rows != null)
  8.                 return;
  9.            
  10.             if (startToken == null)
  11.             {
  12.                 startToken = split.getStartToken();
  13.             }
  14.             else if (startToken.equals(split.getEndToken()))
  15.             {
  16.                 rows = null;
  17.                 return;
  18.             }
  19.            
  20.             KeyRange keyRange = new KeyRange(batchRowCount)
  21.                                 .setStart_token(startToken)
  22.                                 .setEnd_token(split.getEndToken());
  23.            
  24.             int retryCount = ConfigHelper.getRetryCount(conf);
  25.             int sleepTime = ConfigHelper.getSleepTime(conf);
  26.             int sleepCounter = 1;
  27.             while(sleepCounter <= retryCount)
  28.             {
  29.                 try
  30.                 {
  31.                     rows = client.get_range_slices(keyspace,
  32.                             new ColumnParent(cfName),
  33.                             predicate,
  34.                             keyRange,
  35.                             ConsistencyLevel.ONE);
  36.  
  37.                     // nothing new? reached the end
  38.                             if (rows.isEmpty())
  39.                             {
  40.                                 rows = null;
  41.                                 return;
  42.                             }
  43.  
  44.                             // reset to iterate through this new batch
  45.                             i = 0;
  46.  
  47.                             // prepare for the next slice to be read
  48.                             KeySlice lastRow = rows.get(rows.size() - 1);
  49.                             startToken = partitioner.getTokenFactory().toString(partitioner.getToken(lastRow.getKey()));
  50.                             break;
  51.                 }
  52.                 catch (Exception e)
  53.                 {
  54.                     if(sleepCounter <= retryCount)
  55.                     {
  56.                         sleepCounter++;
  57.                         try
  58.                         {
  59.                             System.out.println("Thread going to Sleep for "+sleepTime+" milliseconds before retrying...");
  60.                             Thread.sleep(sleepTime);
  61.                         }
  62.                         catch(InterruptedException ie)
  63.                         {
  64.                             throw new RuntimeException(ie);
  65.                         }
  66.                     }
  67.                     else
  68.                     {
  69.                         throw new RuntimeException(e);
  70.                     }
  71.                 }
  72.             }
  73.         }
Advertisement
Add Comment
Please, Sign In to add comment