From 28a090a729d203b98897b41738f820800dbd1daa Mon Sep 17 00:00:00 2001
From: Connor McCoy <connormccoy@google.com>
Date: Thu, 15 Oct 2015 15:25:10 -0700
Subject: [PATCH] Add single definition of status codes

---
 .../com/yahoo/ycsb/db/AccumuloClient.java     | 64 +++++++++----------
 .../com/yahoo/ycsb/db/AerospikeClient.java    | 35 +++++-----
 .../com/yahoo/ycsb/db/CassandraCQLClient.java | 19 +++---
 .../com/yahoo/ycsb/db/CassandraCQLClient.java | 23 +++----
 .../main/java/com/yahoo/ycsb/StatusCode.java  | 39 +++++++++++
 .../java/com/yahoo/ycsb/db/HBaseClient.java   | 61 ++++++++++--------
 .../java/com/yahoo/ycsb/db/HBaseClient10.java | 36 +++++------
 .../yahoo/ycsb/db/JdbcDBClientConstants.java  |  4 +-
 .../com/yahoo/ycsb/db/AsyncMongoDbClient.java | 49 +++++++-------
 .../java/com/yahoo/ycsb/db/MongoDbClient.java | 56 ++++++++--------
 10 files changed, 209 insertions(+), 177 deletions(-)
 create mode 100644 core/src/main/java/com/yahoo/ycsb/StatusCode.java

diff --git a/accumulo/src/main/java/com/yahoo/ycsb/db/AccumuloClient.java b/accumulo/src/main/java/com/yahoo/ycsb/db/AccumuloClient.java
index e4e79f92..d2f75701 100644
--- a/accumulo/src/main/java/com/yahoo/ycsb/db/AccumuloClient.java
+++ b/accumulo/src/main/java/com/yahoo/ycsb/db/AccumuloClient.java
@@ -18,16 +18,11 @@
 
 package com.yahoo.ycsb.db;
 
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Random;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.Vector;
-import java.util.concurrent.TimeUnit;
+import com.yahoo.ycsb.ByteArrayByteIterator;
+import com.yahoo.ycsb.ByteIterator;
+import com.yahoo.ycsb.DB;
+import com.yahoo.ycsb.DBException;
+import com.yahoo.ycsb.StatusCode;
 
 import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
@@ -49,20 +44,21 @@ import org.apache.accumulo.core.util.CleanUp;
 import org.apache.hadoop.io.Text;
 import org.apache.zookeeper.KeeperException;
 
-import com.yahoo.ycsb.ByteArrayByteIterator;
-import com.yahoo.ycsb.ByteIterator;
-import com.yahoo.ycsb.DB;
-import com.yahoo.ycsb.DBException;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Random;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.Vector;
+import java.util.concurrent.TimeUnit;
 
 /**
  * <a href="https://accumulo.apache.org/">Accumulo</a> binding for YCSB.
  */
 public class AccumuloClient extends DB {
-  // Error code constants.
-  public static final int OK = 0;
-  public static final int SERVER_ERROR = -1;
-  public static final int HTTP_ERROR = -2;
-  public static final int NO_MATCHING_RECORD = -3;
 
   private ZooKeeperInstance inst;
   private Connector connector;
@@ -210,7 +206,7 @@ public class AccumuloClient extends DB {
       checkTable(t);
     } catch (TableNotFoundException e) {
       System.err.println("Error trying to connect to Accumulo table." + e);
-      return SERVER_ERROR;
+      return StatusCode.ERROR;
     }
 
     try {
@@ -223,9 +219,9 @@ public class AccumuloClient extends DB {
       }
     } catch (Exception e) {
       System.err.println("Error trying to reading Accumulo table" + key + e);
-      return SERVER_ERROR;
+      return StatusCode.ERROR;
     }
-    return OK;
+    return StatusCode.OK;
 
   }
 
@@ -236,7 +232,7 @@ public class AccumuloClient extends DB {
       checkTable(t);
     } catch (TableNotFoundException e) {
       System.err.println("Error trying to connect to Accumulo table." + e);
-      return SERVER_ERROR;
+      return StatusCode.ERROR;
     }
 
     // There doesn't appear to be a way to create a range for a given
@@ -287,7 +283,7 @@ public class AccumuloClient extends DB {
           new ByteArrayByteIterator(buf));
     }
 
-    return OK;
+    return StatusCode.OK;
   }
 
   @Override
@@ -297,7 +293,7 @@ public class AccumuloClient extends DB {
       checkTable(t);
     } catch (TableNotFoundException e) {
       System.err.println("Error trying to connect to Accumulo table." + e);
-      return SERVER_ERROR;
+      return StatusCode.ERROR;
     }
 
     Mutation mutInsert = new Mutation(new Text(key));
@@ -319,14 +315,14 @@ public class AccumuloClient extends DB {
     } catch (MutationsRejectedException e) {
       System.err.println("Error performing update.");
       e.printStackTrace();
-      return SERVER_ERROR;
+      return StatusCode.ERROR;
     } catch (KeeperException e) {
       System.err.println("Error notifying the Zookeeper Queue.");
       e.printStackTrace();
-      return SERVER_ERROR;
+      return StatusCode.ERROR;
     }
 
-    return OK;
+    return StatusCode.OK;
   }
 
   @Override
@@ -341,7 +337,7 @@ public class AccumuloClient extends DB {
       checkTable(t);
     } catch (TableNotFoundException e) {
       System.err.println("Error trying to connect to Accumulo table." + e);
-      return SERVER_ERROR;
+      return StatusCode.ERROR;
     }
 
     try {
@@ -349,14 +345,14 @@ public class AccumuloClient extends DB {
     } catch (MutationsRejectedException e) {
       System.err.println("Error performing delete.");
       e.printStackTrace();
-      return SERVER_ERROR;
+      return StatusCode.ERROR;
     } catch (RuntimeException e) {
       System.err.println("Error performing delete.");
       e.printStackTrace();
-      return SERVER_ERROR;
+      return StatusCode.ERROR;
     }
 
-    return OK;
+    return StatusCode.OK;
   }
 
   // These functions are adapted from RowOperations.java:
@@ -449,8 +445,8 @@ public class AccumuloClient extends DB {
     for (int i = 0; i < keys.length; i++) {
       splits.add(new Text(keys[i]));
     }
-    connector.tableOperations().addSplits(t, splits);
-    return OK;
+    connector.tableOperations().addSplits(t, splits);   
+    return StatusCode.OK;
   }
 
 }
diff --git a/aerospike/src/main/java/com/yahoo/ycsb/db/AerospikeClient.java b/aerospike/src/main/java/com/yahoo/ycsb/db/AerospikeClient.java
index 858c69b4..279691a2 100644
--- a/aerospike/src/main/java/com/yahoo/ycsb/db/AerospikeClient.java
+++ b/aerospike/src/main/java/com/yahoo/ycsb/db/AerospikeClient.java
@@ -17,12 +17,6 @@
 
 package com.yahoo.ycsb.db;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.Vector;
-
 import com.aerospike.client.AerospikeException;
 import com.aerospike.client.Bin;
 import com.aerospike.client.Key;
@@ -31,10 +25,16 @@ import com.aerospike.client.policy.ClientPolicy;
 import com.aerospike.client.policy.Policy;
 import com.aerospike.client.policy.RecordExistsAction;
 import com.aerospike.client.policy.WritePolicy;
-
 import com.yahoo.ycsb.ByteArrayByteIterator;
 import com.yahoo.ycsb.ByteIterator;
 import com.yahoo.ycsb.DBException;
+import com.yahoo.ycsb.StatusCode;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.Vector;
 
 /**
  * YCSB binding for <a href="http://www.aerospike.com/">Areospike</a>.
@@ -45,9 +45,6 @@ public class AerospikeClient extends com.yahoo.ycsb.DB {
   private static final String DEFAULT_TIMEOUT = "10000";
   private static final String DEFAULT_NAMESPACE = "ycsb";
 
-  private static final int RESULT_OK = 0;
-  private static final int RESULT_ERROR = -1;
-
   private String namespace = null;
 
   private com.aerospike.client.AerospikeClient client = null;
@@ -114,7 +111,7 @@ public class AerospikeClient extends com.yahoo.ycsb.DB {
 
       if (record == null) {
         System.err.println("Record key " + key + " not found (read)");
-        return RESULT_ERROR;
+        return StatusCode.ERROR;
       }
 
       for (Map.Entry<String, Object> entry: record.bins.entrySet()) {
@@ -122,10 +119,10 @@ public class AerospikeClient extends com.yahoo.ycsb.DB {
             new ByteArrayByteIterator((byte[])entry.getValue()));
       }
 
-      return RESULT_OK;
+      return StatusCode.OK;
     } catch (AerospikeException e) {
       System.err.println("Error while reading key " + key + ": " + e);
-      return RESULT_ERROR;
+      return StatusCode.ERROR;
     }
   }
 
@@ -133,7 +130,7 @@ public class AerospikeClient extends com.yahoo.ycsb.DB {
   public int scan(String table, String start, int count, Set<String> fields,
       Vector<HashMap<String, ByteIterator>> result) {
     System.err.println("Scan not implemented");
-    return RESULT_ERROR;
+    return StatusCode.ERROR;
   }
 
   private int write(String table, String key, WritePolicy writePolicy,
@@ -150,10 +147,10 @@ public class AerospikeClient extends com.yahoo.ycsb.DB {
 
     try {
       client.put(writePolicy, keyObj, bins);
-      return RESULT_OK;
+      return StatusCode.OK;
     } catch (AerospikeException e) {
       System.err.println("Error while writing key " + key + ": " + e);
-      return RESULT_ERROR;
+      return StatusCode.ERROR;
     }
   }
 
@@ -174,13 +171,13 @@ public class AerospikeClient extends com.yahoo.ycsb.DB {
     try {
       if (!client.delete(deletePolicy, new Key(namespace, table, key))) {
         System.err.println("Record key " + key + " not found (delete)");
-        return RESULT_ERROR;
+        return StatusCode.ERROR;
       }
 
-      return RESULT_OK;
+      return StatusCode.OK;
     } catch (AerospikeException e) {
       System.err.println("Error while deleting key " + key + ": " + e);
-      return RESULT_ERROR;
+      return StatusCode.ERROR;
     }
   }
 }
diff --git a/cassandra/src/main/java/com/yahoo/ycsb/db/CassandraCQLClient.java b/cassandra/src/main/java/com/yahoo/ycsb/db/CassandraCQLClient.java
index 33fdcea0..a636a4c1 100755
--- a/cassandra/src/main/java/com/yahoo/ycsb/db/CassandraCQLClient.java
+++ b/cassandra/src/main/java/com/yahoo/ycsb/db/CassandraCQLClient.java
@@ -46,9 +46,6 @@ public class CassandraCQLClient extends DB {
   private static ConsistencyLevel readConsistencyLevel = ConsistencyLevel.ONE;
   private static ConsistencyLevel writeConsistencyLevel = ConsistencyLevel.ONE;
 
-  public static final int OK = 0;
-  public static final int ERR = -1;
-
   public static final String YCSB_KEY = "y_id";
   public static final String KEYSPACE_PROPERTY = "cassandra.keyspace";
   public static final String KEYSPACE_PROPERTY_DEFAULT = "ycsb";
@@ -232,12 +229,12 @@ public class CassandraCQLClient extends DB {
 
       }
 
-      return OK;
+      return StatusCode.OK;
 
     } catch (Exception e) {
       e.printStackTrace();
       System.out.println("Error reading key: " + key);
-      return ERR;
+      return StatusCode.ERROR;
     }
 
   }
@@ -323,12 +320,12 @@ public class CassandraCQLClient extends DB {
         result.add(tuple);
       }
 
-      return OK;
+      return StatusCode.OK;
 
     } catch (Exception e) {
       e.printStackTrace();
       System.out.println("Error scanning with startkey: " + startkey);
-      return ERR;
+      return StatusCode.ERROR;
     }
 
   }
@@ -393,12 +390,12 @@ public class CassandraCQLClient extends DB {
 
       ResultSet rs = session.execute(insertStmt);
 
-      return OK;
+      return StatusCode.OK;
     } catch (Exception e) {
       e.printStackTrace();
     }
 
-    return ERR;
+    return StatusCode.ERROR;
   }
 
   /**
@@ -426,13 +423,13 @@ public class CassandraCQLClient extends DB {
 
       ResultSet rs = session.execute(stmt);
 
-      return OK;
+      return StatusCode.OK;
     } catch (Exception e) {
       e.printStackTrace();
       System.out.println("Error deleting key: " + key);
     }
 
-    return ERR;
+    return StatusCode.ERROR;
   }
 
 }
diff --git a/cassandra2/src/main/java/com/yahoo/ycsb/db/CassandraCQLClient.java b/cassandra2/src/main/java/com/yahoo/ycsb/db/CassandraCQLClient.java
index eca2a677..92594d01 100644
--- a/cassandra2/src/main/java/com/yahoo/ycsb/db/CassandraCQLClient.java
+++ b/cassandra2/src/main/java/com/yahoo/ycsb/db/CassandraCQLClient.java
@@ -35,6 +35,7 @@ import com.yahoo.ycsb.ByteArrayByteIterator;
 import com.yahoo.ycsb.ByteIterator;
 import com.yahoo.ycsb.DB;
 import com.yahoo.ycsb.DBException;
+import com.yahoo.ycsb.StatusCode;
 
 import java.nio.ByteBuffer;
 import java.util.HashMap;
@@ -58,10 +59,6 @@ public class CassandraCQLClient extends DB {
   private static ConsistencyLevel readConsistencyLevel = ConsistencyLevel.ONE;
   private static ConsistencyLevel writeConsistencyLevel = ConsistencyLevel.ONE;
 
-  public static final int OK = 0;
-  public static final int ERR = -1;
-  public static final int NOT_FOUND = -3;
-
   public static final String YCSB_KEY = "y_id";
   public static final String KEYSPACE_PROPERTY = "cassandra.keyspace";
   public static final String KEYSPACE_PROPERTY_DEFAULT = "ycsb";
@@ -240,7 +237,7 @@ public class CassandraCQLClient extends DB {
       ResultSet rs = session.execute(stmt);
 
       if (rs.isExhausted()) {
-        return NOT_FOUND;
+        return StatusCode.NOT_FOUND;
       }
 
       // Should be only 1 row
@@ -256,12 +253,12 @@ public class CassandraCQLClient extends DB {
         }
       }
 
-      return OK;
+      return StatusCode.OK;
 
     } catch (Exception e) {
       e.printStackTrace();
       System.out.println("Error reading key: " + key);
-      return ERR;
+      return StatusCode.ERROR;
     }
 
   }
@@ -347,12 +344,12 @@ public class CassandraCQLClient extends DB {
         result.add(tuple);
       }
 
-      return OK;
+      return StatusCode.OK;
 
     } catch (Exception e) {
       e.printStackTrace();
       System.out.println("Error scanning with startkey: " + startkey);
-      return ERR;
+      return StatusCode.ERROR;
     }
 
   }
@@ -417,12 +414,12 @@ public class CassandraCQLClient extends DB {
 
       ResultSet rs = session.execute(insertStmt);
 
-      return OK;
+      return StatusCode.OK;
     } catch (Exception e) {
       e.printStackTrace();
     }
 
-    return ERR;
+    return StatusCode.ERROR;
   }
 
   /**
@@ -450,13 +447,13 @@ public class CassandraCQLClient extends DB {
 
       ResultSet rs = session.execute(stmt);
 
-      return OK;
+      return StatusCode.OK;
     } catch (Exception e) {
       e.printStackTrace();
       System.out.println("Error deleting key: " + key);
     }
 
-    return ERR;
+    return StatusCode.ERROR;
   }
 
 }
diff --git a/core/src/main/java/com/yahoo/ycsb/StatusCode.java b/core/src/main/java/com/yahoo/ycsb/StatusCode.java
new file mode 100644
index 00000000..3cf8cae9
--- /dev/null
+++ b/core/src/main/java/com/yahoo/ycsb/StatusCode.java
@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) 2010 Yahoo! Inc. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you
+ * may not use this file except in compliance with the License. You
+ * may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * permissions and limitations under the License. See accompanying
+ * LICENSE file.
+ */
+package com.yahoo.ycsb;
+
+/**
+ * Status codes returned by databases.
+ */
+public class StatusCode {
+
+  /**
+   * The operation completed without error.
+   */
+  public final static int OK = 0;
+
+  /**
+   * The operation failed, with a generic error.
+   */
+  public static final int ERROR = -1;
+
+  /**
+   * The operation failed: the requested record was not found.
+   */
+  public static final int NOT_FOUND = -3;
+}
+
diff --git a/hbase098/src/main/java/com/yahoo/ycsb/db/HBaseClient.java b/hbase098/src/main/java/com/yahoo/ycsb/db/HBaseClient.java
index 35735ad4..a4536dd1 100644
--- a/hbase098/src/main/java/com/yahoo/ycsb/db/HBaseClient.java
+++ b/hbase098/src/main/java/com/yahoo/ycsb/db/HBaseClient.java
@@ -17,27 +17,35 @@
 
 package com.yahoo.ycsb.db;
 
-import com.yahoo.ycsb.DBException;
-import com.yahoo.ycsb.ByteIterator;
 import com.yahoo.ycsb.ByteArrayByteIterator;
+import com.yahoo.ycsb.ByteIterator;
+import com.yahoo.ycsb.DBException;
+import com.yahoo.ycsb.StatusCode;
 import com.yahoo.ycsb.measurements.Measurements;
 
-import java.io.IOException;
-import java.util.*;
-
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
+import org.apache.hadoop.hbase.client.HTable;
 import org.apache.hadoop.hbase.client.Put;
-import org.apache.hadoop.hbase.client.Delete;
-import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
+import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.filter.PageFilter;
 import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.hadoop.hbase.HBaseConfiguration;
+
+import java.io.IOException;
+import java.util.ConcurrentModificationException;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Random;
+import java.util.Set;
+import java.util.Vector;
 
 /**
  * HBase client for YCSB framework
@@ -59,10 +67,7 @@ public class HBaseClient extends com.yahoo.ycsb.DB
     /** Whether or not a page filter should be used to limit scan length. */
     public boolean _usePageFilter = true;
 
-    public static final int Ok=0;
-    public static final int ServerError=-1;
     public static final int HttpError=-2;
-    public static final int NoMatchingRecord=-3;
 
     public static final Object tableLock = new Object();
 
@@ -168,7 +173,7 @@ public class HBaseClient extends com.yahoo.ycsb.DB
             catch (IOException e)
             {
                 System.err.println("Error accessing HBase table: "+e);
-                return ServerError;
+                return StatusCode.ERROR;
             }
         }
 
@@ -192,12 +197,12 @@ public class HBaseClient extends com.yahoo.ycsb.DB
         catch (IOException e)
         {
             System.err.println("Error doing get: "+e);
-            return ServerError;
+            return StatusCode.ERROR;
         }
         catch (ConcurrentModificationException e)
         {
             //do nothing for now...need to understand HBase concurrency model better
-            return ServerError;
+            return StatusCode.ERROR;
         }
 
   for (KeyValue kv : r.raw()) {
@@ -210,7 +215,7 @@ public class HBaseClient extends com.yahoo.ycsb.DB
     }
 
   }
-    return Ok;
+    return StatusCode.OK;
     }
 
     /**
@@ -236,7 +241,7 @@ public class HBaseClient extends com.yahoo.ycsb.DB
             catch (IOException e)
             {
                 System.err.println("Error accessing HBase table: "+e);
-                return ServerError;
+                return StatusCode.ERROR;
             }
         }
 
@@ -301,14 +306,14 @@ public class HBaseClient extends com.yahoo.ycsb.DB
             {
                 System.out.println("Error in getting/parsing scan result: "+e);
             }
-            return ServerError;
+            return StatusCode.ERROR;
         }
 
         finally {
             scanner.close();
         }
 
-        return Ok;
+        return StatusCode.OK;
     }
 
     /**
@@ -333,7 +338,7 @@ public class HBaseClient extends com.yahoo.ycsb.DB
             catch (IOException e)
             {
                 System.err.println("Error accessing HBase table: "+e);
-                return ServerError;
+                return StatusCode.ERROR;
             }
         }
 
@@ -361,15 +366,15 @@ public class HBaseClient extends com.yahoo.ycsb.DB
             if (_debug) {
                 System.err.println("Error doing put: "+e);
             }
-            return ServerError;
+            return StatusCode.ERROR;
         }
         catch (ConcurrentModificationException e)
         {
             //do nothing for now...hope this is rare
-            return ServerError;
+            return StatusCode.ERROR;
         }
 
-        return Ok;
+        return StatusCode.OK;
     }
 
     /**
@@ -406,7 +411,7 @@ public class HBaseClient extends com.yahoo.ycsb.DB
             catch (IOException e)
             {
                 System.err.println("Error accessing HBase table: "+e);
-                return ServerError;
+                return StatusCode.ERROR;
             }
         }
 
@@ -424,10 +429,10 @@ public class HBaseClient extends com.yahoo.ycsb.DB
             if (_debug) {
                 System.err.println("Error doing delete: "+e);
             }
-            return ServerError;
+            return StatusCode.ERROR;
         }
 
-        return Ok;
+        return StatusCode.OK;
     }
 
     public static void main(String[] args)
@@ -502,7 +507,7 @@ public class HBaseClient extends com.yahoo.ycsb.DB
 
                             accum+=(en-st);
 
-                            if (rescode!=Ok)
+                            if (rescode!=StatusCode.OK)
                             {
                                 System.out.println("Error "+rescode+" for "+key);
                             }
diff --git a/hbase10/src/main/java/com/yahoo/ycsb/db/HBaseClient10.java b/hbase10/src/main/java/com/yahoo/ycsb/db/HBaseClient10.java
index 378b30f9..14ef7f72 100644
--- a/hbase10/src/main/java/com/yahoo/ycsb/db/HBaseClient10.java
+++ b/hbase10/src/main/java/com/yahoo/ycsb/db/HBaseClient10.java
@@ -22,6 +22,7 @@ import com.google.common.base.Preconditions;
 import com.yahoo.ycsb.ByteArrayByteIterator;
 import com.yahoo.ycsb.ByteIterator;
 import com.yahoo.ycsb.DBException;
+import com.yahoo.ycsb.StatusCode;
 import com.yahoo.ycsb.measurements.Measurements;
 
 import org.apache.hadoop.conf.Configuration;
@@ -93,10 +94,7 @@ public class HBaseClient10 extends com.yahoo.ycsb.DB
     public boolean _clientSideBuffering = false;
     public long _writeBufferSize = 1024 * 1024 * 12;
 
-    public static final int Ok=0;
-    public static final int ServerError=-1;
-    public static final int HttpError=-2;
-    public static final int NoMatchingRecord=-3;
+    public static final int HTTP_ERROR = -2;
 
     /**
      * Initialize any state for this DB.
@@ -217,7 +215,7 @@ public class HBaseClient10 extends com.yahoo.ycsb.DB
             catch (IOException e)
             {
                 System.err.println("Error accessing HBase table: " + e);
-                return ServerError;
+                return StatusCode.ERROR;
             }
         }
 
@@ -243,16 +241,16 @@ public class HBaseClient10 extends com.yahoo.ycsb.DB
             if (_debug) {
                 System.err.println("Error doing get: "+e);
             }
-            return ServerError;
+            return StatusCode.ERROR;
         }
         catch (ConcurrentModificationException e)
         {
             //do nothing for now...need to understand HBase concurrency model better
-            return ServerError;
+            return StatusCode.ERROR;
         }
 
         if (r.isEmpty()) {
-            return NoMatchingRecord;
+            return StatusCode.NOT_FOUND;
         }
 
         while (r.advance()) {
@@ -264,7 +262,7 @@ public class HBaseClient10 extends com.yahoo.ycsb.DB
                         " is: "+Bytes.toString(CellUtil.cloneValue(c)));
             }
         }
-        return Ok;
+        return StatusCode.OK;
     }
 
     /**
@@ -291,7 +289,7 @@ public class HBaseClient10 extends com.yahoo.ycsb.DB
             catch (IOException e)
             {
                 System.err.println("Error accessing HBase table: "+e);
-                return ServerError;
+                return StatusCode.ERROR;
             }
         }
 
@@ -359,7 +357,7 @@ public class HBaseClient10 extends com.yahoo.ycsb.DB
             {
                 System.out.println("Error in getting/parsing scan result: "+e);
             }
-            return ServerError;
+            return StatusCode.ERROR;
         }
 
         finally {
@@ -369,7 +367,7 @@ public class HBaseClient10 extends com.yahoo.ycsb.DB
             }
         }
 
-        return Ok;
+        return StatusCode.OK;
     }
 
     /**
@@ -395,7 +393,7 @@ public class HBaseClient10 extends com.yahoo.ycsb.DB
             catch (IOException e)
             {
                 System.err.println("Error accessing HBase table: "+e);
-                return ServerError;
+                return StatusCode.ERROR;
             }
         }
 
@@ -429,15 +427,15 @@ public class HBaseClient10 extends com.yahoo.ycsb.DB
             if (_debug) {
                 System.err.println("Error doing put: "+e);
             }
-            return ServerError;
+            return StatusCode.ERROR;
         }
         catch (ConcurrentModificationException e)
         {
             //do nothing for now...hope this is rare
-            return ServerError;
+            return StatusCode.ERROR;
         }
 
-        return Ok;
+        return StatusCode.OK;
     }
 
     /**
@@ -476,7 +474,7 @@ public class HBaseClient10 extends com.yahoo.ycsb.DB
             catch (IOException e)
             {
                 System.err.println("Error accessing HBase table: "+e);
-                return ServerError;
+                return StatusCode.ERROR;
             }
         }
 
@@ -500,10 +498,10 @@ public class HBaseClient10 extends com.yahoo.ycsb.DB
             if (_debug) {
                 System.err.println("Error doing delete: "+e);
             }
-            return ServerError;
+            return StatusCode.ERROR;
         }
 
-        return Ok;
+        return StatusCode.OK;
     }
 
     @VisibleForTesting
diff --git a/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBClientConstants.java b/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBClientConstants.java
index 120cb645..91cd829f 100644
--- a/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBClientConstants.java
+++ b/jdbc/src/main/java/com/yahoo/ycsb/db/JdbcDBClientConstants.java
@@ -16,6 +16,8 @@
  */
 package com.yahoo.ycsb.db;
 
+import com.yahoo.ycsb.StatusCode;
+
 /**
  * Constants used by the JDBC client.
  * 
@@ -52,7 +54,7 @@ public interface JdbcDBClientConstants {
   public static final String NULL_VALUE = "NULL";
   
   /** The code to return when the call succeeds. */
-  public static final int SUCCESS = 0;
+  public static final int SUCCESS = StatusCode.OK;
   
   /** The primary key in the user table.*/
   public static String PRIMARY_KEY = "YCSB_KEY";
diff --git a/mongodb/src/main/java/com/yahoo/ycsb/db/AsyncMongoDbClient.java b/mongodb/src/main/java/com/yahoo/ycsb/db/AsyncMongoDbClient.java
index fb2721b9..6720e74e 100644
--- a/mongodb/src/main/java/com/yahoo/ycsb/db/AsyncMongoDbClient.java
+++ b/mongodb/src/main/java/com/yahoo/ycsb/db/AsyncMongoDbClient.java
@@ -18,14 +18,6 @@ package com.yahoo.ycsb.db;
 
 import static com.allanbank.mongodb.builder.QueryBuilder.where;
 
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.Vector;
-import java.util.concurrent.atomic.AtomicInteger;
-
 import com.allanbank.mongodb.Durability;
 import com.allanbank.mongodb.LockType;
 import com.allanbank.mongodb.MongoClient;
@@ -49,6 +41,15 @@ import com.allanbank.mongodb.builder.Sort;
 import com.yahoo.ycsb.ByteIterator;
 import com.yahoo.ycsb.DB;
 import com.yahoo.ycsb.DBException;
+import com.yahoo.ycsb.StatusCode;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.Vector;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * MongoDB asynchronous client for YCSB framework using the <a
@@ -146,12 +147,12 @@ public class AsyncMongoDbClient extends DB {
       final long res = collection.delete(q, writeConcern);
       if (res == 0) {
         System.err.println("Nothing deleted for key " + key);
-        return 1;
+        return StatusCode.ERROR;
       }
-      return 0;
+      return StatusCode.OK;
     } catch (final Exception e) {
       System.err.println(e.toString());
-      return 1;
+      return StatusCode.ERROR;
     }
   }
 
@@ -271,7 +272,7 @@ public class AsyncMongoDbClient extends DB {
           collection.insert(writeConcern, toInsert);
           result = 1;
         }
-        return result == 1 ? 0 : 1;
+        return result == 1 ? StatusCode.OK : StatusCode.ERROR;
       }
 
       // Use a bulk insert.
@@ -285,30 +286,30 @@ public class AsyncMongoDbClient extends DB {
         batchedWriteCount += 1;
 
         if (batchedWriteCount < batchSize) {
-          return 0;
+          return StatusCode.OK;
         }
 
         long count = collection.write(batchedWrite);
         if (count == batchedWriteCount) {
           batchedWrite.reset().mode(BatchedWriteMode.REORDERED);
           batchedWriteCount = 0;
-          return 0;
+          return StatusCode.OK;
         }
 
         System.err.println("Number of inserted documents doesn't match the "
             + "number sent, " + count + " inserted, sent " + batchedWriteCount);
         batchedWrite.reset().mode(BatchedWriteMode.REORDERED);
         batchedWriteCount = 0;
-        return 1;
+        return StatusCode.ERROR;
       } catch (Exception e) {
         System.err.println("Exception while trying bulk insert with "
             + batchedWriteCount);
         e.printStackTrace();
-        return 1;
+        return StatusCode.ERROR;
       }
     } catch (final Exception e) {
       e.printStackTrace();
-      return 1;
+      return StatusCode.ERROR;
     }
   }
 
@@ -360,10 +361,10 @@ public class AsyncMongoDbClient extends DB {
       if (queryResult != null) {
         fillMap(result, queryResult);
       }
-      return queryResult != null ? 0 : 1;
+      return queryResult != null ? StatusCode.OK : StatusCode.ERROR;
     } catch (final Exception e) {
       System.err.println(e.toString());
-      return 1;
+      return StatusCode.ERROR;
     }
 
   }
@@ -412,7 +413,7 @@ public class AsyncMongoDbClient extends DB {
       final MongoIterator<Document> cursor = collection.find(find);
       if (!cursor.hasNext()) {
         System.err.println("Nothing found in scan for key " + startkey);
-        return 1;
+        return StatusCode.ERROR;
       }
       while (cursor.hasNext()) {
         // toMap() returns a Map but result.add() expects a
@@ -426,10 +427,10 @@ public class AsyncMongoDbClient extends DB {
         result.add(docAsMap);
       }
 
-      return 0;
+      return StatusCode.OK;
     } catch (final Exception e) {
       System.err.println(e.toString());
-      return 1;
+      return StatusCode.ERROR;
     }
   }
 
@@ -461,10 +462,10 @@ public class AsyncMongoDbClient extends DB {
       }
       final long res =
           collection.update(query, update, false, false, writeConcern);
-      return res == 1 ? 0 : 1;
+      return res == 1 ? StatusCode.OK : StatusCode.ERROR;
     } catch (final Exception e) {
       System.err.println(e.toString());
-      return 1;
+      return StatusCode.ERROR;
     }
   }
 
diff --git a/mongodb/src/main/java/com/yahoo/ycsb/db/MongoDbClient.java b/mongodb/src/main/java/com/yahoo/ycsb/db/MongoDbClient.java
index 6a7650b6..e1e50f83 100644
--- a/mongodb/src/main/java/com/yahoo/ycsb/db/MongoDbClient.java
+++ b/mongodb/src/main/java/com/yahoo/ycsb/db/MongoDbClient.java
@@ -24,21 +24,6 @@
  */
 package com.yahoo.ycsb.db;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.Vector;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import com.mongodb.client.model.InsertManyOptions;
-import com.mongodb.client.model.UpdateOneModel;
-
-import org.bson.Document;
-import org.bson.types.Binary;
-
 import com.mongodb.MongoClient;
 import com.mongodb.MongoClientURI;
 import com.mongodb.ReadPreference;
@@ -47,6 +32,8 @@ import com.mongodb.client.FindIterable;
 import com.mongodb.client.MongoCollection;
 import com.mongodb.client.MongoCursor;
 import com.mongodb.client.MongoDatabase;
+import com.mongodb.client.model.InsertManyOptions;
+import com.mongodb.client.model.UpdateOneModel;
 import com.mongodb.client.model.UpdateOptions;
 import com.mongodb.client.result.DeleteResult;
 import com.mongodb.client.result.UpdateResult;
@@ -54,6 +41,19 @@ import com.yahoo.ycsb.ByteArrayByteIterator;
 import com.yahoo.ycsb.ByteIterator;
 import com.yahoo.ycsb.DB;
 import com.yahoo.ycsb.DBException;
+import com.yahoo.ycsb.StatusCode;
+
+import org.bson.Document;
+import org.bson.types.Binary;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.Vector;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * MongoDB asynchronous client for YCSB framework using the MongoDB Inc. <a
@@ -152,12 +152,12 @@ public class MongoDbClient extends DB {
           collection.withWriteConcern(writeConcern).deleteOne(query);
       if (result.wasAcknowledged() && result.getDeletedCount() == 0) {
         System.err.println("Nothing deleted for key " + key);
-        return 1;
+        return StatusCode.ERROR;
       }
-      return 0;
+      return StatusCode.OK;
     } catch (Exception e) {
       System.err.println(e.toString());
-      return 1;
+      return StatusCode.ERROR;
     }
   }
 
@@ -287,12 +287,12 @@ public class MongoDbClient extends DB {
           bulkInserts.clear();
         }
       }
-      return 0;
+      return StatusCode.OK;
     } catch (Exception e) {
       System.err.println("Exception while trying bulk insert with "
           + bulkInserts.size());
       e.printStackTrace();
-      return 1;
+      return StatusCode.ERROR;
     }
 
   }
@@ -333,10 +333,10 @@ public class MongoDbClient extends DB {
       if (queryResult != null) {
         fillMap(result, queryResult);
       }
-      return queryResult != null ? 0 : 1;
+      return queryResult != null ? StatusCode.OK : StatusCode.ERROR;
     } catch (Exception e) {
       System.err.println(e.toString());
-      return 1;
+      return StatusCode.ERROR;
     }
   }
 
@@ -384,7 +384,7 @@ public class MongoDbClient extends DB {
 
       if (!cursor.hasNext()) {
         System.err.println("Nothing found in scan for key " + startkey);
-        return 1;
+        return StatusCode.ERROR;
       }
 
       result.ensureCapacity(recordcount);
@@ -399,10 +399,10 @@ public class MongoDbClient extends DB {
         result.add(resultMap);
       }
 
-      return 0;
+      return StatusCode.OK;
     } catch (Exception e) {
       System.err.println(e.toString());
-      return 1;
+      return StatusCode.ERROR;
     } finally {
       if (cursor != null) {
         cursor.close();
@@ -440,12 +440,12 @@ public class MongoDbClient extends DB {
       UpdateResult result = collection.updateOne(query, update);
       if (result.wasAcknowledged() && result.getMatchedCount() == 0) {
         System.err.println("Nothing updated for key " + key);
-        return 1;
+        return StatusCode.ERROR;
       }
-      return 0;
+      return StatusCode.OK;
     } catch (Exception e) {
       System.err.println(e.toString());
-      return 1;
+      return StatusCode.ERROR;
     }
   }
 
-- 
GitLab