You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rya.apache.org by mi...@apache.org on 2017/08/10 17:47:57 UTC
incubator-rya git commit: RYA-316 Long OBJ string. Closes #199
Repository: incubator-rya
Updated Branches:
refs/heads/master 2326e2dd8 -> bf0d4190e
RYA-316 Long OBJ string. Closes #199
Hash the indexed object field with SHA256.
This will allow the indexer not to break
if the object is longer than 1024 bytes.
Project: http://git-wip-us.apache.org/repos/asf/incubator-rya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rya/commit/bf0d4190
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rya/tree/bf0d4190
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rya/diff/bf0d4190
Branch: refs/heads/master
Commit: bf0d4190eea0a266719bf75d36e02d8273b59daf
Parents: 2326e2d
Author: isper3at <sm...@gmail.com>
Authored: Mon Aug 7 13:28:46 2017 -0400
Committer: Aaron Mihalik <aa...@gmail.com>
Committed: Thu Aug 10 13:33:32 2017 -0400
----------------------------------------------------------------------
.../dao/SimpleMongoDBStorageStrategy.java | 27 +++++++++++++-------
.../SimpleMongoDBStorageStrategyTest.java | 4 +++
2 files changed, 22 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/bf0d4190/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBStorageStrategy.java
----------------------------------------------------------------------
diff --git a/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBStorageStrategy.java b/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBStorageStrategy.java
index 8d194fc..a8f548c 100644
--- a/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBStorageStrategy.java
+++ b/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBStorageStrategy.java
@@ -26,6 +26,7 @@ import java.security.NoSuchAlgorithmException;
import java.util.Map;
import org.apache.commons.codec.binary.Hex;
+import org.apache.commons.codec.digest.DigestUtils;
import org.apache.log4j.Logger;
import org.apache.rya.api.domain.RyaStatement;
import org.apache.rya.api.domain.RyaType;
@@ -53,8 +54,11 @@ public class SimpleMongoDBStorageStrategy implements MongoDBStorageStrategy<RyaS
public static final String OBJECT_TYPE_VALUE = XMLSchema.ANYURI.stringValue();
public static final String CONTEXT = "context";
public static final String PREDICATE = "predicate";
+ public static final String PREDICATE_HASH = "predicate_hash";
public static final String OBJECT = "object";
+ public static final String OBJECT_HASH = "object_hash";
public static final String SUBJECT = "subject";
+ public static final String SUBJECT_HASH = "subject_hash";
public static final String TIMESTAMP = "insertTimestamp";
public static final String STATEMENT_METADATA = "statementMetadata";
public static final String DOCUMENT_VISIBILITY = "documentVisibility";
@@ -64,16 +68,18 @@ public class SimpleMongoDBStorageStrategy implements MongoDBStorageStrategy<RyaS
@Override
public void createIndices(final DBCollection coll){
BasicDBObject doc = new BasicDBObject();
- doc.put(SUBJECT, 1);
- doc.put(PREDICATE, 1);
+ doc.put(SUBJECT_HASH, 1);
+ doc.put(PREDICATE_HASH, 1);
+ doc.put(OBJECT_HASH, 1);
+ doc.put(OBJECT_TYPE, 1);
coll.createIndex(doc);
- doc = new BasicDBObject(PREDICATE, 1);
- doc.put(OBJECT, 1);
+ doc = new BasicDBObject(PREDICATE_HASH, 1);
+ doc.put(OBJECT_HASH, 1);
doc.put(OBJECT_TYPE, 1);
coll.createIndex(doc);
- doc = new BasicDBObject(OBJECT, 1);
+ doc = new BasicDBObject(OBJECT_HASH, 1);
doc.put(OBJECT_TYPE, 1);
- doc.put(SUBJECT, 1);
+ doc.put(SUBJECT_HASH, 1);
coll.createIndex(doc);
}
@@ -85,14 +91,14 @@ public class SimpleMongoDBStorageStrategy implements MongoDBStorageStrategy<RyaS
final RyaURI context = stmt.getContext();
final BasicDBObject query = new BasicDBObject();
if (subject != null){
- query.append(SUBJECT, subject.getData());
+ query.append(SUBJECT_HASH, DigestUtils.sha256Hex(subject.getData()));
}
if (object != null){
- query.append(OBJECT, object.getData());
+ query.append(OBJECT_HASH, DigestUtils.sha256Hex(object.getData()));
query.append(OBJECT_TYPE, object.getDataType().toString());
}
if (predicate != null){
- query.append(PREDICATE, predicate.getData());
+ query.append(PREDICATE_HASH, DigestUtils.sha256Hex(predicate.getData()));
}
if (context != null){
query.append(CONTEXT, context.getData());
@@ -173,8 +179,11 @@ public class SimpleMongoDBStorageStrategy implements MongoDBStorageStrategy<RyaS
final BasicDBObject dvObject = DocumentVisibilityAdapter.toDBObject(statement.getColumnVisibility());
final BasicDBObject doc = new BasicDBObject(ID, new String(Hex.encodeHex(bytes)))
.append(SUBJECT, statement.getSubject().getData())
+ .append(SUBJECT_HASH, DigestUtils.sha256Hex(statement.getSubject().getData()))
.append(PREDICATE, statement.getPredicate().getData())
+ .append(PREDICATE_HASH, DigestUtils.sha256Hex(statement.getPredicate().getData()))
.append(OBJECT, statement.getObject().getData())
+ .append(OBJECT_HASH, DigestUtils.sha256Hex(statement.getObject().getData()))
.append(OBJECT_TYPE, statement.getObject().getDataType().toString())
.append(CONTEXT, context)
.append(STATEMENT_METADATA, statement.getMetadata().toString())
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/bf0d4190/dao/mongodb.rya/src/test/java/org/apache/rya/mongodb/SimpleMongoDBStorageStrategyTest.java
----------------------------------------------------------------------
diff --git a/dao/mongodb.rya/src/test/java/org/apache/rya/mongodb/SimpleMongoDBStorageStrategyTest.java b/dao/mongodb.rya/src/test/java/org/apache/rya/mongodb/SimpleMongoDBStorageStrategyTest.java
index 2af6da9..15bd636 100644
--- a/dao/mongodb.rya/src/test/java/org/apache/rya/mongodb/SimpleMongoDBStorageStrategyTest.java
+++ b/dao/mongodb.rya/src/test/java/org/apache/rya/mongodb/SimpleMongoDBStorageStrategyTest.java
@@ -23,6 +23,7 @@ import static org.openrdf.model.vocabulary.XMLSchema.ANYURI;
import java.io.IOException;
+import org.apache.commons.codec.digest.DigestUtils;
import org.apache.rya.api.domain.RyaStatement;
import org.apache.rya.api.domain.RyaStatement.RyaStatementBuilder;
import org.apache.rya.api.domain.RyaURI;
@@ -62,8 +63,11 @@ public class SimpleMongoDBStorageStrategyTest {
testDBO = new BasicDBObject();
testDBO.put(SimpleMongoDBStorageStrategy.ID, "d5f8fea0e85300478da2c9b4e132c69502e21221");
testDBO.put(SimpleMongoDBStorageStrategy.SUBJECT, SUBJECT);
+ testDBO.put(SimpleMongoDBStorageStrategy.SUBJECT_HASH, DigestUtils.sha256Hex(SUBJECT));
testDBO.put(SimpleMongoDBStorageStrategy.PREDICATE, PREDICATE);
+ testDBO.put(SimpleMongoDBStorageStrategy.PREDICATE_HASH, DigestUtils.sha256Hex(PREDICATE));
testDBO.put(SimpleMongoDBStorageStrategy.OBJECT, OBJECT);
+ testDBO.put(SimpleMongoDBStorageStrategy.OBJECT_HASH, DigestUtils.sha256Hex(OBJECT));
testDBO.put(SimpleMongoDBStorageStrategy.OBJECT_TYPE, ANYURI.stringValue());
testDBO.put(SimpleMongoDBStorageStrategy.CONTEXT, CONTEXT);
testDBO.put(SimpleMongoDBStorageStrategy.STATEMENT_METADATA, STATEMENT_METADATA);