Github user kchilton2 commented on a diff in the pull request:
https://github.com/apache/incubator-rya/pull/251#discussion_r153271360
--- Diff:
extras/rya.pcj.fluo/pcj.fluo.app/src/main/java/org/apache/rya/indexing/pcj/fluo/app/observers/TripleObserver.java
---
@@ -70,53 +68,50 @@ public void process(final TransactionBase tx, final
Bytes brow, final Column col
// Get string representation of triple.
final RyaStatement ryaStatement =
IncUpdateDAO.deserializeTriple(brow);
log.trace("Transaction ID: {}\nRya Statement: {}\n",
tx.getStartTimestamp(), ryaStatement);
+ log.trace("Beginging to process triple.");
final String triple = IncUpdateDAO.getTripleString(ryaStatement);
- // Iterate over each of the Statement Patterns that are being
matched against.
- final RowScanner spScanner = tx.scanner()
- .over(Span.prefix(SP_PREFIX))
-
- // Only fetch rows that have the pattern in them. There
will only be a single row with a pattern per SP.
- .fetch(FluoQueryColumns.STATEMENT_PATTERN_PATTERN)
- .byRow()
- .build();
+ Set<String> spIDs = SP_ID_CACHE.getStatementPatternIds(tx);
//see if triple matches conditions of any of the SP
- for (final ColumnScanner colScanner : spScanner) {
- // Get the Statement Pattern's node id.
- final String spID = colScanner.getsRow();
-
+ for (String spID: spIDs) {
// Fetch its metadata.
final StatementPatternMetadata spMetadata =
QUERY_METADATA_DAO.readStatementPatternMetadata(tx, spID);
+ log.trace("Retrieved metadata: {}", spMetadata);
+
// Attempt to match the triple against the pattern.
final String pattern = spMetadata.getStatementPattern();
final VariableOrder varOrder = spMetadata.getVariableOrder();
final String bindingSetString = getBindingSet(triple, pattern,
varOrder);
+ log.trace("Created binding set match string: {}",
bindingSetString);
+
// Statement matches to a binding set.
if(bindingSetString.length() != 0) {
// Fetch the triple's visibility label.
final String visibility = tx.gets(brow.toString(),
FluoQueryColumns.TRIPLES, "");
// Create the Row ID for the emitted binding set. It does
not contain visibilities.
- final String row = spID + NODEID_BS_DELIM +
bindingSetString;
- final Bytes rowBytes = Bytes.of(
row.getBytes(Charsets.UTF_8) );
+// final String row = spID + NODEID_BS_DELIM +
bindingSetString;
--- End diff --
Remove commented out code.
---