use of com.cinchapi.concourse.server.model.Value in project concourse by cinchapi.
the class RangeLockServiceTest method testReadLteIsNotRangeBlockedIfWritingGtValue.
@Test
public void testReadLteIsNotRangeBlockedIfWritingGtValue() throws InterruptedException {
final Text key = Variables.register("key", TestData.getText());
final Value value = Variables.register("value", TestData.getValue());
final CountDownLatch startLatch = new CountDownLatch(1);
final CountDownLatch finishLatch = new CountDownLatch(1);
Thread t = new Thread(new Runnable() {
@Override
public void run() {
Value gtValue = Variables.register("gtValue", increase(value));
rangeLockService.getWriteLock(key, gtValue).lock();
startLatch.countDown();
try {
finishLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
rangeLockService.getWriteLock(key, gtValue).unlock();
}
});
t.start();
startLatch.await();
Assert.assertFalse(rangeLockService.isRangeBlocked(LockType.READ, RangeToken.forReading(key, Operator.LESS_THAN_OR_EQUALS, value)));
finishLatch.countDown();
}
use of com.cinchapi.concourse.server.model.Value in project concourse by cinchapi.
the class RangeLockServiceTest method testWriteNotRangeBlockedIfNoReading.
@Test
public void testWriteNotRangeBlockedIfNoReading() {
Text key = Variables.register("key", TestData.getText());
Value value = Variables.register("value", TestData.getValue());
Assert.assertFalse(rangeLockService.isRangeBlocked(LockType.WRITE, RangeToken.forWriting(key, value)));
}
use of com.cinchapi.concourse.server.model.Value in project concourse by cinchapi.
the class RangeLockServiceTest method testReadBwIsRangedBlockedIfWritingEqLowerValue.
@Test
public void testReadBwIsRangedBlockedIfWritingEqLowerValue() throws InterruptedException {
final Text key = Variables.register("key", TestData.getText());
final Value value = Variables.register("value", TestData.getValue());
final Value value1 = Variables.register("value1", increase(value));
final CountDownLatch startLatch = new CountDownLatch(1);
final CountDownLatch finishLatch = new CountDownLatch(1);
Thread t = new Thread(new Runnable() {
@Override
public void run() {
rangeLockService.getWriteLock(key, value).lock();
startLatch.countDown();
try {
finishLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
rangeLockService.getWriteLock(key, value).unlock();
}
});
t.start();
startLatch.await();
Assert.assertTrue(rangeLockService.isRangeBlocked(LockType.READ, RangeToken.forReading(key, Operator.BETWEEN, value, value1)));
finishLatch.countDown();
}
use of com.cinchapi.concourse.server.model.Value in project concourse by cinchapi.
the class RangeLockServiceTest method testReadLtIsNotRangeBlockedIfWritingEqValue.
@Test
public void testReadLtIsNotRangeBlockedIfWritingEqValue() throws InterruptedException {
final Text key = Variables.register("key", TestData.getText());
final Value value = Variables.register("value", TestData.getValue());
final CountDownLatch startLatch = new CountDownLatch(1);
final CountDownLatch finishLatch = new CountDownLatch(1);
Thread t = new Thread(new Runnable() {
@Override
public void run() {
rangeLockService.getWriteLock(key, value).lock();
startLatch.countDown();
try {
finishLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
rangeLockService.getWriteLock(key, value).unlock();
}
});
t.start();
startLatch.await();
Assert.assertFalse(rangeLockService.isRangeBlocked(LockType.READ, RangeToken.forReading(key, Operator.LESS_THAN, value)));
finishLatch.countDown();
}
use of com.cinchapi.concourse.server.model.Value in project concourse by cinchapi.
the class RangeLockServiceTest method testReadLtIsNotBlockedIfWritingGtValue.
@Test
public void testReadLtIsNotBlockedIfWritingGtValue() throws InterruptedException {
final Text key = Variables.register("key", TestData.getText());
final Value value = Variables.register("value", TestData.getValue());
final CountDownLatch startLatch = new CountDownLatch(1);
final CountDownLatch finishLatch = new CountDownLatch(1);
Thread t = new Thread(new Runnable() {
@Override
public void run() {
Value gtValue = Variables.register("gtValue", increase(value));
rangeLockService.getWriteLock(key, gtValue).lock();
startLatch.countDown();
try {
finishLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
rangeLockService.getWriteLock(key, gtValue).unlock();
}
});
t.start();
startLatch.await();
Assert.assertFalse(rangeLockService.isRangeBlocked(LockType.READ, RangeToken.forReading(key, Operator.LESS_THAN, value)));
finishLatch.countDown();
}
Aggregations