LiveCompare Public/Private Userdata and External Data Sources

Customers upgrading to LiveCompare 3.7 will see public and private used in a couple of places:

  1. Userdata is now organized into public and private sub-folders
  2. External data sources (XDS) have a public and private setting

The two “features” are completely independent. Let me deal with them separately.

Public/Private Userdata

We re-organized LiveCompare’s userdata storage to improve performance. When everything was lumped into a single folder we observed a 2%-5% CPU burn by IIS as it tracked every change LiveCompare made to userdata.

Many types of userdata are managed by LiveCompare, but only a few need to be accessed via a browser and thus need to be visible to IIS. One key type is reports. Reports are accessed via a user’s browser and thus must be visible to IIS.

The public/private folder names mean simply that:

  • Public – data is accessible via a user’s browser and is visible to IIS
  • Private – data is not accessible directly via a user’s browser and is not visible to IIS

Probably because of the names we chose and the public/private setting on XDSs, we’ve observed customers moving LiveCompare’s registration of XDSs from the public to private userdata folder. In hindsight perhaps better names for the sub-folders would have been:

  • iis
  • internal

I'm not convinced that we should rename the folders again.

Public/Private External Data Sources

This setting has absolutely nothing to do with the public/private userdata reorganization. The setting controls whether the contents of an XDS are accessible via a REST API (public) or not (private). By default all XDSs are private.

We added the REST API to make it easier for external applications – say a consolidated executive dashboard – to access LiveCompare-produced information without all the messing about with the web services API.

In hindsight we could have labelled the setting better. Perhaps:

  • REST API: Yes or No

In fact I like this so much we've changed it for the upcoming LiveCompare 3.7R3 release:

Observations

From our helpdesk database I see several things:

  1. Users with external programs that write directly to LiveCompare file-backed XDS (e.g. CSV or Excel) will need to update their programs because the path to each XDS file has changed. E.g.:

    E:\lcdata\ExternalDataFiles\foo.csv

    is now:

    E:\lcdata\public\ExternalDataFiles\foo.csv
  2. Users should not manually move or edit any files under userdata. LiveCompare will upgrade the structure and contents of files automatically.
  3. Moving ExternalDataSources.xml from userdata\public to userdata\private has no effect on the public/private setting of external data sources. All that will happen is that when LiveCompare is restarted, none of the XDSs will be accessible or visible in the UI. See item#2 above.