use of com.ctrip.xpipe.redis.core.protocal.protocal.LenEofType in project x-pipe by ctripcorp.
the class PsyncTest method testPsync2.
@Test
public void testPsync2() throws XpipeException, IOException, InterruptedException {
isPartial = true;
String newReplId = RunidGenerator.DEFAULT.generateRunid();
String[] data = new String[] { "+" + DefaultPsync.PARTIAL_SYNC + " " + newReplId + "\r\n", commandContent };
// create store
replicationStore.beginRdb(masterId, masterOffset, new LenEofType(0));
replicationStore.getRdbStore().endRdb();
Long secondReplIdOffset = replicationStore.getEndOffset() + 1;
runData(data);
Assert.assertEquals(newReplId, replicationStore.getMetaStore().getReplId());
Assert.assertEquals(masterId, replicationStore.getMetaStore().getReplId2());
Assert.assertEquals(secondReplIdOffset, replicationStore.getMetaStore().getSecondReplIdOffset());
}
use of com.ctrip.xpipe.redis.core.protocal.protocal.LenEofType in project x-pipe by ctripcorp.
the class PsyncTest method testPsyncPartialeRight.
@Test
public void testPsyncPartialeRight() throws XpipeException, IOException, InterruptedException {
isPartial = true;
String[] data = new String[] { "+" + DefaultPsync.PARTIAL_SYNC + "\r\n", commandContent };
// create store
replicationStore.beginRdb(masterId, masterOffset, new LenEofType(0));
replicationStore.getRdbStore().endRdb();
runData(data);
}
use of com.ctrip.xpipe.redis.core.protocal.protocal.LenEofType in project x-pipe by ctripcorp.
the class DefaultRdbStoreTest method beforeDefaultRdbStoreTest.
@Before
public void beforeDefaultRdbStoreTest() throws IOException {
String fileName = String.format("%s/%s.rdb", getTestFileDir(), getTestName());
rdbFile = new File(fileName);
rdbStore = new DefaultRdbStore(rdbFile, 1L, new LenEofType(rdbFileSize));
}
use of com.ctrip.xpipe.redis.core.protocal.protocal.LenEofType in project x-pipe by ctripcorp.
the class DefaultReplicationStoreTest method testReadWhileDestroy.
@Test
public void testReadWhileDestroy() throws Exception {
store = new DefaultReplicationStore(baseDir, new DefaultKeeperConfig(), randomKeeperRunid(), createkeeperMonitor());
store.getMetaStore().becomeActive();
int dataLen = 1000;
RdbStore rdbStore = store.beginRdb(randomKeeperRunid(), -1, new LenEofType(dataLen));
rdbStore.writeRdb(Unpooled.wrappedBuffer(randomString(dataLen).getBytes()));
rdbStore.endRdb();
CountDownLatch latch = new CountDownLatch(2);
AtomicBoolean result = new AtomicBoolean(true);
executors.execute(new AbstractExceptionLogTask() {
@Override
protected void doRun() throws Exception {
try {
sleep(2);
store.close();
store.destroy();
} finally {
latch.countDown();
}
}
});
executors.execute(new AbstractExceptionLogTask() {
@Override
protected void doRun() throws Exception {
try {
store.fullSyncIfPossible(new FullSyncListener() {
@Override
public ChannelFuture onCommand(ReferenceFileRegion referenceFileRegion) {
return null;
}
@Override
public void beforeCommand() {
}
@Override
public void setRdbFileInfo(EofType eofType, long rdbFileKeeperOffset) {
}
@Override
public void onFileData(ReferenceFileRegion referenceFileRegion) throws IOException {
sleep(10);
}
@Override
public boolean isOpen() {
return true;
}
@Override
public void exception(Exception e) {
logger.info("[exception][fail]" + e.getMessage());
result.set(false);
}
@Override
public void beforeFileData() {
}
});
} catch (Exception e) {
logger.info("[exception][fail]" + e.getMessage());
result.set(false);
} finally {
latch.countDown();
}
}
});
latch.await(100, TimeUnit.MILLISECONDS);
Assert.assertFalse(result.get());
}
use of com.ctrip.xpipe.redis.core.protocal.protocal.LenEofType in project x-pipe by ctripcorp.
the class DefaultReplicationStoreTest method testReadWrite.
@Test
public void testReadWrite() throws Exception {
store = new DefaultReplicationStore(baseDir, new DefaultKeeperConfig(), randomKeeperRunid(), createkeeperMonitor());
store.getMetaStore().becomeActive();
StringBuffer exp = new StringBuffer();
int cmdCount = 4;
int cmdLen = 10;
store.beginRdb("master", -1, new LenEofType(-1));
for (int j = 0; j < cmdCount; j++) {
ByteBuf buf = Unpooled.buffer();
String cmd = UUID.randomUUID().toString().substring(0, cmdLen);
exp.append(cmd);
buf.writeBytes(cmd.getBytes());
store.getCommandStore().appendCommands(buf);
}
String result = readCommandFileTilEnd(store, exp.length());
assertEquals(exp.toString(), result);
store.close();
}
Aggregations