Closed ICGog closed 8 years ago
We should fix this, since we've already hit the issue several times before.
In the past, @AdamGleave moved (parts of) the simulator to use SpookyHash, and we already have SpookyHash as an external dependency in the code base. This suggests that we should use SpookyHash as a replacement for boost::hash::hash_combine()
.
Am I right in assuming that these are changes that affect both simulation and real execution, since common components (e.g., Task IDs) are affected?
Yes, you're right. The changes affect both simulation and real execution.
We're now using SpookyHash wherever we don't need to merge two sources of information. The change is here: https://github.com/ms705/firmament/commit/af072c050939062176bb3735aae6a6cc7fb9ce52
Currently, we use
hash_combine()
fromboost::hash
to generate unique IDs. However,boost::hash::hash_combine
is a rather weak hash that in practice can lead to collisions. One such collision can be obtained by running a simulation with 1000 tasks / second submission rate using the following command: