This is an automated email from the ASF dual-hosted git repository. hui pushed a commit to branch research/encoding-reorder in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 98dbe4f8275d7ab8d9f2a254b358e6c63307b490 Author: xjz17 <[email protected]> AuthorDate: Tue Oct 31 15:54:24 2023 +0800 update p --- .../iotdb/tsfile/encoding/RegerPDoubleTest.java | 120 ++------------------- .../iotdb/tsfile/encoding/RegerPFloatTest.java | 2 +- 2 files changed, 7 insertions(+), 115 deletions(-) diff --git a/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPDoubleTest.java b/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPDoubleTest.java index bb1fb8b63ee..f4e745e90fd 100644 --- a/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPDoubleTest.java +++ b/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPDoubleTest.java @@ -590,16 +590,6 @@ public class RegerPDoubleTest { ts_block[beta][1] = tmp_tv[1]; } - private static ArrayList<Integer> isMovable(ArrayList<Integer> alpha_list, ArrayList<Integer> beta_list) { - ArrayList<Integer> isMoveable = new ArrayList<>(); - for (int i = 0; i < alpha_list.size(); i++) { - if (alpha_list.get(i) != -1 && beta_list.get(i) != -1) { - isMoveable.add(i); - } - } - return isMoveable; - } - private static ArrayList<Integer> isMovable(int[] alpha_list, int[] beta_list) { ArrayList<Integer> isMoveable = new ArrayList<>(); for (int i = 0; i < alpha_list.length; i++) { @@ -1171,104 +1161,6 @@ public class RegerPDoubleTest { } - private static int getIstarClose(int alpha, ArrayList<Integer> j_star_list) { - int min_i = 0; - int min_dis = Integer.MAX_VALUE; - for (int i : j_star_list) { - if (abs(alpha - i) < min_dis) { - min_i = i; - min_dis = abs(alpha - i); - } - } - if (min_dis == 0) { - System.out.println("get IstarClose error"); - return 0; - } - return min_i; - } - - - - public static ArrayList<Byte> encodeRLEBitWidth2Bytes( - ArrayList<ArrayList<Integer>> bit_width_segments) { - ArrayList<Byte> encoded_result = new ArrayList<>(); - - ArrayList<ArrayList<Integer>> run_length_time = new ArrayList<>(); - ArrayList<ArrayList<Integer>> run_length_value = new ArrayList<>(); - - int count_of_time = 0; - int count_of_value = 0; - int pre_time = bit_width_segments.get(0).get(0); - int pre_value = bit_width_segments.get(0).get(1); - int size = bit_width_segments.size(); - for (int i = 1; i < size; i++) { - int cur_time = bit_width_segments.get(i).get(0); - int cur_value = bit_width_segments.get(i).get(1); - if (cur_time != pre_time) { // 当前值与前一个值不同 - ArrayList<Integer> tmp = new ArrayList<>(); - tmp.add(count_of_time); - tmp.add(pre_time); - run_length_time.add(tmp); - pre_time = cur_time; - count_of_time = 0; - } else {// 当前值与前一个值相同 - count_of_time++; - if (count_of_time == 256) { // 个数不能大于256 - ArrayList<Integer> tmp = new ArrayList<>(); - tmp.add(count_of_time); - tmp.add(pre_time); - run_length_time.add(tmp); - count_of_time = 0; - } - } - - if (cur_value != pre_value) { // 当前值与前一个值不同 - ArrayList<Integer> tmp = new ArrayList<>(); - tmp.add(count_of_value); - tmp.add(pre_value); - run_length_value.add(tmp); - pre_value = cur_value; - count_of_value = 0; - } else {// 当前值与前一个值相同 - count_of_value++; - if (count_of_value == 256) { // 个数不能大于256 - ArrayList<Integer> tmp = new ArrayList<>(); - tmp.add(count_of_value); - tmp.add(pre_value); - run_length_value.add(tmp); - count_of_value = 0; - } - } - - } - if (count_of_time != 0) { - ArrayList<Integer> tmp = new ArrayList<>(); - tmp.add(count_of_time); - tmp.add(pre_time); - run_length_time.add(tmp); - } - if (count_of_value != 0) { - ArrayList<Integer> tmp = new ArrayList<>(); - tmp.add(count_of_value); - tmp.add(pre_value); - run_length_value.add(tmp); - } - - for (ArrayList<Integer> bit_width_time : run_length_time) { - byte[] timestamp_bytes = bitWidth2Bytes(bit_width_time.get(0)); - for (byte b : timestamp_bytes) encoded_result.add(b); - byte[] value_bytes = bitWidth2Bytes(bit_width_time.get(1)); - for (byte b : value_bytes) encoded_result.add(b); - } - for (ArrayList<Integer> bit_width_value : run_length_value) { - byte[] timestamp_bytes = bitWidth2Bytes(bit_width_value.get(0)); - for (byte b : timestamp_bytes) encoded_result.add(b); - byte[] value_bytes = bitWidth2Bytes(bit_width_value.get(1)); - for (byte b : value_bytes) encoded_result.add(b); - } - return encoded_result; - } - public static int encodeRLEBitWidth2Bytes( int[][] bit_width_segments) { int encoded_result = 0; @@ -1448,15 +1340,15 @@ public class RegerPDoubleTest { int2Bytes(delta_segments[0][1], pos_encode, encoded_result); pos_encode += 4; double2bytes(theta[0] + raw_length[3], pos_encode, encoded_result); - pos_encode += 4; + pos_encode += 8; double2bytes(theta[1] + raw_length[4], pos_encode, encoded_result); - pos_encode += 4; + pos_encode += 8; for (int i = 2; i < theta.length; i++) { double2bytes(theta[i], pos_encode, encoded_result); - pos_encode += 4; + pos_encode += 8; } // System.out.println(delta_segments[0][0]); // System.out.println(delta_segments[0][1]); @@ -1645,7 +1537,7 @@ public class RegerPDoubleTest { int segment_n = (block_size-p) / segment_size; int result = 0; result += 8; // encode interval0 and value0 - result += 16; // encode theta + result += ((2*p+1)*8); // encode theta result += encodeRLEBitWidth2Bytes(bit_width_segments); for (int segment_i = 0; segment_i < segment_n; segment_i++) { @@ -2655,7 +2547,7 @@ public class RegerPDoubleTest { String[] record = { f.toString(), - "REGER-32-DOUBLE", + "REGER-64-DOUBLE", String.valueOf(encodeTime), String.valueOf(decodeTime), String.valueOf(data.size()), @@ -2841,7 +2733,7 @@ public class RegerPDoubleTest { String[] record = { f.toString(), - "REGER-32-DOUBLE", + "REGER-64-DOUBLE", String.valueOf(encodeTime), String.valueOf(decodeTime), String.valueOf(data.size()), diff --git a/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPFloatTest.java b/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPFloatTest.java index cc8c6799b50..24c074a066b 100644 --- a/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPFloatTest.java +++ b/iotdb-core/tsfile/src/test/java/org/apache/iotdb/tsfile/encoding/RegerPFloatTest.java @@ -2043,7 +2043,7 @@ public class RegerPFloatTest { int segment_n = (block_size-p) / segment_size; int result = 0; result += 8; // encode interval0 and value0 - result += 16; // encode theta + result += ((2*p+1)*4); // encode theta result += encodeRLEBitWidth2Bytes(bit_width_segments); for (int segment_i = 0; segment_i < segment_n; segment_i++) {
