package org.ourgrid.system; public class StressSystemsTest extends AbstractSystemTest { public void testPutGet_ManyWorkers_ManyFiles_ManyTasks() throws Exception { //TODO Diogo /* final int numberOfFiles = 20; final int fileSize = 1024 * 100; List<BrokerUnit> brokerUnits = unitManager.buildManyUnits( BrokerUnit.class, 5 ); List<WorkerUnit> workerUnits = unitManager.buildManyUnits( WorkerUnit.class, 20 ); for ( WorkerUnit workerUnit : workerUnits ) { workerUnit.setPlaypenRootPath( TEMP_TEST_DIR ); workerUnit.setStorageRootPath( TEMP_TEST_DIR ); workerUnit.initKeys(); } PeerUnit peerUnit = unitManager.buildNewUnit( PeerUnit.class ); unitManager.startUnits( peerUnit ); for ( BrokerUnit brokerUnit : brokerUnits ) { brokerUnit.setMaxFails( 1 ); brokerUnit.setMaxReplicas( 1 ); brokerUnit.setNumberOfReplicaExecutors( 10 ); brokerUnit.initKeys(); brokerUnit.setPeers( peerUnit ); } peerUnit.setWorkers( workerUnits ); File[ ] putFiles = new File[ numberOfFiles ]; File[ ] getFiles = new File[ numberOfFiles ]; String[ ] putSources = new String[ numberOfFiles ]; String[ ] playpenDests = new String[ numberOfFiles ]; String[ ] getDests = new String[ numberOfFiles ]; for ( int i = 0; i < numberOfFiles; i++ ) { putFiles[i] = TempFileManager.createTempFileWithBogusData( getClass().getSimpleName(), "", tempFileDir, fileSize ); putSources[i] = putFiles[i].getPath(); playpenDests[i] = putFiles[i].getName(); getDests[i] = putFiles[i].getPath() + "_get"; getFiles[i] = new File( getDests[i] ); } JobSpec jobToAdd = UnitUtil.buildASmallSleepJobWithPuts( 10, putSources, playpenDests, getDests ); for ( BrokerUnit brokerUnit : brokerUnits ) { brokerUnit.addJob( jobToAdd ); brokerUnit.addJob( jobToAdd ); } for ( BrokerUnit brokerUnit : brokerUnits ) { conditionExpecter.waitUntilConditionIsMet( new BrokerAllJobsFinishedCondition( brokerUnit ), 1000, 10000 ); } for ( int i = 0; i < numberOfFiles; i++ ) { assertTrue( getFiles[i].canRead() ); assertEquals( new FileInfo( putFiles[i] ).getFileDigest(), new FileInfo( getFiles[i] ).getFileDigest() ); } for ( int i = 0; i < numberOfFiles; i++ ) { assertTrue( getFiles[i].canRead() ); assertEquals( JavaFileUtil.getDigestRepresentation(putFiles[i]), JavaFileUtil.getDigestRepresentation(getFiles[i]) ); }*/ } public void testExecuteJobsOnDistributedWorkers() throws Exception { //TODO Diogo /*final int numberOfFiles = 20; final int fileSize = 1024 * 1024; List<BrokerUnit> brokerUnits = unitManager.buildManyUnits( BrokerUnit.class, 5 ); List<WorkerUnit> workerUnits = unitManager.buildManyUnits( WorkerUnit.class, 20, getAvailableWorkerMachines() ); for ( WorkerUnit workerUnit : workerUnits ) { workerUnit.setPlaypenRootPath( TEMP_TEST_DIR ); workerUnit.setStorageRootPath( TEMP_TEST_DIR ); } unitManager.deployUnits( workerUnits ); for ( WorkerUnit workerUnit : workerUnits ) { assertTrue( workerUnit.isRunning() ); } PeerUnit peerUnit = unitManager.buildNewUnit( PeerUnit.class ); unitManager.startUnits( peerUnit ); for ( BrokerUnit brokerUnit : brokerUnits ) { brokerUnit.setMaxFails( 1 ); brokerUnit.setMaxReplicas( 1 ); brokerUnit.setNumberOfReplicaExecutors( 10 ); brokerUnit.initKeys(); brokerUnit.setPeers( peerUnit ); } peerUnit.setWorkers( workerUnits ); File[ ] putFiles = new File[ numberOfFiles ]; File[ ] getFiles = new File[ numberOfFiles ]; String[ ] putSources = new String[ numberOfFiles ]; String[ ] playpenDests = new String[ numberOfFiles ]; String[ ] getDests = new String[ numberOfFiles ]; for ( int i = 0; i < numberOfFiles; i++ ) { putFiles[i] = TempFileManager.createTempFileWithBogusData( getClass().getSimpleName(), "", tempFileDir, fileSize ); putSources[i] = putFiles[i].getPath(); playpenDests[i] = putFiles[i].getName(); getDests[i] = putFiles[i].getPath() + "_get"; getFiles[i] = new File( getDests[i] ); } JobSpec jobToAdd = UnitUtil.buildASmallSleepJobWithPuts( 10, putSources, playpenDests, getDests ); for ( BrokerUnit brokerUnit : brokerUnits ) { brokerUnit.addJob( jobToAdd ); brokerUnit.addJob( jobToAdd ); } for ( BrokerUnit brokerUnit : brokerUnits ) { conditionExpecter.waitUntilConditionIsMet( new BrokerAllJobsFinishedCondition( brokerUnit ), 1000, 10000 ); } for ( int i = 0; i < numberOfFiles; i++ ) { assertTrue( getFiles[i].canRead() ); assertEquals( new FileInfo( putFiles[i] ).getFileDigest(), new FileInfo( getFiles[i] ).getFileDigest() ); } for ( int i = 0; i < numberOfFiles; i++ ) { assertTrue( getFiles[i].canRead() ); assertEquals( JavaFileUtil.getDigestRepresentation(putFiles[i]), JavaFileUtil.getDigestRepresentation(getFiles[i]) ); }*/ } }