Non-deterministic result when merging an empty KllFloatsSketch with two others
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
Piste de recherche
Commencez par reproduire le test fourni autour de KllFloatsSketch.newHeapInstance(), heapify(), merge() et toByteArray(). Comparez les résultats sérialisés répétés lors de la fusion des sketches contenant 1 et 200 éléments, puis retracez le comportement de la fusion et de la sérialisation. Le travail est terminé lorsque le test répété produit un seul digest déterministe et réussit systématiquement.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Merging an empty KllFloatsSketch with two KllFloatsSketch, with 1 and 200 "items" respectively, does not always produce the same result
I would have expected the following test scenario to pass:
@Test
public void test() throws NoSuchAlgorithmException {
KllFloatsSketch t1 = KllFloatsSketch.newHeapInstance();
t1.update(1f);
byte[] tb1 = t1.toByteArray();
KllFloatsSketch t2 = KllFloatsSketch.newHeapInstance();
for(int i=0; i<200; i++) {
t2.update(1f*i);
}
byte[] tb2 = t2.toByteArray();
HashSet<BigInteger> digests = new HashSet<>();
for(int i=0; i<30; i++) {
KllFloatsSketch start = KllFloatsSketch.newHeapInstance();
byte[] h1 = Arrays.copyOf(tb1, tb1.length);
byte[] h2 = Arrays.copyOf(tb2, tb2.length);
KllFloatsSketch kll1 = KllFloatsSketch.heapify(MemorySegment.ofArray(h1));
start.merge(kll1);
KllFloatsSketch kll2 = KllFloatsSketch.heapify(MemorySegment.ofArray(h2));
start.merge(kll2);
MessageDigest md5 = MessageDigest.getInstance("MD5");
BigInteger digest = new BigInteger(md5.digest(start.toByteArray()));
digests.add(digest);
System.out.println(digest);
}
assertEquals(1, digests.size());
}
The digests are:
115710133967357289505160160937439690295
-100233422360292323003164315945381734567
-100233422360292323003164315945381734567
-100233422360292323003164315945381734567
115710133967357289505160160937439690295
115710133967357289505160160937439690295
...
And therefore the test throws:
java.lang.AssertionError:
Expected :2
Actual :1
- Langage dominant
- Java
- Étoiles
- 958
- Forks
- 226
- Merge moyen
- 3 j 40 min
- PR mergées (30 j)
- 13
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de apache/datasketches-java
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
apache/datasketches-java#731 · 16 commentaires ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 58/100
apache/datasketches-java#739 · 1 commentaire ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
apache/datasketches-java#720 · 3 commentaires ·
-
Reservoir sampling improvements Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 30/100
apache/datasketches-java#647 · 5 commentaires ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
apache/datasketches-java#569 ·
Toutes les issues de apache/datasketches-java
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
infinispan/infinispan#18150 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
-
untriaged
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
opensearch-project/k-NN#3597 ·
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100