use of com.cinchapi.concourse.server.model.Value in project concourse by cinchapi.
the class RangeLockServiceTest method testReadLteisRangeBlockedIfWritingLtValue.
@Test
public void testReadLteisRangeBlockedIfWritingLtValue() 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 ltValue = Variables.register("ltValue", decrease(value));
rangeLockService.getWriteLock(key, ltValue).lock();
startLatch.countDown();
try {
finishLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
rangeLockService.getWriteLock(key, ltValue).unlock();
}
});
t.start();
startLatch.await();
Assert.assertTrue(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 testReadLtIsRangeBlockedIfWritingLtValue.
@Test
public void testReadLtIsRangeBlockedIfWritingLtValue() 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 ltValue = Variables.register("ltValue", decrease(value));
rangeLockService.getWriteLock(key, ltValue).lock();
startLatch.countDown();
try {
finishLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
rangeLockService.getWriteLock(key, ltValue).unlock();
}
});
t.start();
startLatch.await();
Assert.assertTrue(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 testReadGtIsNotRangeBlockedIfWritingEqValue.
@Test
public void testReadGtIsNotRangeBlockedIfWritingEqValue() 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.GREATER_THAN, value)));
finishLatch.countDown();
}
use of com.cinchapi.concourse.server.model.Value in project concourse by cinchapi.
the class RangeLockServiceTest method testReadBwIsNotRangeBlockedIfWritingEqHigherValue.
@Test
public void testReadBwIsNotRangeBlockedIfWritingEqHigherValue() 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, value1).lock();
startLatch.countDown();
try {
finishLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
rangeLockService.getWriteLock(key, value1).unlock();
}
});
t.start();
startLatch.await();
Assert.assertFalse(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 testReadBwIsNotRangeBlockedIfWritingLtLowerValue.
@Test
public void testReadBwIsNotRangeBlockedIfWritingLtLowerValue() 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() {
Value ltLowerValue = Variables.register("ltLowerValue", decrease(value));
rangeLockService.getWriteLock(key, ltLowerValue).lock();
startLatch.countDown();
try {
finishLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
rangeLockService.getWriteLock(key, ltLowerValue).unlock();
}
});
t.start();
startLatch.await();
Assert.assertFalse(rangeLockService.isRangeBlocked(LockType.READ, RangeToken.forReading(key, Operator.BETWEEN, value, value1)));
finishLatch.countDown();
}
Aggregations