Hey thanks, this was helpful! On Sat, Jul 19, 2025 at 12:54 AM David Daly <dr.davidd...@gmail.com> wrote:
> I reached out to a couple of people still at MongoDB. They may show up > directly here later, but for now to the question about the differences > between 2.x series and 1.3.5 I was told: > > the main difference (as far as i remember) of 2.0 branch from 1.0 branch is > > that it supports multivariate change point detection and improves the > > distance calculation logic for permutation testing to make it faster. We > > also cleaned up the 1.0 code in 2.0 to make it easier to read/understand > > and got rid of interfaces that we were not using. > > > I'm fairly confident that the multivariate code is not used in production, > but there were some experiments in that direction to lower false positives > and deal with the very large number of time series we had ended up > tracking. > I had forgotten this isn't implemented originally. Both Otava code and for example Nyrkiö code that consumes it has structure to support multiple metrics/variables, I had completely forgot they call the algorithm separately for each one. Whether or not it is used by anyone or was ever useful to anyone, this makes it a bit more interesting to consider upgrading to 2.0. Even just for completeness if nothing else. > That person is going to be out for a week. Hopefully they show up and say > hello directly to the mailing list after that. Having MongoDB people directly involved would be great! If MongoDB perf team wants to colllaborate with us, that alone is IMO sufficient reason to work from the same version. I should note that the additions in Otava are significant, so upgrading will require copy pasting and possibly changing blocks of code, not just making some function call work if the nr of arguments changed. Currently there's code in Otava that rather should be in signal_processing`*. Ideally we have discussed to maybe merge all of it into a single repo, but alternatively we could push improvements from Otava to the signal_processing repo. *) example: https://github.com/apache/otava/blob/8bb5e8eaaf8d0880650ad382c557963912e9454d/otava/analysis.py#L99 henrik