Title: Changelog for TeamPage 4.1.4.3

This release includes the following changes. You can always download the latest TeamPage release from /share/customer/dist/latest.

Permissions: Performance and Memory



TeamPage's permissions cache, which is used to ensure the quickest possible response times for users who are actively making requests against a TeamPage server, has gotten a major overhaul. The new permissions cache includes many improvements to memory footprint, concurrency, and speed. Here are a few details for our technically inclined customers:

• The permissions cache is now based upon a cache data structure with two levels. The first level is used to store the permissions data for the user accounts whose requests are actively being serviced. The second level is slightly larger, and maintains otherwise recently used permissions data for user accounts whose requests have been recently serviced, and whose requests are most likely to be serviced in the near future.

• The size of each cache level is configurable using the new L1 and L2 Permissions Cache Size settings on the Server Setup | General page. (Please adjust these settings with the assistance of Traction Software support staff only.)

• Cached permission data is shuffled between the two levels depending upon how it is being used, and data is discarded from the second layer on a least-recently-used basis, ensuring that the quickest access possible is offered for users who are actively making requests.

• Permissions data that is being requested to simply provide information about a user's permissions to a given resource is no longer cached, since the user whose permissions are being queried is not necessarily the one making the request, and there is no reason to keep that data around.

• Performance under high concurrency has been improved by using a data structure for the first level cache that doesn't have to be locked.

• The memory used for the cache has been decreased by multiple orders of magnitude from the previous 4.x implementation, dramatically decreasing the likelihood of cache growth triggering the automatic full cache flush at the memory cleanup threshold.

Content Cleanup and Normalization



The content of TeamPage articles can come from many sources: typed content; RSS feeds; mail messages; content pasted from a web page; content pasted from a document; etc. It is a challenge to keep up with new formatting idioms while ensuring article content is cleaned up in an understandable and acceptable fashion, no matter where it comes from.

In 4.1, changes associated with the updates to TeamPage's rich text editor component resulted in certain problems with article content cleanup compared with version 4.0. Also, as more customers begin to use Microsoft Office 2007, there were new requirements for content cleanup. This version includes several improvements to the content cleanup pipeline. We think these changes will make our users much happier.

We feel that we've made solid improvements, but there are bound to be cases we're missing. If after upgrading to this version of TeamPage you still have problems with content cleanup, please bring them to our attention by posting to the Forum or posting a bug report from the Help project newspage. Please be sure to indicate what version you are using!

• Made many improvements were made to the handling of bulleted and numbered lists, normal paragraphs, and other structures copied and pasted from Microsoft Office versions 2003 and 2007. It is recommended that when pasting content copied from Office 2003, users click the "Simplify HTML" link to clean up the content before posting it. (Server43454, CriticalMarketing290)

• Inline formatting information that would sometimes appear in content that was copied and pasted from Microsoft Office documents, especially when using Microsoft Office 2007, is now correctly identified and discarded. (Forum1772)

• Content cleanup was previously applied to the entire mail message -- the subject and body of the incoming message. Cleanup is now applied separately to the message subject that is used as the article title; and to the message body that is used as the article content. This fixes some problems with cleaning up the content of incoming mail messages, especially when the incoming message body consisted of an entire complete HTML document. (Server43340)

• Made many improvements to the cleanup of articles posted from mail messages, especially those sent by a Microsoft Outlook mail client. An extra content cleanup phase was added that allows transformations be applied to clean up the content of incoming mail message content, before the normal content cleanup applied to all article content. (CriticalMarketing367)

• Made many improvements and simplifications to the standard content cleanup that is applied to the content of an article before it is stored in the journal. Results of these improvements include discarding of unnecessary inline formatting tags (superfluous SPAN or FONT tags); discarding of empty blocks (P [paragraph], DIV, BLOCKQUOTE, H1, etc.), especially some of those that could be difficult to remove in the rich text editor (where they would sometimes not show up); and improvements to the handling of one column TABLEs, which are now correctly down-sampled to remove the TABLE while correctly preserving any nested TABLEs. (Server43323)

• Fixed an SDK bug that caused the destruction of block containers (P tags, etc.) required to separate the paragraphs in the content of an article that had not yet been posted, when multiple transformer scripts were applied during a "Simplify HTML" operation. (Server43459)

Other Bug Fixes



• Articles posted as records of outgoing emails (using the Email Articles tool) do not always include the content of the message sent. A recent regression was fixed that was causing these empty records to appear to be comments on the article they emailed when viewing the empty email record, even though they no longer appear as comments when viewing the articles that were emailed out. (Server43080)

• Fixed a style bug in the Block email digest skin that caused headings appearing in digest articles to be styled the same way as the digest section headings. (Server43171)

• Fixed a bug that caused the Print Version tool for a user profile page to always show the user profile sections for the user viewing the page, instead of the user profile sections for the user whose profile is being viewed. (Server43364)

• Fixed a bug that could cause the journal display name not to appear in the appropriate place on the Server Setup | General page's Current Journal tab, and would also have caused this display name to be lost if an administrator applied any other changes on this page. (cvs35667, cvs35692)

• If a certain memory usage threshold is reached, TeamPage dumps data stored in various caches in order to free memory which is then "garbage collected" by the Java Virtual Machine. This includes the data in the "principal" cache, which is used to store information about user identity from external systems such as an LDAP or Active Directory server. Because this information is required for determining user permissions, and because populating the principal cache can be a very time and resource intensive process, a forced clearing of the principal cache would be likely to cause very significant performance problems in TeamPage deployments that are integrated with an external identity server. In this version of TeamPage, the "principal" cache is, by default, not eligible to be cleared when the system is attempting to free memory. This prevents the TeamPage server from having to refresh the principal cache at inopportune times, avoiding the associated performance penalty. The principal cache can still be cleared using the "Clear Caches" button on the Server Setup | General page, and will still be updated according to the schedule specified in the user directory configuration. (cvs35657)

• We added back in a synchronous flush() to some of our mmap'd IO to try to decrease cases where forced shutdowns on Windows left unwritten data that required rebuilds.



Article: Customer1816 (permalink)
Categories: :Doc:changelog
Date: February 17, 2009; 9:24:41 PM Eastern Standard Time

Author Name: Dave Shepperton
Author ID: shep