Details of how bookmark synchronization works in Spotfire

Details of how bookmark synchronization works in Spotfire

book

Article ID: KB0070808

calendar_today

Updated On:

Products Versions
Spotfire Analyst -

Description

Bookmarks are snapshots of the state of an analysis. Add a bookmark to your analysis to be able to return to a state where you found something interesting when you marked or filtered out certain items. A bookmark can be applied at any time, allowing you to quickly return to a previously created view of the data. You can also share your insights with others by making your bookmarks available to other users, or by sending links to the bookmarks. You may come across several queries while working with bookmarks in Spotfire and some of which have been answered below in resolution section.

Issue/Introduction

This article provides information on how bookmark synchronization works and basic queries related to bookmarks.

Environment

All

Resolution

Question 1: What is the frequency for bookmarks synchronization?
Answer: The frequency of bookmark synchronization is controlled by the parameter Bookmarks_MinimumSynchronizationIntervalSeconds in Spotfire.Dxp.Worker.Host.exe.config, and its default value is 60 seconds. It's 60 seconds for Spotfire Analyst as well. To increase bookmark synchronization frequency, please refer following knowledge base article: https://support.tibco.com/s/article/DHow-to-update-frequency-of-bookmark-synchronizationrks

Question 2: If we increase the bookmark synchronization(say, from 60 to 120 seconds) will this cause any problem?
Answer: The purpose of the bookmark synchronization is to be able to update the User Interface(UI) so that the user will see the current set of bookmarks. If you set it to 120 seconds then the UI is updated (roughly) every 120 seconds. This means that the user may have to wait up to 120 seconds before they can see a new bookmarks that is created (by other users or by themselves) for instances of an analysis that are executing on other web player worker hosts. Similarly, it may take up to 120 seconds before a bookmark that is deleted gets removed from the UI.

Question 3: Does the bookmark synchronize for all the analysis within the library or based on open analysis in that instance?
Answer: The bookmark synchronization only includes analyses that are open on the worker host instance. Each analysis will require a separate synchronization step which involves at least one web service API(Application Programming Interface) call. If there are multiple instances of an analysis on the worker host then they will be synchronized in a common step. Thus, the number of web service calls is not affected by how many instances of an analysis that are open on the worker host.

Question 4: When the Synchronization occurs, does it check for data or fetches all the data again?
Answer: For each analysis, if a bookmark has been added, updated or deleted then the web service API call will return a list of identifiers for all (public and private) bookmarks. In the installed client, it will only include the public bookmarks and the private bookmarks for the user.
However, the bookmarks themselves are not included. A second phase will fetch the bookmarks that has been created or updated since the last synchronization. However, note that when the first instance of an analysis is opened on the worker host, then all bookmarks will be fetched.

Question 5: When we click on the bookmark panel, does it fetch the data from memory or does it make another call to the Database?
Answer: It fetches data from a cache in memory.

Question 6: In the LIB_Items table in spotfire database, when is the bookmark accessed updated, does it get updated for a specific bokkmark when we select that bookmark or does it update all the bookmarks for that user or analysis?
Answer: Last accessed will always be updated for all bookmarks when a client loads all eligible bookmarks in the initial update and after this initial fetch only changed bookmarks will get last access updated.

Question 7: Is there a recommended way to remove the old bookmarks?
Answer: You would have to fetch the library identifiers for the bookmarks that you want to delete, then delete-library-content can for example be used. Please refer following link on how to use delete-library-content command: https://docs.tibco.com/pub/spotfire_server/latest/doc/html/TIB_sfire_server_tsas_admin_help/server/topics/delete-library-content.html

Question 8: Large number of users(say, 15000 or more) with a significant number of bookmarks each(consider 10 bookmarks each) accessing the same report may cause the soap request quota to exceed at several points in time during synchronization. What is recommended for this volume quota demand?
Answer: You may need to increase the value of soapReceivedMessageSizeKb in the spotfire.dxp.worker.core to the point where you do not see issue. Note that this value should be determined keeping in mind the resources like memory available for your service.

Question 9: Is there any recommendation on the total size of bookmarks? Does the bookmark synchronization gets all the data?
Answer: The initial synchronization will get all the data for all bookmarks. Subsequent synchronizations will only fetch added or updated bookmarks.

Question 10: The default soapReceivedMessageSizeKb="65536", Is this for the users' bookmarks or for the entire database bookmarks and is there a upper limit that we can set for this message size?
Answer: This setting specifies a maximum size for all soap web service API calls so it is an upper limit. The bookmark synchronization makes a web service call for each analysis that is open on a worker host. Thus the total number of bookmarks in the database does not matter. It is the total number of bookmarks for an analysis that determines how large the response will be.

Question 11: Is the size of the bookmark based on the data selected for bookmark?
Answer: The size of the bookmark depends, among other things, on what is marked when the bookmark is created. However, each row of the data is not (necessarily) included. If the user marks a bar in a bar chart then we will not include all the rows in the data that the bar corresponds to. Instead we will just store the categorical value that the bar corresponds to.

Additional Information

Doc: Bookmark Preferences: Doc: Delete Library content: