io.prestosql.memory.QueryContext.setMemoryPool()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(5.3k)|赞(0)|评价(0)|浏览(93)

本文整理了Java中io.prestosql.memory.QueryContext.setMemoryPool方法的一些代码示例,展示了QueryContext.setMemoryPool的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryContext.setMemoryPool方法的具体详情如下:
包路径:io.prestosql.memory.QueryContext
类名称:QueryContext
方法名:setMemoryPool

QueryContext.setMemoryPool介绍

暂无

代码示例

代码示例来源:origin: io.prestosql/presto-main

@Override
public synchronized void updateMemoryPoolAssignments(MemoryPoolAssignmentsRequest assignments)
{
  if (coordinatorId != null && coordinatorId.equals(assignments.getCoordinatorId()) && assignments.getVersion() <= currentMemoryPoolAssignmentVersion) {
    return;
  }
  currentMemoryPoolAssignmentVersion = assignments.getVersion();
  if (coordinatorId != null && !coordinatorId.equals(assignments.getCoordinatorId())) {
    log.warn("Switching coordinator affinity from " + coordinatorId + " to " + assignments.getCoordinatorId());
  }
  coordinatorId = assignments.getCoordinatorId();
  for (MemoryPoolAssignment assignment : assignments.getAssignments()) {
    if (assignment.getPoolId().equals(GENERAL_POOL)) {
      queryContexts.getUnchecked(assignment.getQueryId()).setMemoryPool(localMemoryManager.getGeneralPool());
    }
    else if (assignment.getPoolId().equals(RESERVED_POOL)) {
      MemoryPool reservedPool = localMemoryManager.getReservedPool()
          .orElseThrow(() -> new IllegalArgumentException(format("Cannot move %s to the reserved pool as the reserved pool is not enabled", assignment.getQueryId())));
      queryContexts.getUnchecked(assignment.getQueryId()).setMemoryPool(reservedPool);
    }
    else {
      new IllegalArgumentException(format("Cannot move %s to %s as the target memory pool id is invalid", assignment.getQueryId(), assignment.getPoolId()));
    }
  }
}

代码示例来源:origin: prestosql/presto

@Override
public synchronized void updateMemoryPoolAssignments(MemoryPoolAssignmentsRequest assignments)
{
  if (coordinatorId != null && coordinatorId.equals(assignments.getCoordinatorId()) && assignments.getVersion() <= currentMemoryPoolAssignmentVersion) {
    return;
  }
  currentMemoryPoolAssignmentVersion = assignments.getVersion();
  if (coordinatorId != null && !coordinatorId.equals(assignments.getCoordinatorId())) {
    log.warn("Switching coordinator affinity from " + coordinatorId + " to " + assignments.getCoordinatorId());
  }
  coordinatorId = assignments.getCoordinatorId();
  for (MemoryPoolAssignment assignment : assignments.getAssignments()) {
    if (assignment.getPoolId().equals(GENERAL_POOL)) {
      queryContexts.getUnchecked(assignment.getQueryId()).setMemoryPool(localMemoryManager.getGeneralPool());
    }
    else if (assignment.getPoolId().equals(RESERVED_POOL)) {
      MemoryPool reservedPool = localMemoryManager.getReservedPool()
          .orElseThrow(() -> new IllegalArgumentException(format("Cannot move %s to the reserved pool as the reserved pool is not enabled", assignment.getQueryId())));
      queryContexts.getUnchecked(assignment.getQueryId()).setMemoryPool(reservedPool);
    }
    else {
      new IllegalArgumentException(format("Cannot move %s to %s as the target memory pool id is invalid", assignment.getQueryId(), assignment.getPoolId()));
    }
  }
}

代码示例来源:origin: io.prestosql/presto-main

@Test
public void testCountAlreadyRevokedMemoryWithinAPool()
    throws Exception
{
  // Given
  SqlTask sqlTask1 = newSqlTask();
  MemoryPool anotherMemoryPool = new MemoryPool(new MemoryPoolId("test"), new DataSize(10, BYTE));
  sqlTask1.getQueryContext().setMemoryPool(anotherMemoryPool);
  OperatorContext operatorContext1 = createContexts(sqlTask1);
  SqlTask sqlTask2 = newSqlTask();
  OperatorContext operatorContext2 = createContexts(sqlTask2);
  List<SqlTask> tasks = ImmutableList.of(sqlTask1, sqlTask2);
  MemoryRevokingScheduler scheduler = new MemoryRevokingScheduler(asList(memoryPool, anotherMemoryPool), () -> tasks, executor, 1.0, 1.0);
  allOperatorContexts = ImmutableSet.of(operatorContext1, operatorContext2);
  /*
   * sqlTask1 fills its pool
   */
  operatorContext1.localRevocableMemoryContext().setBytes(12);
  requestMemoryRevoking(scheduler);
  assertMemoryRevokingRequestedFor(operatorContext1);
  /*
   * When sqlTask2 fills its pool
   */
  operatorContext2.localRevocableMemoryContext().setBytes(12);
  requestMemoryRevoking(scheduler);
  /*
   * Then sqlTask2 should be asked to revoke its memory too
   */
  assertMemoryRevokingRequestedFor(operatorContext1, operatorContext2);
}

代码示例来源:origin: prestosql/presto

@Test
public void testCountAlreadyRevokedMemoryWithinAPool()
    throws Exception
{
  // Given
  SqlTask sqlTask1 = newSqlTask();
  MemoryPool anotherMemoryPool = new MemoryPool(new MemoryPoolId("test"), new DataSize(10, BYTE));
  sqlTask1.getQueryContext().setMemoryPool(anotherMemoryPool);
  OperatorContext operatorContext1 = createContexts(sqlTask1);
  SqlTask sqlTask2 = newSqlTask();
  OperatorContext operatorContext2 = createContexts(sqlTask2);
  List<SqlTask> tasks = ImmutableList.of(sqlTask1, sqlTask2);
  MemoryRevokingScheduler scheduler = new MemoryRevokingScheduler(asList(memoryPool, anotherMemoryPool), () -> tasks, executor, 1.0, 1.0);
  allOperatorContexts = ImmutableSet.of(operatorContext1, operatorContext2);
  /*
   * sqlTask1 fills its pool
   */
  operatorContext1.localRevocableMemoryContext().setBytes(12);
  requestMemoryRevoking(scheduler);
  assertMemoryRevokingRequestedFor(operatorContext1);
  /*
   * When sqlTask2 fills its pool
   */
  operatorContext2.localRevocableMemoryContext().setBytes(12);
  requestMemoryRevoking(scheduler);
  /*
   * Then sqlTask2 should be asked to revoke its memory too
   */
  assertMemoryRevokingRequestedFor(operatorContext1, operatorContext2);
}

代码示例来源:origin: io.prestosql/presto-main

assertTrue(revocableMemoryContext.setBytes(5).isDone());
queryContext.setMemoryPool(reservedPool);

相关文章

微信公众号

最新文章

更多