TimedValue deDuplication functionality


#1

One of the key benefits of modeling data as a TimedValue is deduplication. I previously understood that deduplication is only triggered when you great a TimedValue through its parent type, eg:
ParenType.create({
timedValueField: {
value: 10
}
});

Is this a correct understanding? The problem Im faced with is that creating TimedValues through its parent is fairly slow which becomes an issue during data load. It would be great if there was a way to create these TimedValues, and then deDupe them in bulk rather than (what I think is happening now) deDupe on every TImedValue create call. Is bulk deDuping possible?


#2

Calvin,

Your understanding is correct. However, if the values don’t change often, creating/updating them through the parent obj should perform ok and we are using that extensively in large environments (e.g. enel/bge, etc.). There isn’t any other existing facility to dedup the way you are describing but it should be possible to implement a new feature to support that.

I would suggest starting with the assumption that they will be created/updated through the parent obj and if you believe that your case is specifically unique to make that not workable we discuss adding additional support.


#3

I think what you say is a good solution for incremental loads. For initial data load, Ive noticed significant performance lags when loading TimedValues through their parents. My experience with this comes from the OilAndGas app and more recently the Infor app. We can test these hypothesis by measuring the time it takes to load TimedValues via parent and otherwise.


#4

Ok. Just as a data point, we did it, even for initial data load for enel and bge so it seemed at least sufficient for them and I would guess they are in the same scale as anything else we would do.