use of org.infinispan.server.hotrod.test.HotRodClient in project infinispan by infinispan.
the class HotRodDistributionTest method testSize.
public void testSize(Method m) {
// Cache contents not cleared between methods to avoid deleting
// topology information, so just use a different cache
String newCacheName = "dist-size";
startCaches(newCacheName);
List<HotRodClient> newClients = createClients(newCacheName);
try {
TestSizeResponse sizeStart = newClients.get(0).size();
assertStatus(sizeStart, Success);
assertEquals(0, sizeStart.size);
for (int i = 0; i < 20; i++) {
newClients.get(1).assertPut(m, "k-" + i, "v-" + i);
}
TestSizeResponse sizeEnd = newClients.get(1).size();
assertStatus(sizeEnd, Success);
assertEquals(20, sizeEnd.size);
} finally {
newClients.forEach(HotRodTestingUtil::killClient);
}
}
use of org.infinispan.server.hotrod.test.HotRodClient in project infinispan by infinispan.
the class HotRodDistributionTest method testDistributedPutWithTopologyChanges.
public void testDistributedPutWithTopologyChanges(Method m) {
HotRodClient client1 = clients().get(0);
HotRodClient client2 = clients().get(1);
TestResponse resp = client1.ping(INTELLIGENCE_HASH_DISTRIBUTION_AWARE, 0);
assertStatus(resp, Success);
assertHashTopology20Received(resp.topologyResponse, servers(), cacheName(), currentServerTopologyId());
resp = client1.put(k(m), 0, 0, v(m), INTELLIGENCE_BASIC, 0);
assertStatus(resp, Success);
assertEquals(resp.topologyResponse, null);
assertSuccess(client2.get(k(m), 0), v(m));
resp = client1.put(k(m), 0, 0, v(m, "v1-"), INTELLIGENCE_TOPOLOGY_AWARE, 0);
assertStatus(resp, Success);
assertTopologyReceived(resp.topologyResponse, servers(), currentServerTopologyId());
resp = client2.put(k(m), 0, 0, v(m, "v2-"), INTELLIGENCE_TOPOLOGY_AWARE, 0);
assertStatus(resp, Success);
assertTopologyReceived(resp.topologyResponse, servers(), currentServerTopologyId());
resp = client1.put(k(m), 0, 0, v(m, "v3-"), INTELLIGENCE_TOPOLOGY_AWARE, ClusterCacheStatus.INITIAL_TOPOLOGY_ID + 2 * nodeCount());
assertStatus(resp, Success);
assertEquals(resp.topologyResponse, null);
assertSuccess(client2.get(k(m), 0), v(m, "v3-"));
resp = client1.put(k(m), 0, 0, v(m, "v4-"), INTELLIGENCE_HASH_DISTRIBUTION_AWARE, 0);
assertStatus(resp, Success);
assertHashTopology20Received(resp.topologyResponse, servers(), cacheName(), currentServerTopologyId());
assertSuccess(client2.get(k(m), 0), v(m, "v4-"));
resp = client2.put(k(m), 0, 0, v(m, "v5-"), INTELLIGENCE_HASH_DISTRIBUTION_AWARE, 0);
assertStatus(resp, Success);
assertHashTopology20Received(resp.topologyResponse, servers(), cacheName(), currentServerTopologyId());
assertSuccess(client2.get(k(m), 0), v(m, "v5-"));
HotRodServer newServer = startClusteredServer(servers().get(1).getPort() + 25);
HotRodClient newClient = new HotRodClient("127.0.0.1", newServer.getPort(), cacheName(), protocolVersion());
List<HotRodServer> allServers = Stream.concat(Stream.of(newServer), servers().stream()).collect(Collectors.toList());
try {
log.trace("New client started, modify key to be v6-*");
resp = newClient.put(k(m), 0, 0, v(m, "v6-"), INTELLIGENCE_HASH_DISTRIBUTION_AWARE, 0);
assertStatus(resp, Success);
assertHashTopology20Received(resp.topologyResponse, allServers, cacheName(), currentServerTopologyId());
log.trace("Get key and verify that's v6-*");
assertSuccess(client2.get(k(m), 0), v(m, "v6-"));
resp = client2.put(k(m), 0, 0, v(m, "v7-"), INTELLIGENCE_HASH_DISTRIBUTION_AWARE, 0);
assertStatus(resp, Success);
assertHashTopology20Received(resp.topologyResponse, allServers, cacheName(), currentServerTopologyId());
assertSuccess(newClient.get(k(m), 0), v(m, "v7-"));
} finally {
log.trace("Stopping new server");
killClient(newClient);
stopClusteredServer(newServer);
TestingUtil.waitForNoRebalance(cache(0, cacheName()), cache(1, cacheName()));
log.trace("New server stopped");
}
resp = client2.put(k(m), 0, 0, v(m, "v8-"), INTELLIGENCE_HASH_DISTRIBUTION_AWARE, ClusterCacheStatus.INITIAL_TOPOLOGY_ID + 2 * nodeCount());
assertStatus(resp, Success);
assertHashTopology20Received(resp.topologyResponse, servers(), cacheName(), currentServerTopologyId());
assertSuccess(client1.get(k(m), 0), v(m, "v8-"));
}
use of org.infinispan.server.hotrod.test.HotRodClient in project infinispan by infinispan.
the class HotRodFunctionalTest method testLifespan2x.
public void testLifespan2x(Method m) {
try (HotRodClient client2x = connectClient(HotRodVersion.HOTROD_29.getVersion())) {
// Expire in 1 day by setting the lifespan in seconds since the Unix epoch
long startMillis = System.currentTimeMillis();
long lifespanMillis = TimeUnit.MINUTES.toMillis(1);
int expirationUnixTime = (int) ((startMillis + lifespanMillis) / 1000);
assertStatus(client2x.put(k(m), expirationUnixTime, expirationUnixTime, v(m)), Success);
CacheEntry<byte[], byte[]> entry = advancedCache.withStorageMediaType().getCacheEntry(k(m));
// The lifespan is set to expirationUnixTime * 1000 - <current time on the server>
long endMillis = System.currentTimeMillis();
long lowerBound = expirationUnixTime * 1000L - endMillis;
long upperBound = expirationUnixTime * 1000L - startMillis;
assertBetween(lowerBound, upperBound, entry.getLifespan());
assertBetween(lowerBound, upperBound, entry.getMaxIdle());
}
}
use of org.infinispan.server.hotrod.test.HotRodClient in project infinispan by infinispan.
the class HotRodMergeTest method createCacheManagers.
@Override
protected void createCacheManagers() throws Throwable {
ConfigurationBuilder dcc = hotRodCacheConfiguration();
dcc.clustering().cacheMode(cacheMode).hash();
dcc.clustering().partitionHandling().whenSplit(partitionHandling);
createClusteredCaches(numMembersInCluster, dcc, new TransportFlags().withFD(true).withMerge(true));
waitForClusterToForm();
// Allow servers for both instances to run in parallel
int threadServerPort = serverPort();
int nextServerPort = threadServerPort + partitionHandling.ordinal() * numMembersInCluster;
for (int i = 0; i < numMembersInCluster; i++) {
servers.add(startHotRodServer(cacheManagers.get(i), nextServerPort));
nextServerPort += 1;
}
client = new HotRodClient("127.0.0.1", servers.get(0).getPort(), getDefaultCacheName(), (byte) 21);
}
use of org.infinispan.server.hotrod.test.HotRodClient in project infinispan by infinispan.
the class HotRodReplicationTest method testSize.
public void testSize(Method m) {
// Cache contents not cleared between methods to avoid deleting
// topology information, so just use a different cache
String newCacheName = "repl-size";
startCaches(newCacheName);
List<HotRodClient> newClients = createClients(newCacheName);
try {
TestSizeResponse sizeStart = newClients.get(0).size();
assertStatus(sizeStart, Success);
assertEquals(0, sizeStart.size);
for (int i = 0; i < 20; i++) {
newClients.get(1).assertPut(m, "k-" + i, "v-" + i);
}
TestSizeResponse sizeEnd = newClients.get(1).size();
assertStatus(sizeEnd, Success);
assertEquals(20, sizeEnd.size);
} finally {
newClients.forEach(HotRodClient::stop);
}
}
Aggregations