Can someone tell me how to read this RPC Metrics? What is FIndChnagesRID? Can someone tell me if there is a link that explain how to read this. Many thanks!
FindChangesRID is an internal method on the AF Server that is called by the AFSDK. This is the AF Server method called when AFDatabase.FindChangedItems() or AFSystem.FindChangedItems() is called.
Thanks Paul. Does it means that Majority of the time spend in my call is in this FindChangesRID. Is this normal? If not, how can I improve or where to look for my problem code?
It means that FindChangesRID was called 13210 times since the metrics where reset, probably the last time the AF Server service was restarted. Which version of AF Server are you using? I think that there was a significant performance improvement added in AF Server version 2.4. Check your code, and all your apps that use AFSDK to see how frequently they call FindChangedItems() or Refresh(). This call is often the largest total duration call of all the AF Server methods. Call it as often as necessary to look for changes to AF metadata, but no more than necessary.
Thanks Paul. Current Version installed is 2.3.0. Let me get the 2.4 +.
Yeah, my code call refresh() method. Let me review my code. Thanks!
Paul is correct that 2.4 improved the performance over 2.3. AF 2.5 improves the performance even more. Note that this call can be made by other OSIsoft software to determine if there are any changes it needs to process, and so it may not be made by your code. For example, the PI Notifications Scheduler will make this call to see if there are changes to notifications and elements that it needs to process. ProcessBook would make this call if you are displaying AF Attributes to see if their configuration or static values have changed. Using the AF SDK, AFDatabase.Refresh, PISystem.Refresh, AFDatabase.FindChangedItems, and PISystem.FindChangedItems are SDK calls that make this RPC call under the hood.
In AF 2.6 / 2.7 / ... will we, the AF Client, be able to be notified when there are changes? We signup to be notified of changes to a particular branch of an AF Database, or the whole AF Database itself, and we check the client pipe instead of hitting the AF Server each time.
Good question for UC2013.
UC2013 is too far away. I'm far too impatient.
How is AF2AF checking for changes - polling via FindChanges? What about the Abacus schedulers, wouldn't they need to consider an efficient way to track changes to hierarchy that invalidate the PE syntax?
You're asking us to discuss what we *may* be working on? Come one now, where's the suspense?
If there were such a thing as AF2AF, hypothetically speaking, it would poll for metadata changes via FindChangedItems(). Generally, asset configuration changes slowly compared to streaming data. (Even PI-SDK eventpipe mechanism polls the PI Server for streaming data change notification, or so I've heard.)
Retrieving data ...