Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,11 @@ public HColumnDescriptor setBlocksize(int value) {
return this;
}

public HColumnDescriptor setBlocksize(String value) throws HBaseException {
getDelegateeForModification().setBlocksize(value);
return this;
}

@Override
public Compression.Algorithm getCompressionType() {
return delegatee.getCompressionType();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,8 @@ public static Unit getUnit(String key) {
switch (key) {
case TTL:
return Unit.TIME_INTERVAL;
case BLOCKSIZE:
return Unit.BYTE;
default:
return Unit.NONE;
}
Expand Down Expand Up @@ -417,6 +419,11 @@ public ColumnFamilyDescriptorBuilder setBlocksize(int value) {
return this;
}

public ColumnFamilyDescriptorBuilder setBlocksize(String value) throws HBaseException {
desc.setBlocksize(value);
return this;
}

public ColumnFamilyDescriptorBuilder setBloomFilterType(final BloomType value) {
desc.setBloomFilterType(value);
return this;
Expand Down Expand Up @@ -780,6 +787,11 @@ public ModifyableColumnFamilyDescriptor setBlocksize(int s) {
return setValue(BLOCKSIZE_BYTES, Integer.toString(s));
}

public ModifyableColumnFamilyDescriptor setBlocksize(String blocksize) throws HBaseException {
return setBlocksize(Integer.parseInt(PrettyPrinter.
valueOf(blocksize, PrettyPrinter.Unit.BYTE)));
}

@Override
public Compression.Algorithm getCompressionType() {
return getStringOrDefault(COMPRESSION_BYTES,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,34 @@ public void testSetTimeToLive() throws HBaseException {
Assert.assertEquals(43282800, builder.build().getTimeToLive());
}

@Test
public void testSetBlocksize() throws HBaseException {
String blocksize;
ColumnFamilyDescriptorBuilder builder =
ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("foo"));

blocksize = "131072";
builder.setBlocksize(blocksize);
assertEquals(131072, builder.build().getBlocksize());

blocksize = "100KB";
builder.setBlocksize(blocksize);
assertEquals(102400, builder.build().getBlocksize());

blocksize = "1MB";
builder.setBlocksize(blocksize);
assertEquals(1048576, builder.build().getBlocksize());

// ignore case
blocksize = "64kb 512B";
builder.setBlocksize(blocksize);
assertEquals(66048, builder.build().getBlocksize());

blocksize = "66048 B (64KB 512B)";
builder.setBlocksize(blocksize);
assertEquals(66048, builder.build().getBlocksize());
}

/**
* Test for verifying the ColumnFamilyDescriptorBuilder's default values so that backward
* compatibility with hbase-1.x can be mantained (see HBASE-24981).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@ public void testPriority() {
public void testStringCustomizedValues() throws HBaseException {
byte[] familyName = Bytes.toBytes("cf");
ColumnFamilyDescriptor hcd = ColumnFamilyDescriptorBuilder.newBuilder(familyName)
.setBlocksize(1000)
.setBlocksize(131072)
.build();
TableDescriptor htd = TableDescriptorBuilder.newBuilder(TableName.valueOf(name.getMethodName()))
.setColumnFamily(hcd)
Expand All @@ -380,7 +380,8 @@ public void testStringCustomizedValues() throws HBaseException {

assertEquals(
"'testStringCustomizedValues', " +
"{TABLE_ATTRIBUTES => {DURABILITY => 'ASYNC_WAL'}}, {NAME => 'cf', BLOCKSIZE => '1000'}",
"{TABLE_ATTRIBUTES => {DURABILITY => 'ASYNC_WAL'}}, "
+ "{NAME => 'cf', BLOCKSIZE => '131072 B (128KB)'}",
htd.toStringCustomizedValues());

htd = TableDescriptorBuilder.newBuilder(htd)
Expand All @@ -391,7 +392,8 @@ public void testStringCustomizedValues() throws HBaseException {
"'testStringCustomizedValues', " +
"{TABLE_ATTRIBUTES => {DURABILITY => 'ASYNC_WAL', "
+ "MAX_FILESIZE => '10737942528 B (10GB 512KB)', "
+ "MEMSTORE_FLUSHSIZE => '268435456 B (256MB)'}}, {NAME => 'cf', BLOCKSIZE => '1000'}",
+ "MEMSTORE_FLUSHSIZE => '268435456 B (256MB)'}}, "
+ "{NAME => 'cf', BLOCKSIZE => '131072 B (128KB)'}",
htd.toStringCustomizedValues());
}

Expand Down
2 changes: 1 addition & 1 deletion hbase-shell/src/main/ruby/hbase/admin.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1025,7 +1025,7 @@ def hcd(arg, htd)
end
family.setTimeToLive(arg.delete(ColumnFamilyDescriptorBuilder::TTL)) if arg.include?(ColumnFamilyDescriptorBuilder::TTL)
family.setDataBlockEncoding(org.apache.hadoop.hbase.io.encoding.DataBlockEncoding.valueOf(arg.delete(ColumnFamilyDescriptorBuilder::DATA_BLOCK_ENCODING))) if arg.include?(ColumnFamilyDescriptorBuilder::DATA_BLOCK_ENCODING)
family.setBlocksize(JInteger.valueOf(arg.delete(ColumnFamilyDescriptorBuilder::BLOCKSIZE))) if arg.include?(ColumnFamilyDescriptorBuilder::BLOCKSIZE)
family.setBlocksize(arg.delete(ColumnFamilyDescriptorBuilder::BLOCKSIZE)) if arg.include?(ColumnFamilyDescriptorBuilder::BLOCKSIZE)
family.setMaxVersions(JInteger.valueOf(arg.delete(HConstants::VERSIONS))) if arg.include?(HConstants::VERSIONS)
family.setMinVersions(JInteger.valueOf(arg.delete(ColumnFamilyDescriptorBuilder::MIN_VERSIONS))) if arg.include?(ColumnFamilyDescriptorBuilder::MIN_VERSIONS)
family.setKeepDeletedCells(org.apache.hadoop.hbase.KeepDeletedCells.valueOf(arg.delete(ColumnFamilyDescriptorBuilder::KEEP_DELETED_CELLS).to_s.upcase)) if arg.include?(ColumnFamilyDescriptorBuilder::KEEP_DELETED_CELLS)
Expand Down