/** * Builds a {@link LockRequest} instance. After calling this method, the * builder object is invalidated. */ public LockRequest build() { if ((lockMap == null) || ((blockingMode == null) && (lockGroupBehavior != null))) { throw new IllegalStateException(); } if (versionId != null && blockingMode == BlockingMode.BLOCK_INDEFINITELY_THEN_RELEASE) { throw new IllegalStateException(); } String serverName = ""; if (!localServerName.isEmpty()) { serverName = " (on server " + localServerName + ")"; } LockRequest request = new LockRequest(lockMap, MoreObjects.firstNonNull(lockTimeout, getDefaultLockTimeout()), MoreObjects.firstNonNull(lockGroupBehavior, LockGroupBehavior.LOCK_ALL_OR_NONE), MoreObjects.firstNonNull(blockingMode, BlockingMode.BLOCK_INDEFINITELY), blockingDuration, versionId, MoreObjects.firstNonNull(creatingThreadName, Thread.currentThread().getName()) + serverName); lockMap = null; return request; }
public static LockRefreshingRemoteLockService create(RemoteLockService delegate) { final LockRefreshingRemoteLockService ret = new LockRefreshingRemoteLockService(delegate); ret.exec.scheduleWithFixedDelay(() -> { long startTime = System.currentTimeMillis(); try { ret.refreshLocks(); } catch (Throwable t) { log.warn("Failed to refresh locks", t); } finally { long elapsed = System.currentTimeMillis() - startTime; if (elapsed > LockRequest.getDefaultLockTimeout().toMillis() / 2) { log.warn("Refreshing locks took {} milliseconds" + " for tokens: {}", elapsed, ret.toRefresh); } else if (elapsed > ret.refreshFrequencyMillis) { log.info("Refreshing locks took {} milliseconds" + " for tokens: {}", elapsed, ret.toRefresh); } } }, 0, ret.refreshFrequencyMillis, TimeUnit.MILLISECONDS); return ret; }
public static LockRefreshingLockService create(LockService delegate) { final LockRefreshingLockService ret = new LockRefreshingLockService(delegate); ret.exec.scheduleWithFixedDelay(() -> { long startTime = System.currentTimeMillis(); try { ret.refreshLocks(); } catch (Throwable t) { log.warn("Failed to refresh locks", t); } finally { long elapsed = System.currentTimeMillis() - startTime; if (elapsed > LockRequest.getDefaultLockTimeout().toMillis() / 2) { log.warn("Refreshing locks took {} milliseconds" + " for tokens: {}", elapsed, ret.toRefresh); } else if (elapsed > ret.refreshFrequencyMillis) { log.info("Refreshing locks took {} milliseconds" + " for tokens: {}", elapsed, ret.toRefresh); } } }, 0, ret.refreshFrequencyMillis, TimeUnit.MILLISECONDS); return ret; }
public static HeldLocksToken getFakeHeldLocksToken(String clientName, String requestingThread, BigInteger tokenId, String... descriptors) { ImmutableSortedMap<LockDescriptor, LockMode> lockDescriptorLockMode = getLockDescriptorLockMode(Arrays.asList(descriptors)); return new HeldLocksToken(tokenId, LockClient.of(clientName), System.currentTimeMillis(), System.currentTimeMillis(), LockCollections.of(lockDescriptorLockMode), LockRequest.getDefaultLockTimeout(), 0L, requestingThread); }
/** * Builds a {@link LockRequest} instance. After calling this method, the * builder object is invalidated. */ public LockRequest build() { if ((lockMap == null) || ((blockingMode == null) && (lockGroupBehavior != null))) { throw new IllegalStateException(); } if (versionId != null && blockingMode == BlockingMode.BLOCK_INDEFINITELY_THEN_RELEASE) { throw new IllegalStateException(); } String serverName = ""; if (!localServerName.isEmpty()) { serverName = " (on server " + localServerName + ")"; } LockRequest request = new LockRequest(lockMap, MoreObjects.firstNonNull(lockTimeout, getDefaultLockTimeout()), MoreObjects.firstNonNull(lockGroupBehavior, LockGroupBehavior.LOCK_ALL_OR_NONE), MoreObjects.firstNonNull(blockingMode, BlockingMode.BLOCK_INDEFINITELY), blockingDuration, versionId, MoreObjects.firstNonNull(creatingThreadName, Thread.currentThread().getName()) + serverName); lockMap = null; return request; }
long lockTimeoutMs = LockRequest.getDefaultLockTimeout().toMillis();
public static LockRefreshingRemoteLockService create(RemoteLockService delegate) { final LockRefreshingRemoteLockService ret = new LockRefreshingRemoteLockService(delegate); ret.exec.scheduleWithFixedDelay(() -> { long startTime = System.currentTimeMillis(); try { ret.refreshLocks(); } catch (Throwable t) { log.warn("Failed to refresh locks", t); } finally { long elapsed = System.currentTimeMillis() - startTime; if (elapsed > LockRequest.getDefaultLockTimeout().toMillis() / 2) { log.warn("Refreshing locks took {} milliseconds" + " for tokens: {}", elapsed, ret.toRefresh); } else if (elapsed > ret.refreshFrequencyMillis) { log.info("Refreshing locks took {} milliseconds" + " for tokens: {}", elapsed, ret.toRefresh); } } }, 0, ret.refreshFrequencyMillis, TimeUnit.MILLISECONDS); return ret; }
public static LockRefreshingLockService create(LockService delegate) { final LockRefreshingLockService ret = new LockRefreshingLockService(delegate); ret.exec.scheduleWithFixedDelay(() -> { long startTime = System.currentTimeMillis(); try { ret.refreshLocks(); } catch (Throwable t) { log.warn("Failed to refresh locks", t); } finally { long elapsed = System.currentTimeMillis() - startTime; if (elapsed > LockRequest.getDefaultLockTimeout().toMillis() / 2) { log.warn("Refreshing locks took {} milliseconds" + " for tokens: {}", elapsed, ret.toRefresh); } else if (elapsed > ret.refreshFrequencyMillis) { log.info("Refreshing locks took {} milliseconds" + " for tokens: {}", elapsed, ret.toRefresh); } } }, 0, ret.refreshFrequencyMillis, TimeUnit.MILLISECONDS); return ret; }
long lockTimeoutMs = LockRequest.getDefaultLockTimeout().toMillis(); LockRequest request = LockRequest.builder(ImmutableSortedMap.of( lock1, LockMode.READ, lock2, LockMode.WRITE)).withLockedInVersionId(10).build();
@Test public void setsGlobalDefaultLockTimeout() { TimeDuration expectedTimeout = SimpleTimeDuration.of(47, TimeUnit.SECONDS); AtlasDbConfig atlasDbConfig = ImmutableAtlasDbConfig.builder() .keyValueService(new InMemoryAtlasDbConfig()) .defaultLockTimeoutSeconds((int) expectedTimeout.getTime()) .build(); TransactionManagers.builder() .config(atlasDbConfig) .userAgent("test") .globalMetricsRegistry(new MetricRegistry()) .globalTaggedMetricRegistry(DefaultTaggedMetricRegistry.getDefault()) .registrar(environment) .build() .serializable(); assertEquals(expectedTimeout, LockRequest.getDefaultLockTimeout()); LockRequest lockRequest = LockRequest .builder(ImmutableSortedMap.of(StringLockDescriptor.of("foo"), LockMode.WRITE)).build(); assertEquals(expectedTimeout, lockRequest.getLockTimeout()); }
long lockTimeoutMs = LockRequest.getDefaultLockTimeout().toMillis(); LockRequest request = LockRequest.builder(ImmutableSortedMap.of( lock1, LockMode.READ, lock2, LockMode.WRITE))
long lockTimeoutMs = LockRequest.getDefaultLockTimeout().toMillis(); LockRequest request = LockRequest.builder(ImmutableSortedMap.of( lock1, LockMode.READ, lock2, LockMode.WRITE))