|Resolved||Addshore||T208425 [EPIC] Kill the wb_terms table|
|Resolved||Addshore||T219303 [Checkpoint 5] Update Read Logic|
|Resolved||• alaa_wmde||T225603 Wire up read logic for normalized storage in Wikibase|
|Resolved||• alaa_wmde||T225003 Implement PropertyLabelResolver using normalized storage|
|Resolved||• alaa_wmde||T225626 Remove fallback to master logic from resolver|
|Resolved||• alaa_wmde||T225717 Implement DatabaseTermIdsResolver::resolveTermsViaJoin|
|Resolved||• alaa_wmde||T225718 Add TypeIdsLookup and implement it in DatabaseTypeIdsStore|
|Resolved||• alaa_wmde||T225818 Add type and language filtering capabilities to DatabaseTermIdsResolver::resolveTermsViaJoin|
|Resolved||Lucas_Werkmeister_WMDE||T225001 Implement PrefetchingTermLookup for properties using normalized storage|
It looks like the current BufferingTermLookup is set up in two places:
- In data-access/src/PerRepositoryServiceWiring.php, which is eventually used by MultipleRepositoryAwareWikibaseServices and used if useEntitySourceBasedFederation is false.
- In data-access/src/SingleEntitySourceServices.php, which is eventually used by MultipleEntitySourceServices and used if useEntitySourceBasedFederation is true.
I have no idea why we seem to have two completely separate federated service setups. useEntitySourceBasedFederation defaults to false, but in production is set to true for Commons and Test Wikidata, as well as any beta installation, and since production Wikidata shouldn’t use federation as far as I’m aware, I guess we’re actually using entity source-based federation everywhere? Whatever that means.
I figure we still need to wire up the new logic in both places, but this looks like something that should be cleaned up, or at least documented better…
PropertyLabelResolver is actually used in client, this means it has to access db using DBAccessBase, which means that has to be pushed down to all our Database implementations too and used there instead of ILoadBalancer.