|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.yahoo.ycsb.DB
public abstract class DB
A layer for accessing a database to be benchmarked. Each thread in the client will be given its own instance of whatever DB class is to be used in the test. This class should be constructed using a no-argument constructor, so we can load it dynamically. Any argument-based initialization should be done by init(). Note that YCSB does not make any use of the return codes returned by this class. Instead, it keeps a count of the return values and presents them to the user. The semantics of methods such as insert, update and delete vary from database to database. In particular, operations may or may not be durable once these methods commit, and some systems may return 'success' regardless of whether or not a tuple with a matching key existed before the call. Rather than dictate the exact semantics of these methods, we recommend you either implement them to match the database's default semantics, or the semantics of your target application. For the sake of comparison between experiments we also recommend you explain the semantics you chose when presenting performance results.
Constructor Summary | |
---|---|
DB()
|
Method Summary | |
---|---|
void |
cleanup()
Cleanup any state for this DB. |
abstract int |
delete(java.lang.String table,
java.lang.String key)
Delete a record from the database. |
java.util.Properties |
getProperties()
Get the set of properties for this DB. |
void |
init()
Initialize any state for this DB. |
abstract int |
insert(java.lang.String table,
java.lang.String key,
java.util.HashMap<java.lang.String,java.lang.String> values)
Insert a record in the database. |
abstract int |
read(java.lang.String table,
java.lang.String key,
java.util.Set<java.lang.String> fields,
java.util.HashMap<java.lang.String,java.lang.String> result)
Read a record from the database. |
abstract int |
scan(java.lang.String table,
java.lang.String startkey,
int recordcount,
java.util.Set<java.lang.String> fields,
java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result)
Perform a range scan for a set of records in the database. |
void |
setProperties(java.util.Properties p)
Set the properties for this DB. |
abstract int |
update(java.lang.String table,
java.lang.String key,
java.util.HashMap<java.lang.String,java.lang.String> values)
Update a record in the database. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public DB()
Method Detail |
---|
public void setProperties(java.util.Properties p)
public java.util.Properties getProperties()
public void init() throws DBException
DBException
public void cleanup() throws DBException
DBException
public abstract int read(java.lang.String table, java.lang.String key, java.util.Set<java.lang.String> fields, java.util.HashMap<java.lang.String,java.lang.String> result)
table
- The name of the tablekey
- The record key of the record to read.fields
- The list of fields to read, or null for all of themresult
- A HashMap of field/value pairs for the result
public abstract int scan(java.lang.String table, java.lang.String startkey, int recordcount, java.util.Set<java.lang.String> fields, java.util.Vector<java.util.HashMap<java.lang.String,java.lang.String>> result)
table
- The name of the tablestartkey
- The record key of the first record to read.recordcount
- The number of records to readfields
- The list of fields to read, or null for all of themresult
- A Vector of HashMaps, where each HashMap is a set field/value pairs for one record
public abstract int update(java.lang.String table, java.lang.String key, java.util.HashMap<java.lang.String,java.lang.String> values)
table
- The name of the tablekey
- The record key of the record to write.values
- A HashMap of field/value pairs to update in the record
public abstract int insert(java.lang.String table, java.lang.String key, java.util.HashMap<java.lang.String,java.lang.String> values)
table
- The name of the tablekey
- The record key of the record to insert.values
- A HashMap of field/value pairs to insert in the record
public abstract int delete(java.lang.String table, java.lang.String key)
table
- The name of the tablekey
- The record key of the record to delete.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |