Java 类org.apache.hadoop.hbase.io.util.LRUDictionary 实例源码

项目:ditb    文件:ReaderBase.java   
@Override
public void init(FileSystem fs, Path path, Configuration conf, FSDataInputStream stream)
    throws IOException {
  this.conf = conf;
  this.path = path;
  this.fs = fs;
  this.fileLength = this.fs.getFileStatus(path).getLen();
  String cellCodecClsName = initReader(stream);

  boolean compression = hasCompression();
  if (compression) {
    // If compression is enabled, new dictionaries are created here.
    try {
      if (compressionContext == null) {
        compressionContext = new CompressionContext(LRUDictionary.class,
            FSUtils.isRecoveredEdits(path), hasTagCompression());
      } else {
        compressionContext.clear();
      }
    } catch (Exception e) {
      throw new IOException("Failed to initialize CompressionContext", e);
    }
  }
  initAfterCompression(cellCodecClsName);
}
项目:ditb    文件:TestKeyValueCompression.java   
@Test
public void testKVWithTags() throws Exception {
  CompressionContext ctx = new CompressionContext(LRUDictionary.class, false, false);
  DataOutputBuffer buf = new DataOutputBuffer(BUF_SIZE);
  KeyValueCompression.writeKV(buf, createKV(1), ctx);
  KeyValueCompression.writeKV(buf, createKV(0), ctx);
  KeyValueCompression.writeKV(buf, createKV(2), ctx);

  ctx.clear();
  DataInputStream in = new DataInputStream(new ByteArrayInputStream(
      buf.getData(), 0, buf.getLength()));

  KeyValue readBack = KeyValueCompression.readKV(in, ctx);
  List<Tag> tags = readBack.getTags();
  assertEquals(1, tags.size());
}
项目:ditb    文件:TestTagCompressionContext.java   
@Test
public void testCompressUncompressTags1() throws Exception {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  TagCompressionContext context = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
  KeyValue kv1 = createKVWithTags(2);
  int tagsLength1 = kv1.getTagsLength();
  ByteBuffer ib = ByteBuffer.wrap(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1);
  context.compressTags(baos, ib, tagsLength1);
  KeyValue kv2 = createKVWithTags(3);
  int tagsLength2 = kv2.getTagsLength();
  ib = ByteBuffer.wrap(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2);
  context.compressTags(baos, ib, tagsLength2);

  context.clear();

  byte[] dest = new byte[tagsLength1];
  ByteBuffer ob = ByteBuffer.wrap(baos.toByteArray());
  context.uncompressTags(ob, dest, 0, tagsLength1);
  assertTrue(Bytes.equals(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1, dest, 0,
      tagsLength1));
  dest = new byte[tagsLength2];
  context.uncompressTags(ob, dest, 0, tagsLength2);
  assertTrue(Bytes.equals(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2, dest, 0,
      tagsLength2));
}
项目:ditb    文件:TestTagCompressionContext.java   
@Test
public void testCompressUncompressTags2() throws Exception {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  TagCompressionContext context = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
  KeyValue kv1 = createKVWithTags(1);
  int tagsLength1 = kv1.getTagsLength();
  context.compressTags(baos, kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1);
  KeyValue kv2 = createKVWithTags(3);
  int tagsLength2 = kv2.getTagsLength();
  context.compressTags(baos, kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2);

  context.clear();

  ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
  byte[] dest = new byte[tagsLength1];
  context.uncompressTags(bais, dest, 0, tagsLength1);
  assertTrue(Bytes.equals(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1, dest, 0,
      tagsLength1));
  dest = new byte[tagsLength2];
  context.uncompressTags(bais, dest, 0, tagsLength2);
  assertTrue(Bytes.equals(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2, dest, 0,
      tagsLength2));
}
项目:pbase    文件:ReaderBase.java   
@Override
public void init(FileSystem fs, Path path, Configuration conf, FSDataInputStream stream)
    throws IOException {
  this.conf = conf;
  this.path = path;
  this.fs = fs;
  this.fileLength = this.fs.getFileStatus(path).getLen();
  String cellCodecClsName = initReader(stream);

  boolean compression = hasCompression();
  if (compression) {
    // If compression is enabled, new dictionaries are created here.
    try {
      if (compressionContext == null) {
        compressionContext = new CompressionContext(LRUDictionary.class,
            FSUtils.isRecoveredEdits(path), hasTagCompression());
      } else {
        compressionContext.clear();
      }
    } catch (Exception e) {
      throw new IOException("Failed to initialize CompressionContext", e);
    }
  }
  initAfterCompression(cellCodecClsName);
}
项目:pbase    文件:TestKeyValueCompression.java   
@Test
public void testKVWithTags() throws Exception {
  CompressionContext ctx = new CompressionContext(LRUDictionary.class, false, false);
  DataOutputBuffer buf = new DataOutputBuffer(BUF_SIZE);
  KeyValueCompression.writeKV(buf, createKV(1), ctx);
  KeyValueCompression.writeKV(buf, createKV(0), ctx);
  KeyValueCompression.writeKV(buf, createKV(2), ctx);

  ctx.clear();
  DataInputStream in = new DataInputStream(new ByteArrayInputStream(
      buf.getData(), 0, buf.getLength()));

  KeyValue readBack = KeyValueCompression.readKV(in, ctx);
  List<Tag> tags = readBack.getTags();
  assertEquals(1, tags.size());
}
项目:pbase    文件:TestTagCompressionContext.java   
@Test
public void testCompressUncompressTags1() throws Exception {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  TagCompressionContext context = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
  KeyValue kv1 = createKVWithTags(2);
  int tagsLength1 = kv1.getTagsLength();
  ByteBuffer ib = ByteBuffer.wrap(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1);
  context.compressTags(baos, ib, tagsLength1);
  KeyValue kv2 = createKVWithTags(3);
  int tagsLength2 = kv2.getTagsLength();
  ib = ByteBuffer.wrap(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2);
  context.compressTags(baos, ib, tagsLength2);

  context.clear();

  byte[] dest = new byte[tagsLength1];
  ByteBuffer ob = ByteBuffer.wrap(baos.toByteArray());
  context.uncompressTags(ob, dest, 0, tagsLength1);
  assertTrue(Bytes.equals(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1, dest, 0,
      tagsLength1));
  dest = new byte[tagsLength2];
  context.uncompressTags(ob, dest, 0, tagsLength2);
  assertTrue(Bytes.equals(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2, dest, 0,
      tagsLength2));
}
项目:pbase    文件:TestTagCompressionContext.java   
@Test
public void testCompressUncompressTags2() throws Exception {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  TagCompressionContext context = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
  KeyValue kv1 = createKVWithTags(1);
  int tagsLength1 = kv1.getTagsLength();
  context.compressTags(baos, kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1);
  KeyValue kv2 = createKVWithTags(3);
  int tagsLength2 = kv2.getTagsLength();
  context.compressTags(baos, kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2);

  context.clear();

  ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
  byte[] dest = new byte[tagsLength1];
  context.uncompressTags(bais, dest, 0, tagsLength1);
  assertTrue(Bytes.equals(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1, dest, 0,
      tagsLength1));
  dest = new byte[tagsLength2];
  context.uncompressTags(bais, dest, 0, tagsLength2);
  assertTrue(Bytes.equals(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2, dest, 0,
      tagsLength2));
}
项目:HIndex    文件:TestKeyValueCompression.java   
@Test
public void testKVWithTags() throws Exception {
  CompressionContext ctx = new CompressionContext(LRUDictionary.class, false, false);
  DataOutputBuffer buf = new DataOutputBuffer(BUF_SIZE);
  KeyValueCompression.writeKV(buf, createKV(1), ctx);
  KeyValueCompression.writeKV(buf, createKV(0), ctx);
  KeyValueCompression.writeKV(buf, createKV(2), ctx);

  ctx.clear();
  DataInputStream in = new DataInputStream(new ByteArrayInputStream(
      buf.getData(), 0, buf.getLength()));

  KeyValue readBack = KeyValueCompression.readKV(in, ctx);
  List<Tag> tags = readBack.getTags();
  assertEquals(1, tags.size());
}
项目:HIndex    文件:TestTagCompressionContext.java   
@Test
public void testCompressUncompressTags1() throws Exception {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  TagCompressionContext context = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
  KeyValue kv1 = createKVWithTags(2);
  short tagsLength1 = kv1.getTagsLength();
  ByteBuffer ib = ByteBuffer.wrap(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1);
  context.compressTags(baos, ib, tagsLength1);
  KeyValue kv2 = createKVWithTags(3);
  short tagsLength2 = kv2.getTagsLength();
  ib = ByteBuffer.wrap(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2);
  context.compressTags(baos, ib, tagsLength2);

  context.clear();

  byte[] dest = new byte[tagsLength1];
  ByteBuffer ob = ByteBuffer.wrap(baos.toByteArray());
  context.uncompressTags(ob, dest, 0, tagsLength1);
  assertTrue(Bytes.equals(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1, dest, 0,
      tagsLength1));
  dest = new byte[tagsLength2];
  context.uncompressTags(ob, dest, 0, tagsLength2);
  assertTrue(Bytes.equals(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2, dest, 0,
      tagsLength2));
}
项目:HIndex    文件:TestTagCompressionContext.java   
@Test
public void testCompressUncompressTags2() throws Exception {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  TagCompressionContext context = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
  KeyValue kv1 = createKVWithTags(1);
  short tagsLength1 = kv1.getTagsLength();
  context.compressTags(baos, kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1);
  KeyValue kv2 = createKVWithTags(3);
  short tagsLength2 = kv2.getTagsLength();
  context.compressTags(baos, kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2);

  context.clear();

  ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
  byte[] dest = new byte[tagsLength1];
  context.uncompressTags(bais, dest, 0, tagsLength1);
  assertTrue(Bytes.equals(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1, dest, 0,
      tagsLength1));
  dest = new byte[tagsLength2];
  context.uncompressTags(bais, dest, 0, tagsLength2);
  assertTrue(Bytes.equals(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2, dest, 0,
      tagsLength2));
}
项目:hbase    文件:ReaderBase.java   
@Override
public void init(FileSystem fs, Path path, Configuration conf, FSDataInputStream stream)
    throws IOException {
  this.conf = conf;
  this.path = path;
  this.fs = fs;
  this.fileLength = this.fs.getFileStatus(path).getLen();
  String cellCodecClsName = initReader(stream);

  boolean compression = hasCompression();
  if (compression) {
    // If compression is enabled, new dictionaries are created here.
    try {
      if (compressionContext == null) {
        compressionContext = new CompressionContext(LRUDictionary.class,
            FSUtils.isRecoveredEdits(path), hasTagCompression());
      } else {
        compressionContext.clear();
      }
    } catch (Exception e) {
      throw new IOException("Failed to initialize CompressionContext", e);
    }
  }
  initAfterCompression(cellCodecClsName);
}
项目:hbase    文件:TestTagCompressionContext.java   
@Test
public void testCompressUncompressTags1() throws Exception {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  TagCompressionContext context = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
  KeyValue kv1 = createKVWithTags(2);
  int tagsLength1 = kv1.getTagsLength();
  ByteBuffer ib = ByteBuffer.wrap(kv1.getTagsArray());
  context.compressTags(baos, ib, kv1.getTagsOffset(), tagsLength1);
  KeyValue kv2 = createKVWithTags(3);
  int tagsLength2 = kv2.getTagsLength();
  ib = ByteBuffer.wrap(kv2.getTagsArray());
  context.compressTags(baos, ib, kv2.getTagsOffset(), tagsLength2);

  context.clear();

  byte[] dest = new byte[tagsLength1];
  ByteBuffer ob = ByteBuffer.wrap(baos.toByteArray());
  context.uncompressTags(new SingleByteBuff(ob), dest, 0, tagsLength1);
  assertTrue(Bytes.equals(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1, dest, 0,
      tagsLength1));
  dest = new byte[tagsLength2];
  context.uncompressTags(new SingleByteBuff(ob), dest, 0, tagsLength2);
  assertTrue(Bytes.equals(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2, dest, 0,
      tagsLength2));
}
项目:hbase    文件:TestTagCompressionContext.java   
@Test
public void testCompressUncompressTagsWithOffheapKeyValue1() throws Exception {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  DataOutputStream daos = new ByteBufferWriterDataOutputStream(baos);
  TagCompressionContext context = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
  ByteBufferExtendedCell kv1 = (ByteBufferExtendedCell)createOffheapKVWithTags(2);
  int tagsLength1 = kv1.getTagsLength();
  context.compressTags(daos, kv1.getTagsByteBuffer(), kv1.getTagsPosition(), tagsLength1);
  ByteBufferExtendedCell kv2 = (ByteBufferExtendedCell)createOffheapKVWithTags(3);
  int tagsLength2 = kv2.getTagsLength();
  context.compressTags(daos, kv2.getTagsByteBuffer(), kv2.getTagsPosition(), tagsLength2);

  context.clear();

  byte[] dest = new byte[tagsLength1];
  ByteBuffer ob = ByteBuffer.wrap(baos.getBuffer());
  context.uncompressTags(new SingleByteBuff(ob), dest, 0, tagsLength1);
  assertTrue(Bytes.equals(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1, dest, 0,
      tagsLength1));
  dest = new byte[tagsLength2];
  context.uncompressTags(new SingleByteBuff(ob), dest, 0, tagsLength2);
  assertTrue(Bytes.equals(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2, dest, 0,
      tagsLength2));
}
项目:hbase    文件:TestTagCompressionContext.java   
@Test
public void testCompressUncompressTags2() throws Exception {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  TagCompressionContext context = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
  KeyValue kv1 = createKVWithTags(1);
  int tagsLength1 = kv1.getTagsLength();
  context.compressTags(baos, kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1);
  KeyValue kv2 = createKVWithTags(3);
  int tagsLength2 = kv2.getTagsLength();
  context.compressTags(baos, kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2);

  context.clear();

  ByteArrayInputStream bais = new ByteArrayInputStream(baos.getBuffer());
  byte[] dest = new byte[tagsLength1];
  context.uncompressTags(bais, dest, 0, tagsLength1);
  assertTrue(Bytes.equals(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1, dest, 0,
      tagsLength1));
  dest = new byte[tagsLength2];
  context.uncompressTags(bais, dest, 0, tagsLength2);
  assertTrue(Bytes.equals(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2, dest, 0,
      tagsLength2));
}
项目:hbase    文件:TestTagCompressionContext.java   
@Test
public void testCompressUncompressTagsWithOffheapKeyValue2() throws Exception {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  DataOutputStream daos = new ByteBufferWriterDataOutputStream(baos);
  TagCompressionContext context = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
  ByteBufferExtendedCell kv1 = (ByteBufferExtendedCell)createOffheapKVWithTags(1);
  int tagsLength1 = kv1.getTagsLength();
  context.compressTags(daos, kv1.getTagsByteBuffer(), kv1.getTagsPosition(), tagsLength1);
  ByteBufferExtendedCell kv2 = (ByteBufferExtendedCell)createOffheapKVWithTags(3);
  int tagsLength2 = kv2.getTagsLength();
  context.compressTags(daos, kv2.getTagsByteBuffer(), kv2.getTagsPosition(), tagsLength2);

  context.clear();

  ByteArrayInputStream bais = new ByteArrayInputStream(baos.getBuffer());
  byte[] dest = new byte[tagsLength1];
  context.uncompressTags(bais, dest, 0, tagsLength1);
  assertTrue(Bytes.equals(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1, dest, 0,
      tagsLength1));
  dest = new byte[tagsLength2];
  context.uncompressTags(bais, dest, 0, tagsLength2);
  assertTrue(Bytes.equals(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2, dest, 0,
      tagsLength2));
}
项目:PyroDB    文件:TestKeyValueCompression.java   
@Test
public void testKVWithTags() throws Exception {
  CompressionContext ctx = new CompressionContext(LRUDictionary.class, false, false);
  DataOutputBuffer buf = new DataOutputBuffer(BUF_SIZE);
  KeyValueCompression.writeKV(buf, createKV(1), ctx);
  KeyValueCompression.writeKV(buf, createKV(0), ctx);
  KeyValueCompression.writeKV(buf, createKV(2), ctx);

  ctx.clear();
  DataInputStream in = new DataInputStream(new ByteArrayInputStream(
      buf.getData(), 0, buf.getLength()));

  KeyValue readBack = KeyValueCompression.readKV(in, ctx);
  List<Tag> tags = readBack.getTags();
  assertEquals(1, tags.size());
}
项目:PyroDB    文件:TestTagCompressionContext.java   
@Test
public void testCompressUncompressTags1() throws Exception {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  TagCompressionContext context = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
  KeyValue kv1 = createKVWithTags(2);
  short tagsLength1 = kv1.getTagsLength();
  ByteBuffer ib = ByteBuffer.wrap(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1);
  context.compressTags(baos, ib, tagsLength1);
  KeyValue kv2 = createKVWithTags(3);
  short tagsLength2 = kv2.getTagsLength();
  ib = ByteBuffer.wrap(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2);
  context.compressTags(baos, ib, tagsLength2);

  context.clear();

  byte[] dest = new byte[tagsLength1];
  ByteBuffer ob = ByteBuffer.wrap(baos.toByteArray());
  context.uncompressTags(ob, dest, 0, tagsLength1);
  assertTrue(Bytes.equals(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1, dest, 0,
      tagsLength1));
  dest = new byte[tagsLength2];
  context.uncompressTags(ob, dest, 0, tagsLength2);
  assertTrue(Bytes.equals(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2, dest, 0,
      tagsLength2));
}
项目:PyroDB    文件:TestTagCompressionContext.java   
@Test
public void testCompressUncompressTags2() throws Exception {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  TagCompressionContext context = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
  KeyValue kv1 = createKVWithTags(1);
  short tagsLength1 = kv1.getTagsLength();
  context.compressTags(baos, kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1);
  KeyValue kv2 = createKVWithTags(3);
  short tagsLength2 = kv2.getTagsLength();
  context.compressTags(baos, kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2);

  context.clear();

  ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
  byte[] dest = new byte[tagsLength1];
  context.uncompressTags(bais, dest, 0, tagsLength1);
  assertTrue(Bytes.equals(kv1.getTagsArray(), kv1.getTagsOffset(), tagsLength1, dest, 0,
      tagsLength1));
  dest = new byte[tagsLength2];
  context.uncompressTags(bais, dest, 0, tagsLength2);
  assertTrue(Bytes.equals(kv2.getTagsArray(), kv2.getTagsOffset(), tagsLength2, dest, 0,
      tagsLength2));
}
项目:ditb    文件:WriterBase.java   
public boolean initializeCompressionContext(Configuration conf, Path path) throws IOException {
  boolean doCompress = conf.getBoolean(HConstants.ENABLE_WAL_COMPRESSION, false);
  if (doCompress) {
    try {
      this.compressionContext = new CompressionContext(LRUDictionary.class,
          FSUtils.isRecoveredEdits(path), conf.getBoolean(
              CompressionContext.ENABLE_WAL_TAGS_COMPRESSION, true));
    } catch (Exception e) {
      throw new IOException("Failed to initiate CompressionContext", e);
    }
  }
  return doCompress;
}
项目:ditb    文件:BufferedDataBlockEncoder.java   
@Override
public ByteBuffer decodeKeyValues(DataInputStream source,
    HFileBlockDecodingContext blkDecodingCtx) throws IOException {
  if (blkDecodingCtx.getClass() != HFileBlockDefaultDecodingContext.class) {
    throw new IOException(this.getClass().getName() + " only accepts "
        + HFileBlockDefaultDecodingContext.class.getName() + " as the decoding context.");
  }

  HFileBlockDefaultDecodingContext decodingCtx =
      (HFileBlockDefaultDecodingContext) blkDecodingCtx;
  if (decodingCtx.getHFileContext().isIncludesTags()
      && decodingCtx.getHFileContext().isCompressTags()) {
    if (decodingCtx.getTagCompressionContext() != null) {
      // It will be overhead to create the TagCompressionContext again and again for every block
      // decoding.
      decodingCtx.getTagCompressionContext().clear();
    } else {
      try {
        TagCompressionContext tagCompressionContext = new TagCompressionContext(
            LRUDictionary.class, Byte.MAX_VALUE);
        decodingCtx.setTagCompressionContext(tagCompressionContext);
      } catch (Exception e) {
        throw new IOException("Failed to initialize TagCompressionContext", e);
      }
    }
  }
  return internalDecodeKeyValues(source, 0, 0, decodingCtx);
}
项目:ditb    文件:BufferedDataBlockEncoder.java   
public BufferedEncodedSeeker(KVComparator comparator,
    HFileBlockDecodingContext decodingCtx) {
  this.comparator = comparator;
  this.samePrefixComparator = comparator;
  this.decodingCtx = decodingCtx;
  if (decodingCtx.getHFileContext().isCompressTags()) {
    try {
      tagCompressionContext = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
    } catch (Exception e) {
      throw new RuntimeException("Failed to initialize TagCompressionContext", e);
    }
  }
}
项目:ditb    文件:BufferedDataBlockEncoder.java   
@Override
public void startBlockEncoding(HFileBlockEncodingContext blkEncodingCtx, DataOutputStream out)
    throws IOException {
  if (blkEncodingCtx.getClass() != HFileBlockDefaultEncodingContext.class) {
    throw new IOException (this.getClass().getName() + " only accepts "
        + HFileBlockDefaultEncodingContext.class.getName() + " as the " +
        "encoding context.");
  }

  HFileBlockDefaultEncodingContext encodingCtx =
      (HFileBlockDefaultEncodingContext) blkEncodingCtx;
  encodingCtx.prepareEncoding(out);
  if (encodingCtx.getHFileContext().isIncludesTags()
      && encodingCtx.getHFileContext().isCompressTags()) {
    if (encodingCtx.getTagCompressionContext() != null) {
      // It will be overhead to create the TagCompressionContext again and again for every block
      // encoding.
      encodingCtx.getTagCompressionContext().clear();
    } else {
      try {
        TagCompressionContext tagCompressionContext = new TagCompressionContext(
            LRUDictionary.class, Byte.MAX_VALUE);
        encodingCtx.setTagCompressionContext(tagCompressionContext);
      } catch (Exception e) {
        throw new IOException("Failed to initialize TagCompressionContext", e);
      }
    }
  }
  ByteBufferUtils.putInt(out, 0); // DUMMY length. This will be updated in endBlockEncoding()
  blkEncodingCtx.setEncodingState(new BufferedDataBlockEncodingState());
}
项目:pbase    文件:WriterBase.java   
public boolean initializeCompressionContext(Configuration conf, Path path) throws IOException {
  boolean doCompress = conf.getBoolean(HConstants.ENABLE_WAL_COMPRESSION, false);
  if (doCompress) {
    try {
      this.compressionContext = new CompressionContext(LRUDictionary.class,
          FSUtils.isRecoveredEdits(path), conf.getBoolean(
              CompressionContext.ENABLE_WAL_TAGS_COMPRESSION, true));
    } catch (Exception e) {
      throw new IOException("Failed to initiate CompressionContext", e);
    }
  }
  return doCompress;
}
项目:pbase    文件:TestWALCellCodecWithCompression.java   
private void doTest(boolean compressTags) throws Exception {
  Configuration conf = new Configuration(false);
  conf.setBoolean(CompressionContext.ENABLE_WAL_TAGS_COMPRESSION, compressTags);
  WALCellCodec codec = new WALCellCodec(conf, new CompressionContext(LRUDictionary.class, false,
      compressTags));
  ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
  Encoder encoder = codec.getEncoder(bos);
  encoder.write(createKV(1));
  encoder.write(createKV(0));
  encoder.write(createKV(2));

  InputStream is = new ByteArrayInputStream(bos.toByteArray());
  Decoder decoder = codec.getDecoder(is);
  decoder.advance();
  KeyValue kv = (KeyValue) decoder.current();
  List<Tag> tags = kv.getTags();
  assertEquals(1, tags.size());
  assertEquals("tagValue1", Bytes.toString(tags.get(0).getValue()));
  decoder.advance();
  kv = (KeyValue) decoder.current();
  tags = kv.getTags();
  assertEquals(0, tags.size());
  decoder.advance();
  kv = (KeyValue) decoder.current();
  tags = kv.getTags();
  assertEquals(2, tags.size());
  assertEquals("tagValue1", Bytes.toString(tags.get(0).getValue()));
  assertEquals("tagValue2", Bytes.toString(tags.get(1).getValue()));
}
项目:pbase    文件:BufferedDataBlockEncoder.java   
@Override
public ByteBuffer decodeKeyValues(DataInputStream source,
    HFileBlockDecodingContext blkDecodingCtx) throws IOException {
  if (blkDecodingCtx.getClass() != HFileBlockDefaultDecodingContext.class) {
    throw new IOException(this.getClass().getName() + " only accepts "
        + HFileBlockDefaultDecodingContext.class.getName() + " as the decoding context.");
  }

  HFileBlockDefaultDecodingContext decodingCtx =
      (HFileBlockDefaultDecodingContext) blkDecodingCtx;
  if (decodingCtx.getHFileContext().isIncludesTags()
      && decodingCtx.getHFileContext().isCompressTags()) {
    if (decodingCtx.getTagCompressionContext() != null) {
      // It will be overhead to create the TagCompressionContext again and again for every block
      // decoding.
      decodingCtx.getTagCompressionContext().clear();
    } else {
      try {
        TagCompressionContext tagCompressionContext = new TagCompressionContext(
            LRUDictionary.class, Byte.MAX_VALUE);
        decodingCtx.setTagCompressionContext(tagCompressionContext);
      } catch (Exception e) {
        throw new IOException("Failed to initialize TagCompressionContext", e);
      }
    }
  }
  return internalDecodeKeyValues(source, 0, 0, decodingCtx);
}
项目:pbase    文件:BufferedDataBlockEncoder.java   
public BufferedEncodedSeeker(KVComparator comparator,
    HFileBlockDecodingContext decodingCtx) {
  this.comparator = comparator;
  this.samePrefixComparator = comparator;
  this.decodingCtx = decodingCtx;
  if (decodingCtx.getHFileContext().isCompressTags()) {
    try {
      tagCompressionContext = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
    } catch (Exception e) {
      throw new RuntimeException("Failed to initialize TagCompressionContext", e);
    }
  }
}
项目:pbase    文件:BufferedDataBlockEncoder.java   
@Override
public void startBlockEncoding(HFileBlockEncodingContext blkEncodingCtx, DataOutputStream out)
    throws IOException {
  if (blkEncodingCtx.getClass() != HFileBlockDefaultEncodingContext.class) {
    throw new IOException (this.getClass().getName() + " only accepts "
        + HFileBlockDefaultEncodingContext.class.getName() + " as the " +
        "encoding context.");
  }

  HFileBlockDefaultEncodingContext encodingCtx =
      (HFileBlockDefaultEncodingContext) blkEncodingCtx;
  encodingCtx.prepareEncoding(out);
  if (encodingCtx.getHFileContext().isIncludesTags()
      && encodingCtx.getHFileContext().isCompressTags()) {
    if (encodingCtx.getTagCompressionContext() != null) {
      // It will be overhead to create the TagCompressionContext again and again for every block
      // encoding.
      encodingCtx.getTagCompressionContext().clear();
    } else {
      try {
        TagCompressionContext tagCompressionContext = new TagCompressionContext(
            LRUDictionary.class, Byte.MAX_VALUE);
        encodingCtx.setTagCompressionContext(tagCompressionContext);
      } catch (Exception e) {
        throw new IOException("Failed to initialize TagCompressionContext", e);
      }
    }
  }
  ByteBufferUtils.putInt(out, 0); // DUMMY length. This will be updated in endBlockEncoding()
  blkEncodingCtx.setEncodingState(new BufferedDataBlockEncodingState());
}
项目:HIndex    文件:ReaderBase.java   
@Override
public void init(FileSystem fs, Path path, Configuration conf, FSDataInputStream stream)
    throws IOException {
  this.conf = conf;
  this.path = path;
  this.fs = fs;
  this.fileLength = this.fs.getFileStatus(path).getLen();
  this.trailerWarnSize = conf.getInt(HLog.WAL_TRAILER_WARN_SIZE,
    HLog.DEFAULT_WAL_TRAILER_WARN_SIZE);
  initReader(stream);

  boolean compression = hasCompression();
  if (compression) {
    // If compression is enabled, new dictionaries are created here.
    try {
      if (compressionContext == null) {
        compressionContext = new CompressionContext(LRUDictionary.class,
            FSUtils.isRecoveredEdits(path), hasTagCompression());
      } else {
        compressionContext.clear();
      }
    } catch (Exception e) {
      throw new IOException("Failed to initialize CompressionContext", e);
    }
  }
  initAfterCompression();
}
项目:HIndex    文件:WriterBase.java   
public boolean initializeCompressionContext(Configuration conf, Path path) throws IOException {
  boolean doCompress = conf.getBoolean(HConstants.ENABLE_WAL_COMPRESSION, false);
  if (doCompress) {
    try {
      this.compressionContext = new CompressionContext(LRUDictionary.class,
          FSUtils.isRecoveredEdits(path), conf.getBoolean(
              CompressionContext.ENABLE_WAL_TAGS_COMPRESSION, true));
    } catch (Exception e) {
      throw new IOException("Failed to initiate CompressionContext", e);
    }
  }
  return doCompress;
}
项目:HIndex    文件:TestWALCellCodecWithCompression.java   
private void doTest(boolean compressTags) throws Exception {
  Configuration conf = new Configuration(false);
  conf.setBoolean(CompressionContext.ENABLE_WAL_TAGS_COMPRESSION, compressTags);
  WALCellCodec codec = new WALCellCodec(conf, new CompressionContext(LRUDictionary.class, false,
      compressTags));
  ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
  Encoder encoder = codec.getEncoder(bos);
  encoder.write(createKV(1));
  encoder.write(createKV(0));
  encoder.write(createKV(2));

  InputStream is = new ByteArrayInputStream(bos.toByteArray());
  Decoder decoder = codec.getDecoder(is);
  decoder.advance();
  KeyValue kv = (KeyValue) decoder.current();
  List<Tag> tags = kv.getTags();
  assertEquals(1, tags.size());
  assertEquals("tagValue1", Bytes.toString(tags.get(0).getValue()));
  decoder.advance();
  kv = (KeyValue) decoder.current();
  tags = kv.getTags();
  assertEquals(0, tags.size());
  decoder.advance();
  kv = (KeyValue) decoder.current();
  tags = kv.getTags();
  assertEquals(2, tags.size());
  assertEquals("tagValue1", Bytes.toString(tags.get(0).getValue()));
  assertEquals("tagValue2", Bytes.toString(tags.get(1).getValue()));
}
项目:HIndex    文件:BufferedDataBlockEncoder.java   
@Override
public ByteBuffer decodeKeyValues(DataInputStream source,
    HFileBlockDecodingContext blkDecodingCtx) throws IOException {
  if (blkDecodingCtx.getClass() != HFileBlockDefaultDecodingContext.class) {
    throw new IOException(this.getClass().getName() + " only accepts "
        + HFileBlockDefaultDecodingContext.class.getName() + " as the decoding context.");
  }

  HFileBlockDefaultDecodingContext decodingCtx =
      (HFileBlockDefaultDecodingContext) blkDecodingCtx;
  if (decodingCtx.getHFileContext().isIncludesTags()
      && decodingCtx.getHFileContext().isCompressTags()) {
    if (decodingCtx.getTagCompressionContext() != null) {
      // It will be overhead to create the TagCompressionContext again and again for every block
      // decoding.
      decodingCtx.getTagCompressionContext().clear();
    } else {
      try {
        TagCompressionContext tagCompressionContext = new TagCompressionContext(
            LRUDictionary.class, Byte.MAX_VALUE);
        decodingCtx.setTagCompressionContext(tagCompressionContext);
      } catch (Exception e) {
        throw new IOException("Failed to initialize TagCompressionContext", e);
      }
    }
  }
  return internalDecodeKeyValues(source, 0, 0, decodingCtx);
}
项目:HIndex    文件:BufferedDataBlockEncoder.java   
public BufferedEncodedSeeker(KVComparator comparator,
    HFileBlockDecodingContext decodingCtx) {
  this.comparator = comparator;
  this.samePrefixComparator = comparator;
  this.decodingCtx = decodingCtx;
  if (decodingCtx.getHFileContext().isCompressTags()) {
    try {
      tagCompressionContext = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
    } catch (Exception e) {
      throw new RuntimeException("Failed to initialize TagCompressionContext", e);
    }
  }
}
项目:HIndex    文件:BufferedDataBlockEncoder.java   
@Override
public void encodeKeyValues(ByteBuffer in,
    HFileBlockEncodingContext blkEncodingCtx) throws IOException {
  if (blkEncodingCtx.getClass() != HFileBlockDefaultEncodingContext.class) {
    throw new IOException (this.getClass().getName() + " only accepts "
        + HFileBlockDefaultEncodingContext.class.getName() + " as the " +
        "encoding context.");
  }

  HFileBlockDefaultEncodingContext encodingCtx =
      (HFileBlockDefaultEncodingContext) blkEncodingCtx;
  encodingCtx.prepareEncoding();
  DataOutputStream dataOut = encodingCtx.getOutputStreamForEncoder();
  if (encodingCtx.getHFileContext().isIncludesTags()
      && encodingCtx.getHFileContext().isCompressTags()) {
    if (encodingCtx.getTagCompressionContext() != null) {
      // It will be overhead to create the TagCompressionContext again and again for every block
      // encoding.
      encodingCtx.getTagCompressionContext().clear();
    } else {
      try {
        TagCompressionContext tagCompressionContext = new TagCompressionContext(
            LRUDictionary.class, Byte.MAX_VALUE);
        encodingCtx.setTagCompressionContext(tagCompressionContext);
      } catch (Exception e) {
        throw new IOException("Failed to initialize TagCompressionContext", e);
      }
    }
  }
  internalEncodeKeyValues(dataOut, in, encodingCtx);
  if (encodingCtx.getDataBlockEncoding() != DataBlockEncoding.NONE) {
    encodingCtx.postEncoding(BlockType.ENCODED_DATA);
  } else {
    encodingCtx.postEncoding(BlockType.DATA);
  }
}
项目:hbase    文件:AbstractProtobufLogWriter.java   
private boolean initializeCompressionContext(Configuration conf, Path path) throws IOException {
  boolean doCompress = conf.getBoolean(HConstants.ENABLE_WAL_COMPRESSION, false);
  if (doCompress) {
    try {
      this.compressionContext = new CompressionContext(LRUDictionary.class,
          FSUtils.isRecoveredEdits(path),
          conf.getBoolean(CompressionContext.ENABLE_WAL_TAGS_COMPRESSION, true));
    } catch (Exception e) {
      throw new IOException("Failed to initiate CompressionContext", e);
    }
  }
  return doCompress;
}
项目:hbase    文件:TestWALCellCodecWithCompression.java   
private void doTest(boolean compressTags, boolean offheapKV) throws Exception {
  Configuration conf = new Configuration(false);
  conf.setBoolean(CompressionContext.ENABLE_WAL_TAGS_COMPRESSION, compressTags);
  WALCellCodec codec = new WALCellCodec(conf, new CompressionContext(LRUDictionary.class, false,
      compressTags));
  ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);
  Encoder encoder = codec.getEncoder(bos);
  if (offheapKV) {
    encoder.write(createOffheapKV(1));
    encoder.write(createOffheapKV(0));
    encoder.write(createOffheapKV(2));
  } else {
    encoder.write(createKV(1));
    encoder.write(createKV(0));
    encoder.write(createKV(2));
  }

  InputStream is = new ByteArrayInputStream(bos.toByteArray());
  Decoder decoder = codec.getDecoder(is);
  decoder.advance();
  KeyValue kv = (KeyValue) decoder.current();
  List<Tag> tags = PrivateCellUtil.getTags(kv);
  assertEquals(1, tags.size());
  assertEquals("tagValue1", Bytes.toString(Tag.cloneValue(tags.get(0))));
  decoder.advance();
  kv = (KeyValue) decoder.current();
  tags = PrivateCellUtil.getTags(kv);
  assertEquals(0, tags.size());
  decoder.advance();
  kv = (KeyValue) decoder.current();
  tags = PrivateCellUtil.getTags(kv);
  assertEquals(2, tags.size());
  assertEquals("tagValue1", Bytes.toString(Tag.cloneValue(tags.get(0))));
  assertEquals("tagValue2", Bytes.toString(Tag.cloneValue(tags.get(1))));
}
项目:hbase    文件:BufferedDataBlockEncoder.java   
@Override
public ByteBuffer decodeKeyValues(DataInputStream source,
    HFileBlockDecodingContext blkDecodingCtx) throws IOException {
  if (blkDecodingCtx.getClass() != HFileBlockDefaultDecodingContext.class) {
    throw new IOException(this.getClass().getName() + " only accepts "
        + HFileBlockDefaultDecodingContext.class.getName() + " as the decoding context.");
  }

  HFileBlockDefaultDecodingContext decodingCtx =
      (HFileBlockDefaultDecodingContext) blkDecodingCtx;
  if (decodingCtx.getHFileContext().isIncludesTags()
      && decodingCtx.getHFileContext().isCompressTags()) {
    if (decodingCtx.getTagCompressionContext() != null) {
      // It will be overhead to create the TagCompressionContext again and again for every block
      // decoding.
      decodingCtx.getTagCompressionContext().clear();
    } else {
      try {
        TagCompressionContext tagCompressionContext = new TagCompressionContext(
            LRUDictionary.class, Byte.MAX_VALUE);
        decodingCtx.setTagCompressionContext(tagCompressionContext);
      } catch (Exception e) {
        throw new IOException("Failed to initialize TagCompressionContext", e);
      }
    }
  }
  return internalDecodeKeyValues(source, 0, 0, decodingCtx);
}
项目:hbase    文件:BufferedDataBlockEncoder.java   
public BufferedEncodedSeeker(CellComparator comparator,
    HFileBlockDecodingContext decodingCtx) {
  super(comparator, decodingCtx);
  if (decodingCtx.getHFileContext().isCompressTags()) {
    try {
      tagCompressionContext = new TagCompressionContext(LRUDictionary.class, Byte.MAX_VALUE);
    } catch (Exception e) {
      throw new RuntimeException("Failed to initialize TagCompressionContext", e);
    }
  }
  current = createSeekerState(); // always valid
  previous = createSeekerState(); // may not be valid
}
项目:hbase    文件:BufferedDataBlockEncoder.java   
@Override
public void startBlockEncoding(HFileBlockEncodingContext blkEncodingCtx, DataOutputStream out)
    throws IOException {
  if (blkEncodingCtx.getClass() != HFileBlockDefaultEncodingContext.class) {
    throw new IOException (this.getClass().getName() + " only accepts "
        + HFileBlockDefaultEncodingContext.class.getName() + " as the " +
        "encoding context.");
  }

  HFileBlockDefaultEncodingContext encodingCtx =
      (HFileBlockDefaultEncodingContext) blkEncodingCtx;
  encodingCtx.prepareEncoding(out);
  if (encodingCtx.getHFileContext().isIncludesTags()
      && encodingCtx.getHFileContext().isCompressTags()) {
    if (encodingCtx.getTagCompressionContext() != null) {
      // It will be overhead to create the TagCompressionContext again and again for every block
      // encoding.
      encodingCtx.getTagCompressionContext().clear();
    } else {
      try {
        TagCompressionContext tagCompressionContext = new TagCompressionContext(
            LRUDictionary.class, Byte.MAX_VALUE);
        encodingCtx.setTagCompressionContext(tagCompressionContext);
      } catch (Exception e) {
        throw new IOException("Failed to initialize TagCompressionContext", e);
      }
    }
  }
  StreamUtils.writeInt(out, 0); // DUMMY length. This will be updated in endBlockEncoding()
  blkEncodingCtx.setEncodingState(new BufferedDataBlockEncodingState());
}
项目:PyroDB    文件:ReaderBase.java   
@Override
public void init(FileSystem fs, Path path, Configuration conf, FSDataInputStream stream)
    throws IOException {
  this.conf = conf;
  this.path = path;
  this.fs = fs;
  this.fileLength = this.fs.getFileStatus(path).getLen();
  this.trailerWarnSize = conf.getInt(HLog.WAL_TRAILER_WARN_SIZE,
    HLog.DEFAULT_WAL_TRAILER_WARN_SIZE);
  initReader(stream);

  boolean compression = hasCompression();
  if (compression) {
    // If compression is enabled, new dictionaries are created here.
    try {
      if (compressionContext == null) {
        compressionContext = new CompressionContext(LRUDictionary.class,
            FSUtils.isRecoveredEdits(path), hasTagCompression());
      } else {
        compressionContext.clear();
      }
    } catch (Exception e) {
      throw new IOException("Failed to initialize CompressionContext", e);
    }
  }
  initAfterCompression();
}