private long getLoadSinceLastCheck(MigratablePipeline pipeline) { long load = pipeline.load(); long lastLoad = lastLoadCounter.getAndSet(pipeline, load); return load - lastLoad; }
private void updatePipelineState(MigratablePipeline pipeline) { long pipelineLoad = getLoadSinceLastCheck(pipeline); pipelineLoadCount.set(pipeline, pipelineLoad); NioThread owner = pipeline.owner(); if (owner == null) { // the pipeline is currently being migrated - owner is null return; } ownerLoad.add(owner, pipelineLoad); ownerToPipelines.get(owner).add(pipeline); }
private void tryMigrate(LoadImbalance loadImbalance) { MigratablePipeline pipeline = strategy.findPipelineToMigrate(loadImbalance); if (pipeline == null) { logger.finest("I/O imbalance is detected, but no suitable migration candidate is found."); return; } NioThread dstOwner = loadImbalance.dstOwner; if (logger.isFinestEnabled()) { NioThread srcOwner = loadImbalance.srcOwner; logger.finest("Scheduling migration of pipeline " + pipeline + " from " + srcOwner + " to " + dstOwner); } pipeline.requestMigration(dstOwner); }
private void tryMigrate(LoadImbalance loadImbalance) { MigratablePipeline pipeline = strategy.findPipelineToMigrate(loadImbalance); if (pipeline == null) { logger.finest("I/O imbalance is detected, but no suitable migration candidate is found."); return; } NioThread dstOwner = loadImbalance.dstOwner; if (logger.isFinestEnabled()) { NioThread srcOwner = loadImbalance.srcOwner; logger.finest("Scheduling migration of pipeline " + pipeline + " from " + srcOwner + " to " + dstOwner); } pipeline.requestMigration(dstOwner); }
private void updatePipelineState(MigratablePipeline pipeline) { long pipelineLoad = getLoadSinceLastCheck(pipeline); pipelineLoadCount.set(pipeline, pipelineLoad); NioThread owner = pipeline.owner(); if (owner == null) { // the pipeline is currently being migrated - owner is null return; } ownerLoad.add(owner, pipelineLoad); ownerToPipelines.get(owner).add(pipeline); }
private long getLoadSinceLastCheck(MigratablePipeline pipeline) { long load = pipeline.load(); long lastLoad = lastLoadCounter.getAndSet(pipeline, load); return load - lastLoad; }