Jackie-Jiang commented on pull request #7076:
URL: https://github.com/apache/incubator-pinot/pull/7076#issuecomment-865252385
@tdunning
The random t-digest objects are created as following:
```
@Override
Object getRandomRawValue(Random random) {
TDigest tDigest = TDigest.createMergingDigest(COMPRESSION);
tDigest.add(random.nextInt(MAX_VALUE));
tDigest.add(random.nextInt(MAX_VALUE));
return ObjectSerDeUtils.TDIGEST_SER_DE.serialize(tDigest);
}
```
In non-star-tree approach simply merges the t-digests in sequence without
ser-de; the star-tree approach will pre-aggregate t-digests and then stores the
serialized merged t-digests (each pre-aggregated t-digest might go through
multiple rounds of ser-de).
Non-star-tree:
```
TDigest tDigest = deserialize(tDigest1);
tDigest.add(deserialize(tDigest2));
tDigest.add(deserialize(tDigest3));
tDigest.add(deserialize(tDigest4));
```
Star-tree:
```
TDigest tDigest = deserialize(tDigest1);
tDigest.add(deserialize(tDigest2));
byte[] mergedTDigest1 = serialize(tDigest);
tDigest = deserialize(tDigest3);
tDigest.add(deserialize(tDigest4));
byte[] mergedTDigest2 = serialize(tDigest);
tDigest = deserialize(mergedTDigest1);
tDigest.add(deserialize(mergedTDigest2));
```
Then we compare the result for each quantile from these 2 result t-digest
objects.
Hope this can explain the test logic.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]