Class FateConcurrencyIT

  • All Implemented Interfaces:
    ClusterUsers, MiniClusterConfigurationCallback

    public class FateConcurrencyIT
    extends AccumuloClusterHarness
    IT Tests that create / run a "slow" FATE transaction so that other operations can be checked. Included tests for:
    • ACCUMULO-4574. Test to verify that changing table state to online / offline TableOperations.online(String) when the table is already in that state returns without blocking.
    • AdminUtil refactor to provide methods that provide FATE status, one with table lock info (original) and additional method without.
    • Constructor Detail

      • FateConcurrencyIT

        public FateConcurrencyIT()
    • Method Detail

      • setup

        public void setup()
      • closeClient

        public void closeClient()
      • cleanup

        public static void cleanup()
      • changeTableStateTest

        public void changeTableStateTest()
                                  throws Exception
        Validate that TableOperations online operation does not block when table is already online and fate transaction lock is held by other operations. The test creates, populates a table and then runs a compaction with a slow iterator so that operation takes long enough to simulate the condition. After the online operation while compaction is running completes, the test is complete and the compaction is canceled so that other tests can run.
        Throws:
        Exception - any exception is a test failure.
      • getFateStatus

        public void getFateStatus()
        Validate the the AdminUtil.getStatus works correctly after refactor and validate that getTransactionStatus can be called without lock map(s). The test starts a long running fate transaction (slow compaction) and the calls AdminUtil functions to get the FATE.