• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java ShmId类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: allocSlotFromExistingShm

import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.ShmId; //导入依赖的package包/类
/**
 * Pull a slot out of a preexisting shared memory segment.
 *
 * Must be called with the manager lock held.
 *
 * @param blockId     The blockId to put inside the Slot object.
 *
 * @return            null if none of our shared memory segments contain a
 *                      free slot; the slot object otherwise.
 */
private Slot allocSlotFromExistingShm(ExtendedBlockId blockId) {
  if (notFull.isEmpty()) {
    return null;
  }
  Entry<ShmId, DfsClientShm> entry = notFull.firstEntry();
  DfsClientShm shm = entry.getValue();
  ShmId shmId = shm.getShmId();
  Slot slot = shm.allocAndRegisterSlot(blockId);
  if (shm.isFull()) {
    if (LOG.isTraceEnabled()) {
      LOG.trace(this + ": pulled the last slot " + slot.getSlotIdx() +
          " out of " + shm);
    }
    DfsClientShm removedShm = notFull.remove(shmId);
    Preconditions.checkState(removedShm == shm);
    full.put(shmId, shm);
  } else {
    if (LOG.isTraceEnabled()) {
      LOG.trace(this + ": pulled slot " + slot.getSlotIdx() +
          " out of " + shm);
    }
  }
  return slot;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:35,代码来源:DfsClientShmManager.java


示例2: unregisterSlot

import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.ShmId; //导入依赖的package包/类
public synchronized void unregisterSlot(SlotId slotId)
    throws InvalidRequestException {
  if (!enabled) {
    if (LOG.isTraceEnabled()) {
      LOG.trace("unregisterSlot: ShortCircuitRegistry is " +
          "not enabled.");
    }
    throw new UnsupportedOperationException();
  }
  ShmId shmId = slotId.getShmId();
  RegisteredShm shm = segments.get(shmId);
  if (shm == null) {
    throw new InvalidRequestException("there is no shared memory segment " +
        "registered with shmId " + shmId);
  }
  Slot slot = shm.getSlot(slotId.getSlotIdx());
  slot.makeInvalid();
  shm.unregisterSlot(slotId.getSlotIdx());
  slots.remove(slot.getBlockId(), slot);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:21,代码来源:ShortCircuitRegistry.java


示例3: allocSlotFromExistingShm

import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.ShmId; //导入依赖的package包/类
/**
 * Pull a slot out of a preexisting shared memory segment.
 *
 * Must be called with the manager lock held.
 *
 * @param blockId     The blockId to put inside the Slot object.
 *
 * @return            null if none of our shared memory segments contain a
 *                      free slot; the slot object otherwise.
 */
private Slot allocSlotFromExistingShm(ExtendedBlockId blockId) {
  if (notFull.isEmpty()) {
    return null;
  }
  Entry<ShmId, DfsClientShm> entry = notFull.firstEntry();
  DfsClientShm shm = entry.getValue();
  ShmId shmId = shm.getShmId();
  Slot slot = shm.allocAndRegisterSlot(blockId);
  if (shm.isFull()) {
    LOG.trace("{}: pulled the last slot {} out of {}",
        this, slot.getSlotIdx(), shm);
    DfsClientShm removedShm = notFull.remove(shmId);
    Preconditions.checkState(removedShm == shm);
    full.put(shmId, shm);
  } else {
    LOG.trace("{}: pulled slot {} out of {}", this, slot.getSlotIdx(), shm);
  }
  return slot;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:30,代码来源:DfsClientShmManager.java


示例4: createNewMemorySegment

import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.ShmId; //导入依赖的package包/类
/**
 * Handle a DFSClient request to create a new memory segment.
 *
 * @param clientName    Client name as reported by the client.
 * @param sock          The DomainSocket to associate with this memory
 *                        segment.  When this socket is closed, or the
 *                        other side writes anything to the socket, the
 *                        segment will be closed.  This can happen at any
 *                        time, including right after this function returns.
 * @return              A NewShmInfo object.  The caller must close the
 *                        NewShmInfo object once they are done with it.
 * @throws IOException  If the new memory segment could not be created.
 */
public NewShmInfo createNewMemorySegment(String clientName,
    DomainSocket sock) throws IOException {
  NewShmInfo info = null;
  RegisteredShm shm = null;
  ShmId shmId = null;
  synchronized (this) {
    if (!enabled) {
      if (LOG.isTraceEnabled()) {
        LOG.trace("createNewMemorySegment: ShortCircuitRegistry is " +
            "not enabled.");
      }
      throw new UnsupportedOperationException();
    }
    FileInputStream fis = null;
    try {
      do {
        shmId = ShmId.createRandom();
      } while (segments.containsKey(shmId));
      fis = shmFactory.createDescriptor(clientName, SHM_LENGTH);
      shm = new RegisteredShm(clientName, shmId, fis, this);
    } finally {
      if (shm == null) {
        IOUtils.closeQuietly(fis);
      }
    }
    info = new NewShmInfo(shmId, fis);
    segments.put(shmId, shm);
  }
  // Drop the registry lock to prevent deadlock.
  // After this point, RegisteredShm#handle may be called at any time.
  watcher.add(sock, shm);
  if (LOG.isTraceEnabled()) {
    LOG.trace("createNewMemorySegment: created " + info.shmId);
  }
  return info;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:50,代码来源:ShortCircuitRegistry.java


示例5: registerSlot

import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.ShmId; //导入依赖的package包/类
public synchronized void registerSlot(ExtendedBlockId blockId, SlotId slotId,
    boolean isCached) throws InvalidRequestException {
  if (!enabled) {
    if (LOG.isTraceEnabled()) {
      LOG.trace(this + " can't register a slot because the " +
          "ShortCircuitRegistry is not enabled.");
    }
    throw new UnsupportedOperationException();
  }
  ShmId shmId = slotId.getShmId();
  RegisteredShm shm = segments.get(shmId);
  if (shm == null) {
    throw new InvalidRequestException("there is no shared memory segment " +
        "registered with shmId " + shmId);
  }
  Slot slot = shm.registerSlot(slotId.getSlotIdx(), blockId);
  if (isCached) {
    slot.makeAnchorable();
  } else {
    slot.makeUnanchorable();
  }
  boolean added = slots.put(blockId, slot);
  Preconditions.checkState(added);
  if (LOG.isTraceEnabled()) {
    LOG.trace(this + ": registered " + blockId + " with slot " +
      slotId + " (isCached=" + isCached + ")");
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:29,代码来源:ShortCircuitRegistry.java


示例6: convert

import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.ShmId; //导入依赖的package包/类
public static ShortCircuitShmIdProto convert(ShmId shmId) {
  return ShortCircuitShmIdProto.newBuilder().
      setHi(shmId.getHi()).
      setLo(shmId.getLo()).
      build();

}
 
开发者ID:naver,项目名称:hadoop,代码行数:8,代码来源:PBHelper.java


示例7: testStartupShutdown

import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.ShmId; //导入依赖的package包/类
@Test(timeout=60000)
public void testStartupShutdown() throws Exception {
  File path = new File(TEST_BASE, "testStartupShutdown");
  path.mkdirs();
  SharedFileDescriptorFactory factory =
      SharedFileDescriptorFactory.create("shm_",
          new String[] { path.getAbsolutePath() } );
  FileInputStream stream =
      factory.createDescriptor("testStartupShutdown", 4096);
  ShortCircuitShm shm = new ShortCircuitShm(ShmId.createRandom(), stream);
  shm.free();
  stream.close();
  FileUtil.fullyDelete(path);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:15,代码来源:TestShortCircuitShm.java


示例8: checkNumberOfSegmentsAndSlots

import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.ShmId; //导入依赖的package包/类
static private void checkNumberOfSegmentsAndSlots(final int expectedSegments,
      final int expectedSlots, ShortCircuitRegistry registry) {
  registry.visit(new ShortCircuitRegistry.Visitor() {
    @Override
    public void accept(HashMap<ShmId, RegisteredShm> segments,
                       HashMultimap<ExtendedBlockId, Slot> slots) {
      Assert.assertEquals(expectedSegments, segments.size());
      Assert.assertEquals(expectedSlots, slots.size());
    }
  });
}
 
开发者ID:naver,项目名称:hadoop,代码行数:12,代码来源:TestShortCircuitCache.java


示例9: testPreReceiptVerificationDfsClientCanDoScr

import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.ShmId; //导入依赖的package包/类
@Test(timeout=60000)
public void testPreReceiptVerificationDfsClientCanDoScr() throws Exception {
  BlockReaderTestUtil.enableShortCircuitShmTracing();
  TemporarySocketDirectory sockDir = new TemporarySocketDirectory();
  Configuration conf = createShortCircuitConf(
      "testPreReceiptVerificationDfsClientCanDoScr", sockDir);
  conf.setLong(DFS_CLIENT_READ_SHORTCIRCUIT_STREAMS_CACHE_EXPIRY_MS_KEY,
      1000000000L);
  MiniDFSCluster cluster =
      new MiniDFSCluster.Builder(conf).numDataNodes(1).build();
  cluster.waitActive();
  DistributedFileSystem fs = cluster.getFileSystem();
  fs.getClient().getConf().brfFailureInjector =
      new TestPreReceiptVerificationFailureInjector();
  final Path TEST_PATH1 = new Path("/test_file1");
  DFSTestUtil.createFile(fs, TEST_PATH1, 4096, (short)1, 0xFADE2);
  final Path TEST_PATH2 = new Path("/test_file2");
  DFSTestUtil.createFile(fs, TEST_PATH2, 4096, (short)1, 0xFADE2);
  DFSTestUtil.readFileBuffer(fs, TEST_PATH1);
  DFSTestUtil.readFileBuffer(fs, TEST_PATH2);
  ShortCircuitRegistry registry =
      cluster.getDataNodes().get(0).getShortCircuitRegistry();
  registry.visit(new ShortCircuitRegistry.Visitor() {
    @Override
    public void accept(HashMap<ShmId, RegisteredShm> segments,
                       HashMultimap<ExtendedBlockId, Slot> slots) {
      Assert.assertEquals(1, segments.size());
      Assert.assertEquals(2, slots.size());
    }
  });
  cluster.shutdown();
  sockDir.close();
}
 
开发者ID:naver,项目名称:hadoop,代码行数:34,代码来源:TestShortCircuitCache.java


示例10: testPreReceiptVerificationDfsClientCanDoScr

import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.ShmId; //导入依赖的package包/类
@Test(timeout=60000)
public void testPreReceiptVerificationDfsClientCanDoScr() throws Exception {
  BlockReaderTestUtil.enableShortCircuitShmTracing();
  TemporarySocketDirectory sockDir = new TemporarySocketDirectory();
  Configuration conf = createShortCircuitConf(
      "testPreReceiptVerificationDfsClientCanDoScr", sockDir);
  conf.setLong(
      HdfsClientConfigKeys.Read.ShortCircuit.STREAMS_CACHE_EXPIRY_MS_KEY,
      1000000000L);
  MiniDFSCluster cluster =
      new MiniDFSCluster.Builder(conf).numDataNodes(1).build();
  cluster.waitActive();
  DistributedFileSystem fs = cluster.getFileSystem();
  BlockReaderFactory.setFailureInjectorForTesting(
      new TestPreReceiptVerificationFailureInjector());
  final Path TEST_PATH1 = new Path("/test_file1");
  DFSTestUtil.createFile(fs, TEST_PATH1, 4096, (short)1, 0xFADE2);
  final Path TEST_PATH2 = new Path("/test_file2");
  DFSTestUtil.createFile(fs, TEST_PATH2, 4096, (short)1, 0xFADE2);
  DFSTestUtil.readFileBuffer(fs, TEST_PATH1);
  DFSTestUtil.readFileBuffer(fs, TEST_PATH2);
  ShortCircuitRegistry registry =
      cluster.getDataNodes().get(0).getShortCircuitRegistry();
  registry.visit(new ShortCircuitRegistry.Visitor() {
    @Override
    public void accept(HashMap<ShmId, RegisteredShm> segments,
                       HashMultimap<ExtendedBlockId, Slot> slots) {
      Assert.assertEquals(1, segments.size());
      Assert.assertEquals(2, slots.size());
    }
  });
  cluster.shutdown();
  sockDir.close();
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:35,代码来源:TestShortCircuitCache.java


示例11: freeSlot

import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.ShmId; //导入依赖的package包/类
/**
 * Stop tracking a slot.
 *
 * Must be called with the EndpointShmManager lock held.
 *
 * @param slot          The slot to release.
 */
void freeSlot(Slot slot) {
  DfsClientShm shm = (DfsClientShm)slot.getShm();
  shm.unregisterSlot(slot.getSlotIdx());
  if (shm.isDisconnected()) {
    // Stale shared memory segments should not be tracked here.
    Preconditions.checkState(!full.containsKey(shm.getShmId()));
    Preconditions.checkState(!notFull.containsKey(shm.getShmId()));
    if (shm.isEmpty()) {
      if (LOG.isTraceEnabled()) {
        LOG.trace(this + ": freeing empty stale " + shm);
      }
      shm.free();
    }
  } else {
    ShmId shmId = shm.getShmId();
    full.remove(shmId); // The shm can't be full if we just freed a slot.
    if (shm.isEmpty()) {
      notFull.remove(shmId);
  
      // If the shared memory segment is now empty, we call shutdown(2) on
      // the UNIX domain socket associated with it.  The DomainSocketWatcher,
      // which is watching this socket, will call DfsClientShm#handle,
      // cleaning up this shared memory segment.
      //
      // See #{DfsClientShmManager#domainSocketWatcher} for details about why
      // we don't want to call DomainSocketWatcher#remove directly here.
      //
      // Note that we could experience 'fragmentation' here, where the
      // DFSClient allocates a bunch of slots in different shared memory
      // segments, and then frees most of them, but never fully empties out
      // any segment.  We make some attempt to avoid this fragmentation by
      // always allocating new slots out of the shared memory segment with the
      // lowest ID, but it could still occur.  In most workloads,
      // fragmentation should not be a major concern, since it doesn't impact
      // peak file descriptor usage or the speed of allocation.
      if (LOG.isTraceEnabled()) {
        LOG.trace(this + ": shutting down UNIX domain socket for " +
            "empty " + shm);
      }
      shutdown(shm);
    } else {
      notFull.put(shmId, shm);
    }
  }
}
 
开发者ID:naver,项目名称:hadoop,代码行数:53,代码来源:DfsClientShmManager.java


示例12: PerDatanodeVisitorInfo

import org.apache.hadoop.hdfs.shortcircuit.ShortCircuitShm.ShmId; //导入依赖的package包/类
PerDatanodeVisitorInfo(TreeMap<ShmId, DfsClientShm> full,
    TreeMap<ShmId, DfsClientShm> notFull, boolean disabled) {
  this.full = full;
  this.notFull = notFull;
  this.disabled = disabled;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:7,代码来源:DfsClientShmManager.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java EmbeddedWindowPeer类代码示例发布时间:2022-05-22
下一篇:
Java ReactSwitchManager类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap