From ad6735fe3ae23e215a4e2a34d9a1648d56cd40f6 Mon Sep 17 00:00:00 2001 From: lvca <l.garulli@gmail.com> Date: Thu, 10 Jul 2014 02:16:53 +0200 Subject: [PATCH] [orientdb] Upgraded OrientDB from 1.0.1 -> 1.7.5-SNAPSHOT --- orientdb/pom.xml | 2 +- .../com/yahoo/ycsb/db/OrientDBClient.java | 40 ++++++++++--------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/orientdb/pom.xml b/orientdb/pom.xml index 563004ba..3c376dc6 100644 --- a/orientdb/pom.xml +++ b/orientdb/pom.xml @@ -28,7 +28,7 @@ <dependency> <groupId>com.orientechnologies</groupId> <artifactId>orientdb-core</artifactId> - <version>1.0.1</version> + <version>1.7.5-SNAPSHOT</version> </dependency> </dependencies> </project> diff --git a/orientdb/src/main/java/com/yahoo/ycsb/db/OrientDBClient.java b/orientdb/src/main/java/com/yahoo/ycsb/db/OrientDBClient.java index 490851a7..badfc146 100644 --- a/orientdb/src/main/java/com/yahoo/ycsb/db/OrientDBClient.java +++ b/orientdb/src/main/java/com/yahoo/ycsb/db/OrientDBClient.java @@ -7,16 +7,11 @@ package com.yahoo.ycsb.db; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map.Entry; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; - import com.orientechnologies.orient.core.config.OGlobalConfiguration; import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx; +import com.orientechnologies.orient.core.db.record.OIdentifiable; import com.orientechnologies.orient.core.dictionary.ODictionary; +import com.orientechnologies.orient.core.index.OIndexCursor; import com.orientechnologies.orient.core.intent.OIntentMassiveInsert; import com.orientechnologies.orient.core.record.ORecordInternal; import com.orientechnologies.orient.core.record.impl.ODocument; @@ -25,23 +20,29 @@ import com.yahoo.ycsb.DB; import com.yahoo.ycsb.DBException; import com.yahoo.ycsb.StringByteIterator; +import java.util.HashMap; +import java.util.Map.Entry; +import java.util.Properties; +import java.util.Set; +import java.util.Vector; + /** * OrientDB client for YCSB framework. - * + * * Properties to set: - * + * * orientdb.url=local:C:/temp/databases or remote:localhost:2424 <br> * orientdb.database=ycsb <br> * orientdb.user=admin <br> * orientdb.password=admin <br> - * + * * @author Luca Garulli - * + * */ public class OrientDBClient extends DB { - private ODatabaseDocumentTx db; private static final String CLASS = "usertable"; + private ODatabaseDocumentTx db; private ODictionary<ORecordInternal<?>> dictionary; /** @@ -51,7 +52,7 @@ public class OrientDBClient extends DB { // initialize OrientDB driver Properties props = getProperties(); - String url = props.getProperty("orientdb.url", "local:C:/temp/databases/ycsb"); + String url = props.getProperty("orientdb.url", "plocal:C:/temp/databases/ycsb"); String user = props.getProperty("orientdb.user", "admin"); String password = props.getProperty("orientdb.password", "admin"); Boolean newdb = Boolean.parseBoolean(props.getProperty("orientdb.newdb", "false")); @@ -206,13 +207,16 @@ public class OrientDBClient extends DB { */ public int scan(String table, String startkey, int recordcount, Set<String> fields, Vector<HashMap<String, ByteIterator>> result) { try { - final Collection<ODocument> documents = dictionary.getIndex().getEntriesMajor(startkey, true, recordcount); - for (ODocument document : documents) { - final HashMap<String, ByteIterator> entry = new HashMap<String, ByteIterator>(fields.size()); - result.add(entry); + final OIndexCursor entries = dictionary.getIndex().iterateEntriesMajor(startkey, true, true); + while (entries.hasNext()) { + final Entry<Object, OIdentifiable> entry = entries.nextEntry(); + final ODocument document = entry.getValue().getRecord(); + + final HashMap<String, ByteIterator> map = new HashMap<String, ByteIterator>(); + result.add(map); for (String field : fields) - entry.put(field, new StringByteIterator((String) document.field(field))); + map.put(field, new StringByteIterator((String) document.field(field))); } return 0; -- GitLab