Ejemplo n.º 1
0
 @Override
 public void handleEvent(OperationEvent event) {
   if (event.getEventType().equals(OperationEvent.OperationEventType.COMPLETE)) {
     this.metrics.mark("#" + metrics.getCount());
     putLimiter.removeJob(event.getFileID());
   } else if (event.getEventType().equals(OperationEvent.OperationEventType.FAILED)) {
     this.metrics.registerError(event.getInfo());
     putLimiter.removeJob(event.getFileID());
   }
 }
Ejemplo n.º 2
0
  @Test(groups = {"pillar-stress-test"})
  public void parallelPut() throws Exception {
    final int numberOfFiles =
        testConfiguration.getInt("pillarintegrationtest.PutFileStressIT.parallelPut.numberOfFiles");
    final int partStatisticsInterval =
        testConfiguration.getInt(
            "pillarintegrationtest.PutFileStressIT.parallelPut.partStatisticsInterval");
    final int numberOfParallelPuts =
        testConfiguration.getInt(
            "pillarintegrationtest.PutFileStressIT.parallelPut.numberOfParallelPuts");
    addDescription(
        "Attempt to put "
            + numberOfFiles
            + " files into the pillar, "
            + numberOfParallelPuts
            + " at 'same' time.");
    String[] fileIDs = TestFileHelper.createFileIDs(numberOfFiles, "parallelPutTest");
    final Metrics metrics = new Metrics("put", numberOfFiles, partStatisticsInterval);
    metrics.addAppenders(metricAppenders);
    metrics.start();
    addStep("Add " + numberOfFiles + " files", "Not errors should occur");
    ParallelPutLimiter putLimiter = new ParallelPutLimiter(numberOfParallelPuts);
    EventHandler eventHandler = new PutEventHandlerForMetrics(metrics, putLimiter);
    for (String fileID : fileIDs) {
      putLimiter.addJob(fileID);
      putClient.putFile(
          collectionID,
          httpServerConfiguration.getURL(TestFileHelper.DEFAULT_FILE_ID),
          fileID,
          10L,
          TestFileHelper.getDefaultFileChecksum(),
          null,
          eventHandler,
          "parallelPut stress test file");
    }

    awaitAsynchronousCompletion(metrics, numberOfFiles);

    addStep(
        "Check that the files are now present on the pillar(s)",
        "No missing files should be found.");
    existingFiles = fileIDs;
  }