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