[Unicode]   Common Locale Data Repository : Bug Tracking Home | Site Map | Search
 
Modify

CLDR Ticket #9566(accepted survey)

Opened 10 months ago

Last modified 7 weeks ago

ST: STFactory startup optimization

Reported by: srl Owned by: srl
Component: unknown Data Locale:
Phase: dsub Review:
Weeks: Data Xpath:
Xref:

ticket:9512

Description

(this is not just server startup, but 'loading a locale')

in loadVoteValues(), internalSetVoteForValue() is repeatedly called with each vote in the DB.

internalSetVoteForValue() internally (1) populates the PerXPathData and (2) calls setValueFromResolver to resolve and record the voting result as it happens, even though all of the votes aren't in yet.

However ,at startup time, we don't need to (could defer) actually counting the votes. In fact, loadVoteValues ignores the return from internalSetVoteForValue.

An optimization on loadVoteValues would be to:
(1) populate the PerXPathData (internalSetVoteForValue but without setValueFromResolver)
(2) for ( String path : PerXPathData.keySet()) { setValueFromResolver(path, …); } to now count/record all votes.

Otherwise, votes are needlessly counted before all are in.

Furthermore, if getResolverInternal needs to recurse (as per ticket:9512) it can't reliably do so unless it knows all the votes are in.

Attachments

Change History

comment:1 Changed 10 months ago by srl

a workaround in the aforementioned ticket in r12710 put in the RE_RESOLVE_ALL_XPATHS switch in STFactory. Turn this off (and remove the relevant code) when this is fixed.

comment:2 Changed 10 months ago by mark

  • Owner changed from anybody to srl
  • Priority changed from assess to critical
  • Type changed from unknown to survey
  • Status changed from new to accepted
  • Milestone changed from UNSCH to 31

comment:3 Changed 7 weeks ago by srl

  • Milestone changed from 31 to 32
View

Add a comment

Modify Ticket

Action
as accepted
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.