Smalyshev has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/396474 )
Change subject: Fix Updater performance issue ...................................................................... Fix Updater performance issue Do not use removeAll - just assemble the collections in straightforward way. Bug: T182464 Change-Id: I02530690e877cc1b60f11dc2fc8b97622c742d68 --- M tools/src/main/java/org/wikidata/query/rdf/tool/rdf/RdfRepository.java 1 file changed, 22 insertions(+), 8 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/wikidata/query/rdf refs/changes/74/396474/1 diff --git a/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/RdfRepository.java b/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/RdfRepository.java index e6e891e..8be934d 100644 --- a/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/RdfRepository.java +++ b/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/RdfRepository.java @@ -433,6 +433,8 @@ List<Statement> insertStatements = new ArrayList<>(); List<Statement> entityStatements = new ArrayList<>(); + List<Statement> statementStatements = new ArrayList<>(); + List<Statement> aboutStatements = new ArrayList<>(); Set<String> valueSet = new HashSet<>(); for (final Change change : changes) { @@ -442,7 +444,26 @@ } entityIds.add(change.entityId()); insertStatements.addAll(change.getStatements()); - entityStatements.addAll(filtered(change.getStatements()).withSubject(uris.entity() + change.entityId())); + // Specialized collections: + // entityStatements - subject is entity + // statementStatements - subject is any statement + // aboutStatements - not entity, not statement, not value and not reference + change.getStatements().forEach(statement -> { + String s = statement.getSubject().stringValue(); + if (s.equals(uris.entity() + change.entityId())) { + entityStatements.add(statement); + } + if (s.startsWith(uris.statement())) { + statementStatements.add(statement); + } + if(!s.equals(uris.entity() + change.entityId()) + && !s.startsWith(uris.statement()) + && !s.startsWith(uris.value()) + && !s.startsWith(uris.reference()) + ) { + aboutStatements.add(statement); + } + }); valueSet.addAll(change.getCleanupList()); } @@ -456,14 +477,7 @@ b.bindStatements("insertStatements", insertStatements); b.bindValues("entityStatements", entityStatements); - Collection<Statement> statementStatements = filtered(insertStatements).withSubjectStarts(uris.statement()); b.bindValues("statementStatements", statementStatements); - - Collection<Statement> aboutStatements = new HashSet<>(insertStatements); - aboutStatements.removeAll(entityStatements); - aboutStatements.removeAll(statementStatements); - aboutStatements.removeAll(filtered(insertStatements).withSubjectStarts(uris.value())); - aboutStatements.removeAll(filtered(insertStatements).withSubjectStarts(uris.reference())); b.bindValues("aboutStatements", aboutStatements); if (!valueSet.isEmpty()) { -- To view, visit https://gerrit.wikimedia.org/r/396474 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I02530690e877cc1b60f11dc2fc8b97622c742d68 Gerrit-PatchSet: 1 Gerrit-Project: wikidata/query/rdf Gerrit-Branch: master Gerrit-Owner: Smalyshev <smalys...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits