Hi,
Not sure whether we may consider that as a bug, but I found an interesting
dependency of AM2 on clock advancing. A simple operation such as create
table is unable to perform with the same current_time value:

public void testCreateTable() throws IOException {
  EnvironmentEdgeManager.injectEdge(new EnvironmentEdge() {
    volatile int curTime = 1000;

    @Override
    public long currentTime() {

      return curTime;
    }
  });
  final TableName tableName = TableName.valueOf("test");
  TEST_UTIL.createTable(tableName, HConstants.CATALOG_FAMILY).close();
}

and fails with a TableNotFound exception. The reason is that between
transitions we get table information from meta using Get with the exclusive
current timestamp. Could it be a potential problem (i.e. the system capable
to execute all that transition stuff in less than 1 ms)?

Thanks,
Sergey

Reply via email to