java类com.google.common.collect.MapMaker的实例源码

DbLoadMergerTest.java 文件源码 项目:otter 阅读 78 收藏 0 点赞 0 评论 0
/**
 * 测试在主键发生变化后的merge操作,Update/Update/Insert
 */
@Test
public void testMergeWithUpdateKeyOfUI() {
    Map<RowKey, EventData> mergeMap = new MapMaker().makeMap();
    DbLoadMerger.merge(makeUpdateEventData(KEY_VALUE_NEW1, KEY_VALUE_NEW2), mergeMap);
    DbLoadMerger.merge(makeUpdateEventData(KEY_VALUE_NEW2, KEY_VALUE), mergeMap);
    DbLoadMerger.merge(makeInsertEventData(), mergeMap);

    for (Entry<RowKey, EventData> entry : mergeMap.entrySet()) {
        RowKey key = entry.getKey();
        EventColumn keyColumn = key.getKeys().get(0);
        Assert.assertEquals(KEY_VALUE, keyColumn.getColumnValue());
        Assert.assertEquals(KEY_NAME, keyColumn.getColumnName());

        EventData eventData = entry.getValue();
        Assert.assertEquals(SCHEMA_NAME, eventData.getSchemaName());
        Assert.assertEquals(TABLE_NAME, eventData.getTableName());
        Assert.assertEquals(TABLE_ID, eventData.getTableId());
        Assert.assertEquals(EventType.INSERT, eventData.getEventType());

        List<EventColumn> oldKeys = eventData.getOldKeys();
        List<EventColumn> keys = eventData.getKeys();

        Assert.assertNotSame(oldKeys, keys);
    }
}
DbLoadMergerTest.java 文件源码 项目:otter 阅读 31 收藏 0 点赞 0 评论 0
/**
 * 测试在主键发生变化后的merge操作,Insert/Insert
 */
@Test
public void testMergeWithUpdateKeyOfII() {
    Map<RowKey, EventData> mergeMap = new MapMaker().makeMap();
    DbLoadMerger.merge(makeInsertEventData(), mergeMap);
    DbLoadMerger.merge(makeInsertEventData(), mergeMap);

    for (Entry<RowKey, EventData> entry : mergeMap.entrySet()) {
        RowKey key = entry.getKey();
        EventColumn keyColumn = key.getKeys().get(0);
        Assert.assertEquals(KEY_VALUE, keyColumn.getColumnValue());
        Assert.assertEquals(KEY_NAME, keyColumn.getColumnName());

        EventData eventData = entry.getValue();
        Assert.assertEquals(SCHEMA_NAME, eventData.getSchemaName());
        Assert.assertEquals(TABLE_NAME, eventData.getTableName());
        Assert.assertEquals(TABLE_ID, eventData.getTableId());
        Assert.assertEquals(EventType.INSERT, eventData.getEventType());

        List<EventColumn> oldKeys = eventData.getOldKeys();
        List<EventColumn> keys = eventData.getKeys();

        Assert.assertNotSame(oldKeys, keys);
    }
}
MemoryMetaManager.java 文件源码 项目:canal 阅读 31 收藏 0 点赞 0 评论 0
public void start() {
    super.start();

    batches = MigrateMap.makeComputingMap(new Function<ClientIdentity, MemoryClientIdentityBatch>() {

        public MemoryClientIdentityBatch apply(ClientIdentity clientIdentity) {
            return MemoryClientIdentityBatch.create(clientIdentity);
        }

    });

    cursors = new MapMaker().makeMap();

    destinations = MigrateMap.makeComputingMap(new Function<String, List<ClientIdentity>>() {

        public List<ClientIdentity> apply(String destination) {
            return Lists.newArrayList();
        }
    });
}
ExactCounterMetric.java 文件源码 项目:HBase-Research 阅读 30 收藏 0 点赞 0 评论 0
/**
 * Constructor to create a new counter metric
 * @param nam         the name to publish this metric under
 * @param registry    where the metrics object will be registered
 * @param description metrics description
 * @param topN        how many 'keys' to publish metrics on 
 */
public ExactCounterMetric(final String nam, final MetricsRegistry registry, 
    final String description, int topN) {
  super(nam, description);

  this.counts = new MapMaker().makeComputingMap(
      new Function<String, Counter>() {
        @Override
        public Counter apply(String input) {
          return new Counter();
        }    
      });

  this.lock = new ReentrantReadWriteLock();
  this.topN = topN;

  if (registry != null) {
    registry.add(nam, this);      
  }
}
ByteArrayPartition.java 文件源码 项目:giraph-gora 阅读 30 收藏 0 点赞 0 评论 0
@Override
public void readFields(DataInput input) throws IOException {
  super.readFields(input);
  int size = input.readInt();
  vertexMap = new MapMaker().concurrencyLevel(
      getConf().getNettyServerExecutionConcurrency()).initialCapacity(
      size).makeMap();
  representativeVertex = getConf().createVertex();
  representativeVertex.initialize(
      getConf().createVertexId(),
      getConf().createVertexValue(),
      getConf().createOutEdges());
  useUnsafeSerialization = getConf().useUnsafeSerialization();
  for (int i = 0; i < size; ++i) {
    progress();
    I vertexId = getConf().createVertexId();
    vertexId.readFields(input);
    int vertexDataSize = input.readInt();
    byte[] vertexData = new byte[vertexDataSize];
    input.readFully(vertexData);
    if (vertexMap.put(vertexId, vertexData) != null) {
      throw new IllegalStateException("readFields: Already saw vertex " +
          vertexId);
    }
  }
}
ExactCounterMetric.java 文件源码 项目:hbase-0.94.8-qod 阅读 37 收藏 0 点赞 0 评论 0
/**
 * Constructor to create a new counter metric
 * @param nam         the name to publish this metric under
 * @param registry    where the metrics object will be registered
 * @param description metrics description
 * @param topN        how many 'keys' to publish metrics on 
 */
public ExactCounterMetric(final String nam, final MetricsRegistry registry, 
    final String description, int topN) {
  super(nam, description);

  this.counts = new MapMaker().makeComputingMap(
      new Function<String, Counter>() {
        @Override
        public Counter apply(String input) {
          return new Counter();
        }    
      });

  this.lock = new ReentrantReadWriteLock();
  this.topN = topN;

  if (registry != null) {
    registry.add(nam, this);      
  }
}
ExactCounterMetric.java 文件源码 项目:hbase-0.94.8-qod 阅读 36 收藏 0 点赞 0 评论 0
/**
 * Constructor to create a new counter metric
 * @param nam         the name to publish this metric under
 * @param registry    where the metrics object will be registered
 * @param description metrics description
 * @param topN        how many 'keys' to publish metrics on 
 */
public ExactCounterMetric(final String nam, final MetricsRegistry registry, 
    final String description, int topN) {
  super(nam, description);

  this.counts = new MapMaker().makeComputingMap(
      new Function<String, Counter>() {
        @Override
        public Counter apply(String input) {
          return new Counter();
        }    
      });

  this.lock = new ReentrantReadWriteLock();
  this.topN = topN;

  if (registry != null) {
    registry.add(nam, this);      
  }
}
ByteArrayPartition.java 文件源码 项目:giraph-research 阅读 22 收藏 0 点赞 0 评论 0
@Override
public void readFields(DataInput input) throws IOException {
  super.readFields(input);
  int size = input.readInt();
  vertexMap = new MapMaker().concurrencyLevel(
      getConf().getNettyServerExecutionConcurrency()).initialCapacity(
      size).makeMap();
  representativeVertex = getConf().createVertex();
  representativeVertex.initialize(
      getConf().createVertexId(),
      getConf().createVertexValue(),
      getConf().createOutEdges());
  useUnsafeSerialization = getConf().useUnsafeSerialization();
  for (int i = 0; i < size; ++i) {
    progress();
    I vertexId = getConf().createVertexId();
    vertexId.readFields(input);
    int vertexDataSize = input.readInt();
    byte[] vertexData = new byte[vertexDataSize];
    input.readFully(vertexData);
    if (vertexMap.put(vertexId, vertexData) != null) {
      throw new IllegalStateException("readFields: Already saw vertex " +
          vertexId);
    }
  }
}
ByteArrayPartition.java 文件源码 项目:giraph-research 阅读 26 收藏 0 点赞 0 评论 0
@Override
public void readFields(DataInput input) throws IOException {
  super.readFields(input);
  int size = input.readInt();
  vertexMap = new MapMaker().concurrencyLevel(
      getConf().getNettyServerExecutionConcurrency()).initialCapacity(
      size).makeMap();
  representativeVertex = getConf().createVertex();
  representativeVertex.initialize(
      getConf().createVertexId(),
      getConf().createVertexValue(),
      getConf().createOutEdges());
  useUnsafeSerialization = getConf().useUnsafeSerialization();
  for (int i = 0; i < size; ++i) {
    progress();
    I vertexId = getConf().createVertexId();
    vertexId.readFields(input);
    int vertexDataSize = input.readInt();
    byte[] vertexData = new byte[vertexDataSize];
    input.readFully(vertexData);
    if (vertexMap.put(vertexId, vertexData) != null) {
      throw new IllegalStateException("readFields: Already saw vertex " +
          vertexId);
    }
  }
}
ByteArrayPartition.java 文件源码 项目:giraph-research 阅读 30 收藏 0 点赞 0 评论 0
@Override
public void readFields(DataInput input) throws IOException {
  super.readFields(input);
  int size = input.readInt();
  vertexMap = new MapMaker().concurrencyLevel(
      getConf().getNettyServerExecutionConcurrency()).initialCapacity(
      size).makeMap();
  representativeVertex = getConf().createVertex();
  representativeVertex.initialize(
      getConf().createVertexId(),
      getConf().createVertexValue(),
      getConf().createOutEdges());
  useUnsafeSerialization = getConf().useUnsafeSerialization();
  for (int i = 0; i < size; ++i) {
    progress();
    I vertexId = getConf().createVertexId();
    vertexId.readFields(input);
    int vertexDataSize = input.readInt();
    byte[] vertexData = new byte[vertexDataSize];
    input.readFully(vertexData);
    if (vertexMap.put(vertexId, vertexData) != null) {
      throw new IllegalStateException("readFields: Already saw vertex " +
          vertexId);
    }
  }
}


问题


面经


文章

微信
公众号

扫码关注公众号