apache / apache/datasketches-cpp

Theta sketch output doesn't match between Java and CPP

Đang mở
#460 6 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
C++
Star
273
Fork
88
Merge trung bình
2 ngày 2 giờ
Pull request đã merge (30 ngày)
8

Mô tả

I have run a simple theta sketch computation as below in Java and CPP

```
Union union = Union.builder().buildUnion();
union.update(1);
union.update(2);
CompactSketch compactSketch = union.getResult();
byte[] bytes = union.getResult().toByteArray()
```

Java output:

02 03 03 00 00 1a cc 93 02 00 00 00 00 00 **80 3f**
15 f9 7d cb bd 86 a1 05 c3 97 fc 12 81 70 9d 1e

CPP :

```
updateThetaSketch update_sketch = updateThetaSketch::builder().build();

update_sketch.update(1);
update_sketch.update(2);
auto bytes = update_sketch.compact().serialize();

```

CPP output:

02 03 03 00 00 1a cc 93 02 00 00 00 00 00 **00 00**
15 f9 7d cb bd 86 a1 05 c3 97 fc 12 81 70 9d 1e

The output seems to not match, as we see in bold at the end of first line, 4 bytes "80 3f" is missing in CPP.

Can anyone share why this is so?

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện các ví dụ Java Union và C++ updateThetaSketch được hiển thị trong issue, sau đó so sánh bố cục byte đã tuần tự hóa của chúng xung quanh các byte được đánh dấu. Truy vết các điểm vào của quá trình tuần tự hóa và giải tuần tự được cả hai phần triển khai sử dụng; công việc được coi là hoàn tất khi các byte khác nhau đã được giải thích và đầu ra tương thích hoặc hành vi định dạng được tài liệu hóa đã được xác lập.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
cpp, java
Lĩnh vực
data
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
45/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.