package org.infinispan.client.hotrod.stress;
import java.util.concurrent.TimeUnit;
import org.infinispan.client.hotrod.RemoteCache;
import org.infinispan.client.hotrod.RemoteCacheManager;
import org.infinispan.client.hotrod.test.HotRodClientTestingUtil;
import org.infinispan.configuration.cache.CacheMode;
import org.infinispan.configuration.cache.ConfigurationBuilder;
import org.infinispan.manager.EmbeddedCacheManager;
import org.infinispan.server.hotrod.HotRodServer;
import org.infinispan.test.SingleCacheManagerTest;
import org.infinispan.test.fwk.TestCacheManagerFactory;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
/**
* A simple test that stresses a local HotRod server.
*
* @author Dan Berindei
* @since 8.1
*/
@Test(groups = "profiling", testName = "client.hotrod.profiling.HotRodLocalProfilingTest")
public class HotRodLocalProfilingTest extends SingleCacheManagerTest {
public void testPutBigSizeValue() {
System.out.println("Starting test");
long nanos = System.nanoTime();
HotRodServer hotRodServer = HotRodClientTestingUtil.startHotRodServer(cacheManager);
String servers = HotRodClientTestingUtil.getServersString(hotRodServer);
org.infinispan.client.hotrod.configuration.ConfigurationBuilder clientBuilder =
new org.infinispan.client.hotrod.configuration.ConfigurationBuilder();
clientBuilder.addServers(servers);
RemoteCacheManager remoteCacheManager = new RemoteCacheManager(clientBuilder.build());
RemoteCache<Object, Object> remoteCache = remoteCacheManager.getCache();
for (int i = 0; i < 10000000; i++) {
byte[] key = ("key" + i).getBytes();
byte[] value = ("value" + i).getBytes();
remoteCache.put(key, value);
if ((i & 0xFFFF) == 0xFFFF) {
System.out.println("Written " + i + " entries.");
}
}
System.out.println("Test took " + TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - nanos) + "ms.");
}
@AfterMethod
@Override
protected void clearContent() {
// Do nothing
}
@Override
protected EmbeddedCacheManager createCacheManager() throws Exception {
ConfigurationBuilder configuration = new ConfigurationBuilder();
configuration.clustering().cacheMode(CacheMode.REPL_SYNC);
return TestCacheManagerFactory.createClusteredCacheManager(configuration);
}
}