use of org.apache.carbondata.core.datastore.chunk.impl.FixedLengthDimensionColumnPage in project carbondata by apache.
the class CarbonUtilTest method testToGetFirstIndexUsingBinarySearchWithCompareTo1.
@Test
public void testToGetFirstIndexUsingBinarySearchWithCompareTo1() {
byte[] dataChunks = { 10, 20, 30, 40, 50, 60 };
byte[] compareValue = { 5 };
FixedLengthDimensionColumnPage fixedLengthDimensionDataChunk = new FixedLengthDimensionColumnPage(dataChunks, null, null, 6, 1, dataChunks.length);
int result = CarbonUtil.getFirstIndexUsingBinarySearch(fixedLengthDimensionDataChunk, 1, 3, compareValue, false);
assertEquals(-2, result);
}
use of org.apache.carbondata.core.datastore.chunk.impl.FixedLengthDimensionColumnPage in project carbondata by apache.
the class IncludeFilterExecutorImplTest method testRangBinarySearch.
@Test
public void testRangBinarySearch() {
long oldTime = 0;
long newTime = 0;
long start;
long end;
// dimension's data number in a blocklet, usually default is 32000
int dataChunkSize = 32000;
// repeat query times in the test
int queryTimes = 10000;
// repeated times for a dictionary value
int repeatTimes = 200;
// filtered value count in a blocklet
int filteredValueCnt = 800;
// column dictionary size
int dimColumnSize = 2;
FixedLengthDimensionColumnPage dimensionColumnDataChunk;
DimColumnExecutorFilterInfo dim = new DimColumnExecutorFilterInfo();
byte[] dataChunk = new byte[dataChunkSize * dimColumnSize];
for (int i = 0; i < dataChunkSize; i++) {
if (i % repeatTimes == 0) {
repeatTimes++;
}
byte[] data = transferIntToByteArr(repeatTimes, dimColumnSize);
dataChunk[2 * i] = data[0];
dataChunk[2 * i + 1] = data[1];
}
byte[][] filterKeys = new byte[filteredValueCnt][2];
for (int k = 0; k < filteredValueCnt; k++) {
filterKeys[k] = transferIntToByteArr(100 + k, dimColumnSize);
}
dim.setFilterKeys(filterKeys);
dimensionColumnDataChunk = new FixedLengthDimensionColumnPage(dataChunk, null, null, dataChunk.length / dimColumnSize, dimColumnSize, dataChunk.length);
// initial to run
BitSet bitOld = this.setFilterdIndexToBitSetWithColumnIndexOld(dimensionColumnDataChunk, dataChunkSize, filterKeys);
BitSet bitNew = this.setFilterdIndexToBitSetWithColumnIndexNew(dimensionColumnDataChunk, dataChunkSize, filterKeys);
// performance run
for (int j = 0; j < queryTimes; j++) {
start = System.currentTimeMillis();
bitOld = this.setFilterdIndexToBitSetWithColumnIndexOld(dimensionColumnDataChunk, dataChunkSize, filterKeys);
end = System.currentTimeMillis();
oldTime = oldTime + end - start;
start = System.currentTimeMillis();
bitNew = this.setFilterdIndexToBitSetWithColumnIndexNew(dimensionColumnDataChunk, dataChunkSize, filterKeys);
end = System.currentTimeMillis();
newTime = newTime + end - start;
assertTrue(bitOld.equals(bitNew));
}
System.out.println("old code performance time: " + oldTime + " ms");
System.out.println("new code performance time: " + newTime + " ms");
}
use of org.apache.carbondata.core.datastore.chunk.impl.FixedLengthDimensionColumnPage in project carbondata by apache.
the class CarbonUtilTest method testToGetFirstIndexUsingBinarySearchWithCompareToLessThan0.
@Test
public void testToGetFirstIndexUsingBinarySearchWithCompareToLessThan0() {
byte[] dataChunks = { 10, 20, 30, 40, 50, 60 };
byte[] compareValue = { 30 };
FixedLengthDimensionColumnPage fixedLengthDimensionDataChunk = new FixedLengthDimensionColumnPage(dataChunks, null, null, 6, 1, dataChunks.length);
int result = CarbonUtil.getFirstIndexUsingBinarySearch(fixedLengthDimensionDataChunk, 1, 3, compareValue, false);
assertEquals(2, result);
}
use of org.apache.carbondata.core.datastore.chunk.impl.FixedLengthDimensionColumnPage in project carbondata by apache.
the class CarbonUtilTest method testToGetNextLesserValueToTarget.
@Test
public void testToGetNextLesserValueToTarget() {
byte[] dataChunks = { 7, 7, 7, 8, 9 };
byte[] compareValues = { 7 };
FixedLengthDimensionColumnPage fixedLengthDataChunk = new FixedLengthDimensionColumnPage(dataChunks, null, null, 5, 1, dataChunks.length);
int result = CarbonUtil.nextLesserValueToTarget(2, fixedLengthDataChunk, compareValues);
assertEquals(result, -1);
}
use of org.apache.carbondata.core.datastore.chunk.impl.FixedLengthDimensionColumnPage in project carbondata by apache.
the class CarbonUtilTest method testToGetFirstIndexUsingBinarySearchWithMatchUpLimitTrue.
@Test
public void testToGetFirstIndexUsingBinarySearchWithMatchUpLimitTrue() {
byte[] dataChunks = { 10, 10, 10, 40, 50, 60 };
byte[] compareValue = { 10 };
FixedLengthDimensionColumnPage fixedLengthDimensionDataChunk = new FixedLengthDimensionColumnPage(dataChunks, null, null, 6, 1, dataChunks.length);
int result = CarbonUtil.getFirstIndexUsingBinarySearch(fixedLengthDimensionDataChunk, 1, 3, compareValue, true);
assertEquals(2, result);
}
Aggregations