当前位置: 首页>>代码示例>>Java>>正文


Java CacheEntry类代码示例

本文整理汇总了Java中org.apache.hadoop.oncrpc.RpcCallCache.CacheEntry的典型用法代码示例。如果您正苦于以下问题:Java CacheEntry类的具体用法?Java CacheEntry怎么用?Java CacheEntry使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


CacheEntry类属于org.apache.hadoop.oncrpc.RpcCallCache包,在下文中一共展示了CacheEntry类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testAddRemoveEntries

import org.apache.hadoop.oncrpc.RpcCallCache.CacheEntry; //导入依赖的package包/类
@Test
public void testAddRemoveEntries() throws UnknownHostException {
  RpcCallCache cache = new RpcCallCache("test", 100);
  InetAddress clientIp = InetAddress.getByName("1.1.1.1");
  int xid = 100;
  
  // Ensure null is returned when there is no entry in the cache
  // An entry is added to indicate the request is in progress
  CacheEntry e = cache.checkOrAddToCache(clientIp, xid);
  assertNull(e);
  e = cache.checkOrAddToCache(clientIp, xid);
  validateInprogressCacheEntry(e);
  
  // Set call as completed
  RpcResponse response = mock(RpcResponse.class);
  cache.callCompleted(clientIp, xid, response);
  e = cache.checkOrAddToCache(clientIp, xid);
  validateCompletedCacheEntry(e, response);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:20,代码来源:TestRpcCallCache.java

示例2: testAddRemoveEntries

import org.apache.hadoop.oncrpc.RpcCallCache.CacheEntry; //导入依赖的package包/类
@Test
public void testAddRemoveEntries() throws UnknownHostException {
  RpcCallCache cache = new RpcCallCache("test", 100);
  InetAddress clientIp = InetAddress.getByName("1.1.1.1");
  int xid = 100;
  
  // Ensure null is returned when there is no entry in the cache
  // An entry is added to indicate the request is in progress
  CacheEntry e = cache.checkOrAddToCache(clientIp, xid);
  assertNull(e);
  e = cache.checkOrAddToCache(clientIp, xid);
  validateInprogressCacheEntry(e);
  
  // Set call as completed
  XDR response = new XDR();
  cache.callCompleted(clientIp, xid, response);
  e = cache.checkOrAddToCache(clientIp, xid);
  validateCompletedCacheEntry(e, response);
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:20,代码来源:TestRpcCallCache.java

示例3: testCacheEntry

import org.apache.hadoop.oncrpc.RpcCallCache.CacheEntry; //导入依赖的package包/类
@Test
public void testCacheEntry() {
  CacheEntry c = new CacheEntry();
  validateInprogressCacheEntry(c);
  assertTrue(c.isInProgress());
  assertFalse(c.isCompleted());
  assertNull(c.getResponse());
  
  RpcResponse response = mock(RpcResponse.class);
  c.setResponse(response);
  validateCompletedCacheEntry(c, response);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:13,代码来源:TestRpcCallCache.java

示例4: testCacheFunctionality

import org.apache.hadoop.oncrpc.RpcCallCache.CacheEntry; //导入依赖的package包/类
@Test
public void testCacheFunctionality() throws UnknownHostException {
  RpcCallCache cache = new RpcCallCache("Test", 10);
  
  // Add 20 entries to the cache and only last 10 should be retained
  int size = 0;
  for (int clientId = 0; clientId < 20; clientId++) {
    InetAddress clientIp = InetAddress.getByName("1.1.1."+clientId);
    System.out.println("Adding " + clientIp);
    cache.checkOrAddToCache(clientIp, 0);
    size = Math.min(++size, 10);
    System.out.println("Cache size " + cache.size());
    assertEquals(size, cache.size()); // Ensure the cache size is correct
    
    // Ensure the cache entries are correct
    int startEntry = Math.max(clientId - 10 + 1, 0);
    Iterator<Entry<ClientRequest, CacheEntry>> iterator = cache.iterator();
    for (int i = 0; i < size; i++) {
      ClientRequest key = iterator.next().getKey();
      System.out.println("Entry " + key.getClientId());
      assertEquals(InetAddress.getByName("1.1.1." + (startEntry + i)),
          key.getClientId());
    }
    
    // Ensure cache entries are returned as in progress.
    for (int i = 0; i < size; i++) {
      CacheEntry e = cache.checkOrAddToCache(
          InetAddress.getByName("1.1.1." + (startEntry + i)), 0);
      assertNotNull(e);
      assertTrue(e.isInProgress());
      assertFalse(e.isCompleted());
    }
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:35,代码来源:TestRpcCallCache.java

示例5: testCacheEntry

import org.apache.hadoop.oncrpc.RpcCallCache.CacheEntry; //导入依赖的package包/类
@Test
public void testCacheEntry() {
  CacheEntry c = new CacheEntry();
  validateInprogressCacheEntry(c);
  assertTrue(c.isInProgress());
  assertFalse(c.isCompleted());
  assertNull(c.getResponse());
  
  XDR response = new XDR();
  c.setResponse(response);
  validateCompletedCacheEntry(c, response);
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:13,代码来源:TestRpcCallCache.java

示例6: validateInprogressCacheEntry

import org.apache.hadoop.oncrpc.RpcCallCache.CacheEntry; //导入依赖的package包/类
private void validateInprogressCacheEntry(CacheEntry c) {
  assertTrue(c.isInProgress());
  assertFalse(c.isCompleted());
  assertNull(c.getResponse());
}
 
开发者ID:naver,项目名称:hadoop,代码行数:6,代码来源:TestRpcCallCache.java

示例7: validateCompletedCacheEntry

import org.apache.hadoop.oncrpc.RpcCallCache.CacheEntry; //导入依赖的package包/类
private void validateCompletedCacheEntry(CacheEntry c, RpcResponse response) {
  assertFalse(c.isInProgress());
  assertTrue(c.isCompleted());
  assertEquals(response, c.getResponse());
}
 
开发者ID:naver,项目名称:hadoop,代码行数:6,代码来源:TestRpcCallCache.java

示例8: handle

import org.apache.hadoop.oncrpc.RpcCallCache.CacheEntry; //导入依赖的package包/类
public XDR handle(XDR xdr, InetAddress client, Channel channel) {
  XDR out = new XDR();
  RpcCall rpcCall = RpcCall.read(xdr);
  if (LOG.isDebugEnabled()) {
    LOG.debug(program + " procedure #" + rpcCall.getProcedure());
  }
  
  if (!checkProgram(rpcCall.getProgram())) {
    return programMismatch(out, rpcCall);
  }

  if (!checkProgramVersion(rpcCall.getVersion())) {
    return programVersionMismatch(out, rpcCall);
  }
  
  // Check for duplicate requests in the cache for non-idempotent requests
  boolean idempotent = rpcCallCache != null && !isIdempotent(rpcCall);
  if (idempotent) {
    CacheEntry entry = rpcCallCache.checkOrAddToCache(client, rpcCall.getXid());
    if (entry != null) { // in ache 
      if (entry.isCompleted()) {
        LOG.info("Sending the cached reply to retransmitted request "
            + rpcCall.getXid());
        return entry.getResponse();
      } else { // else request is in progress
        LOG.info("Retransmitted request, transaction still in progress "
            + rpcCall.getXid());
        // TODO: ignore the request?
      }
    }
  }
  
  XDR response = handleInternal(rpcCall, xdr, out, client, channel);
  if (response.size() == 0) {
    if (LOG.isDebugEnabled()) {
      LOG.debug("No sync response, expect an async response for request XID="
          + rpcCall.getXid());
    }
  }
  
  // Add the request to the cache
  if (idempotent) {
    rpcCallCache.callCompleted(client, rpcCall.getXid(), response);
  }
  return response;
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:47,代码来源:RpcProgram.java

示例9: validateCompletedCacheEntry

import org.apache.hadoop.oncrpc.RpcCallCache.CacheEntry; //导入依赖的package包/类
private void validateCompletedCacheEntry(CacheEntry c, XDR response) {
  assertFalse(c.isInProgress());
  assertTrue(c.isCompleted());
  assertEquals(response, c.getResponse());
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:6,代码来源:TestRpcCallCache.java


注:本文中的org.apache.hadoop.oncrpc.RpcCallCache.CacheEntry类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。