brianfrankcooper / ycsb Goto Github PK
View Code? Open in Web Editor NEWYahoo! Cloud Serving Benchmark
License: Apache License 2.0
Yahoo! Cloud Serving Benchmark
License: Apache License 2.0
When I used ycsb to run against mysql through jdbc, it throws error com.mysql.jdbc.exceptioinsert v2key ip=vip ountry=vc v2 field3=v3 field4=vvv4 field5=v5 field6=v6 field7=v7 field8=v8 field9=v9
ns.jdbc4.MySQLSyntaxErrorException: Unknown column 'YCSB_KEY' in 'where clause'. what is the root cause of it?
in your files for running the db cassandra, you force to have only one familycolumn seted to "data". We can't work with more columnfamily. What a pitty. I'm working on extending it for my tests !
The documentation often refers to a 'threads' parameter. This parameter does not exist. The 'threadcount' parameter does exist however.
Please fix this, it took me more than a day to figure out why I wasn't sending more than 3500 requests per second to my cluster...
After a couple of tries I have found that the wiki page that explained how to run a Workload is not there anymore.
https://github.com/brianfrankcooper/YCSB/wiki/Running-a-Workload
Although I can reach it by going to the recent history made to the Wiki pages.
Even in the last commit, it appears:
https://github.com/brianfrankcooper/YCSB/wiki/Running-a-Workload/462f1ec482afb6dd3848d3c2bb2955688b7526d8
Hi!
I've installed YCSB and MongoDB 1.8.1 (and later on 1.4.2), and tried to execute a workload according to the steps in the "Running a Workload" wiki page, but couldn't get it working.
I successfully tested YCSB with Cassandra, so I'm guessing the problem must be related to the MongoDB driver for YCSB.
Here are my steps:
$ java com.yahoo.ycsb.Client -load -db com.yahoo.ycsb.db.MongoDbClient -P workload/workloada -P mongo.opt
where the mongo.opt contains:
recordcount=1000000
mongodb.database=mytestdb
mongodb.url=mongodb://localhost:27017
The output I get (truncated):
YCSB Client 0.1
Command line: -load -db com.yahoo.ycsb.db.MongoDbClient -P workloads/workloada -P mongo.opt
Loading workload...
Starting test.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/roi.avidan/YCSB/db/mongodb/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/roi.avidan/YCSB/db/mongodb/lib/slf4j-simple-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
2 [Thread-1] ERROR com.yahoo.ycsb.db.MongoDbClient - java.lang.IllegalArgumentException: invalid ObjectId [user1268118805]
java.lang.IllegalArgumentException: invalid ObjectId [user1268118805]
at org.bson.types.ObjectId.(ObjectId.java:130)
at org.bson.types.ObjectId.(ObjectId.java:124)
at com.yahoo.ycsb.db.MongoDbClient.insert(Unknown Source)
at com.yahoo.ycsb.DBWrapper.insert(Unknown Source)
at com.yahoo.ycsb.workloads.CoreWorkload.doInsert(Unknown Source)
at com.yahoo.ycsb.ClientThread.run(Unknown Source)
[OVERALL], RunTime(ms), 430.0
[OVERALL], Throughput(ops/sec), 2325581.395348837
[INSERT], Operations, 1
[INSERT], AverageLatency(ms), 15.0
[INSERT], MinLatency(ms), 15
[INSERT], MaxLatency(ms), 15
[INSERT], 95thPercentileLatency(ms), 15
[INSERT], 99thPercentileLatency(ms), 15
[INSERT], Return=1, 1
[INSERT], 0, 0
[INSERT], 1, 0
[INSERT], 2, 0
[INSERT], 3, 0
[INSERT], 4, 0
[INSERT], 5, 0
[INSERT], 6, 0
[INSERT], 7, 0
[INSERT], 8, 0
[INSERT], 9, 0
[INSERT], 10, 0
[INSERT], 11, 0
[INSERT], 12, 0
[INSERT], 13, 0
[INSERT], 14, 0
[INSERT], 15, 1
[INSERT], 16, 0
[INSERT], 17, 0
[INSERT], 18, 0
[INSERT], 19, 0
[INSERT], 20, 0
[INSERT], 21, 0
[INSERT], 22, 0
[INSERT], 23, 0
[INSERT], 24, 0
[INSERT], 25, 0
[INSERT], 26, 0
[INSERT], 27, 0
[INSERT], 28, 0
[INSERT], 29, 0
[INSERT], 30, 0
What am I doing wrong?
Thanks in advance,
Roi
Test issue to see how GitHub's issues tracker works
With Maven, the dependency management can be easier and cleaner.
The DB libraries can be configured & compiled with default versions(latest).
There is always an option to override with custom or lower versions as desired.
I like to clean up logging so that it's consistent across all the db drivers.
--Michi
Client.java uses Properties.stringPropertyNames() which is 1.6 only. Remove this call, and investigate any other incompatibilities with 1.5, so YCSB can be compiled in 1.5 environments.
Hi m1ch1 and everyone,
I am trying out ycsb with mongdodb and have managed to benchmark it with the help of my own perl script.
However, now that I am benchmarking cassandra v1.0.6 in that same perl script, I encountered this error with not much of a help.
Loading workload...
Starting test.
0 sec: 0 operations;
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
InvalidRequestException(why:Keyspace usertable does not exist)
at org.apache.cassandra.thrift.Cassandra$set_keyspace_result.read(Cassandra.java:4816)
at org.apache.cassandra.thrift.Cassandra$Client.recv_set_keyspace(Cassandra.java:451)
at org.apache.cassandra.thrift.Cassandra$Client.set_keyspace(Cassandra.java:426)
at com.yahoo.ycsb.db.CassandraClient10.insert(CassandraClient10.java:437)
at com.yahoo.ycsb.DBWrapper.insert(DBWrapper.java:145)
at com.yahoo.ycsb.workloads.CoreWorkload.doInsert(CoreWorkload.java:461)
at com.yahoo.ycsb.ClientThread.run(Client.java:269)
0 sec: 0 operations; [INSERT AverageLatency(us)=25297]
any ideas, please?
Thank you.
Kind Regards,
Cornelius
Hi,
I'm trying to run some MongoDB tests and I keep running into a NullPointerException without a stack trace. I tried building from source, which fails as well, but that's a different bug report (similar to issue #96)
$ ./bin/ycsb load mongodb -P workloads/workloada -P test1.dat -s > load.dat
Loading workload...
Starting test.
0 sec: 0 operations;
java.lang.NullPointerException
0 sec: 0 operations; [INSERT AverageLatency(us)=20256]
test1.dat contains
threadcount=1
mongodb.url=localhost:27017
mongodb.maxconnections=10
mongodb.writeConcern=safe
mongodb.database=ycsb
In MongoDbClient.java, all exceptions are caught, printed and ignored, so I have no way of finding out which piece of code throws this error.
I have set the classpath included with 'ojdbc14' and I also move it to the directory ~/ycsb-0.1.4/jdbc-binding/lib.
I have create a table called 'usertable' in oracle.When use the command
./ycsb load jdbc -P ../workloads/workloada -p threads=1 -p columnfamily=f1 -p recordcount=10000 -s > load.dat
issues appeared as below:
Loading workload...
Starting test.
0 sec: 0 operations;
Error in database operation: java.sql.SQLException: No suitable driver found for
com.yahoo.ycsb.DBException: java.sql.SQLException: No suitable driver found for
at com.yahoo.ycsb.db.JdbcDBClient.init(JdbcDBClient.java:203)
at com.yahoo.ycsb.DBWrapper.init(DBWrapper.java:63)
at com.yahoo.ycsb.ClientThread.run(Client.java:189)
Caused by: java.sql.SQLException: No suitable driver found for
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.yahoo.ycsb.db.JdbcDBClient.init(JdbcDBClient.java:187)
... 2 more
0 sec: 0 operations;
my conf file under /jdbc-binding:
[hadoopcdh@mastersrv conf]$ cat db.properties
jdbc.driver=oracle.jdbc.driver.OracleDriver
db.url=jdbc:oracle:thin:@192.168.1.65:1521:kakou
db.user=kakou
db.passwd=kakou
[hadoopcdh@mastersrv conf]$ cat h2.properties
jdbc.driver=oracle.jdbc.driver.OracleDriver
db.url=jdbc:oracle:thin:@192.168.1.65:1521:kakou
db.user=kakou
db.passwd=kakou
Hi,
I noticed that in the Cassandra Client patch 5 months ago (012873a),
the Cassandra client version was downgraded from 1.0.7 to 0.7.0, in order to ensure backward compatibility in compiling CassandraClient7.java and CassandraClient8.java.
I was wondering if using the older version of the client wouldn't be ideal for benchmarking purposes?
Thanks,
minghan
It would be nice to have support for connecting to remote clusters using transport client without having to create a node which attaches itself to the cluster.
Review proposed performance patches from tlipcon:
Rusty suggested that some databases could optimize blind writes by logging the change without reading the old value. But to do so, you need to tell the database that the write is intended to obliterate any existing records with the same key. A new call is needed to do this.
Hi,
I am using ant 1.8.0, on an Ubuntu machine, and I am trying to build db layer for Cassandra.
I have used Cassandra releases 0.7.8 and 0.7.6-2 and 0.7.0 but I constantly getting build failures. I have noticed that there was an already closed issue (issue #25) on this problem, which claims that the problems are solved for the versions I am using.
Below you can see the detailed failure message I am getting.
Any help/hint would be great, as I really wanna use YCSB for benchmarking some KVS systems.
dbcompile:
[javac] /home/pouria/KVS/YCSB/build.xml:63: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 1 source file to /home/pouria/KVS/YCSB/build/classes
[javac] /home/pouria/KVS/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:209: setColumn_names(java.util.List<java.nio.ByteBuffer>) in org.apache.cassandra.thrift.SlicePredicate cannot be applied to (java.util.ArrayList<byte[]>)
[javac] predicate.setColumn_names(fieldlist);
[javac] ^
[javac] /home/pouria/KVS/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:213: get_slice(java.nio.ByteBuffer,org.apache.cassandra.thrift.ColumnParent,org.apache.cassandra.thrift.SlicePredicate,org.apache.cassandra.thrift.ConsistencyLevel) in org.apache.cassandra.thrift.Cassandra.Client cannot be applied to (byte[],org.apache.cassandra.thrift.ColumnParent,org.apache.cassandra.thrift.SlicePredicate,org.apache.cassandra.thrift.ConsistencyLevel)
[javac] List results = client.get_slice(key.getBytes("UTF-8"), parent, predicate,
[javac] ^
[javac] /home/pouria/KVS/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:224: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] result.put(new String(column.name), new String(column.value));
[javac] ^
[javac] /home/pouria/KVS/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:224: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] result.put(new String(column.name), new String(column.value));
[javac] ^
[javac] /home/pouria/KVS/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:228: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] System.out.print("(" + new String(column.name) + "=" + new String(column.value) + ")");
[javac] ^
[javac] /home/pouria/KVS/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:228: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] System.out.print("(" + new String(column.name) + "=" + new String(column.value) + ")");
[javac] ^
[javac] /home/pouria/KVS/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:310: setColumn_names(java.util.List<java.nio.ByteBuffer>) in org.apache.cassandra.thrift.SlicePredicate cannot be applied to (java.util.ArrayList<byte[]>)
[javac] predicate.setColumn_names(fieldlist);
[javac] ^
[javac] /home/pouria/KVS/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:329: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] tuple.put(new String(column.name), new String(column.value));
[javac] ^
[javac] /home/pouria/KVS/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:329: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] tuple.put(new String(column.name), new String(column.value));
[javac] ^
[javac] /home/pouria/KVS/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:334: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] .print("(" + new String(column.name) + "=" + new String(column.value) + ")");
[javac] ^
[javac] /home/pouria/KVS/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:334: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] .print("(" + new String(column.name) + "=" + new String(column.value) + ")");
[javac] ^
[javac] /home/pouria/KVS/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:423: cannot find symbol
[javac] symbol : constructor Column(byte[],byte[],long)
[javac] location: class org.apache.cassandra.thrift.Column
[javac] Column col = new Column(field.getBytes("UTF-8"), val.getBytes("UTF-8"), timestamp);
[javac] ^
[javac] /home/pouria/KVS/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:433: batch_mutate(java.util.Map<java.nio.ByteBuffer,java.util.Map<java.lang.String,java.util.List<org.apache.cassandra.thrift.Mutation>>>,org.apache.cassandra.thrift.ConsistencyLevel) in org.apache.cassandra.thrift.Cassandra.Client cannot be applied to (java.util.Map<byte[],java.util.Map<java.lang.String,java.util.List<org.apache.cassandra.thrift.Mutation>>>,org.apache.cassandra.thrift.ConsistencyLevel)
[javac] client.batch_mutate(batch_mutation, ConsistencyLevel.ONE);
[javac] ^
[javac] /home/pouria/KVS/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:485: remove(java.nio.ByteBuffer,org.apache.cassandra.thrift.ColumnPath,long,org.apache.cassandra.thrift.ConsistencyLevel) in org.apache.cassandra.thrift.Cassandra.Client cannot be applied to (byte[],org.apache.cassandra.thrift.ColumnPath,long,org.apache.cassandra.thrift.ConsistencyLevel)
[javac] client.remove(key.getBytes("UTF-8"), new ColumnPath(column_family), System.currentTimeMillis(),
[javac] ^
[javac] 14 errors
BUILD FAILED
Hi! I am just starting to use YCSB. I want to create a new DBClient but it seems that the documentation regarding this issue it is not up to date in the wiki.
I cannot even execute:
java com.yahoo.ycsb.CommandLine -db com.yahoo.ycsb.db.MongoDbClient -p mongodb.url=mongodb://localhost:27017 -p mongodb.database=ycsb
Sorry for my ignorance.
As I was not able to make YCSB working with the binaries from the download section, I tried to build YCSB against HBase 0.92.1 myself. For this I had to adjust the following things to make the maven build work:
In the root pom.xml: Set the hbase.version property to 0.92.1
In the hbase-binding pom.xml I had to add the following dependency:
org.apache.hadoop hadoop-core 1.0.2Using the downloadable binaries from here, the exception I got was something like:
"Not a host:port pair"
Maybe this can be usefull for somebody.
prepare and release 0.1.4
Hi,
I am trying to install ycsb for benchmarking hbase.
Loading workload...
Starting test.
SLF4J: The requested version 1.5.8 by your slf4j binding is not compatible with [1.6]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:zookeeper.version=3.4.3-1240972, built on 02/06/2012 10:48 GMT
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:host.name=<..hostname..>
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:java.version=1.6.0_24
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:java.vendor=Sun Microsystems Inc.
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:java.home=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:java.class.path=/<..path..>/ycsb-0.1.4/hbase-binding/conf:/<..path..>/ycsb-0.1.4/hbase-binding/lib/hbase-binding-0.1.4.jar:/<..path..>/ycsb-0.1.4/core/lib/core-0.1.4.jar:/<..path..>/ycsb-0.1.4/voldemort-binding/conf:/<..path..>/ycsb-0.1.4/jdbc-binding/conf:/<..path..>/ycsb-0.1.4/infinispan-binding/conf
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:java.library.path=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/amd64/server:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/amd64:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:java.io.tmpdir=/tmp
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:java.compiler=
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:os.name=Linux
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:os.arch=amd64
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:os.version=2.6.32-279.el6.x86_64
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:user.name=hbase
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:user.home=/var/run/hbase
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Client environment:user.dir=/<..path..>/ycsb-0.1.4
13/05/15 11:31:50 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=<..hostname..>:2181 sessionTimeout=180000 watcher=hconnection
13/05/15 11:31:50 INFO zookeeper.RecoverableZooKeeper: The identifier of this process is 24314@<..hostname..>
13/05/15 11:31:50 INFO zookeeper.ClientCnxn: Opening socket connection to server /:2181
13/05/15 11:31:50 INFO client.ZooKeeperSaslClient: Client will not SASL-authenticate because the default JAAS configuration section 'Client' could not be found. If you are not using SASL, you may ignore this. On the other hand, if you expected SASL to work, please fix your JAAS configuration.
13/05/15 11:31:50 INFO zookeeper.ClientCnxn: Socket connection established to <..hostname..>/<..IP..>:2181, initiating session
13/05/15 11:31:50 INFO zookeeper.ClientCnxn: Session establishment complete on server <..hostname..>/<..IP..>:2181, sessionid = 0x3ea192c11c1bff, negotiated timeout = 180000
Error accessing HBase table: java.io.IOException: Call to <..hostname..>/<..IP..>:60020 failed on local exception: java.io.EOFException
My HBase+Zookeeper is running fine and i am able to perform all operations on it. The problem arises only when i use YCSB.
Some background info:
tcp 0 0 ::ffff: :60020 :::* LISTEN 115262/java
Can someone point me in the right direction?
Thanks in advance for the help!
-Manoj
The client code can be found here:
https://gist.github.com/000a66b8db2caf42467b
I'm able to load a workload without problems, but when I'm running it I get unexpected results. Read takes 1000x more time than an update/insert record. How are the keys for read() generated? If they are randomized on the fly that would be an explanation since a "MISS" takes much more time than a "HIT".
From Yen:
"in order to get the right response back from the DB when checking status of last call, we have to demarcate the beginning and end of the operation with "db.requestStart()" and "db.requestDone()".
The relevant thread from the MongoDB user group:
http://groups.google.com/group/mongodb-user/browse_thread/thread/5ca932db54fd0c00"
Hi everyone,
I am trying to run "./bin/ycsb shell redis" to check if I can connect to my RedisDB server through the interactive shell.
However, I encounter this error message.
Exception in thread "main" java.lang.IllegalArgumentException: hostname can't be null
at java.net.InetSocketAddress.(InetSocketAddress.java:139)
at redis.clients.jedis.Connection.connect(Connection.java:119)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:54)
at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1657)
at com.yahoo.ycsb.db.RedisClient.init(RedisClient.java:49)
at com.yahoo.ycsb.CommandLine.main(CommandLine.java:210)
any ideas?
Thank you.
Kind regards,
Cornelius
Hi,
I have been running few benchmark tests on MongoDB in linux environment and using YCSB for data insertion and execution of workloads provided by YCSB.
Execution of workloads a, b & c is fine. When it came to exectution of workloads d & e, I'm facing issue of duplicate key exception.
When I tried again after specifying variable "recordcount" and insertstart" in the workloadd file I got same exception for few seconds and then later execution is successful and .out file is generated with the execution stats.
.out file stats show that 253000 records have been inserted as workloadd has 5% insert operations. But when I checked the record count in the mongodb using the db..count() command, the record count is same as before this execution.
Can you please elaborate why this has happend? If 5% records are inserted as part of workloadd execution in the MongoDB database then the record count also has to increase accordingly??
While runnig workloadA with zipfian distribution and threadcount=10, I am seeing write conflicts on the database backend. Is this expected?
Hello,
i'm having problems benchmarking MongoDB with YCSB.
This is what i've done:
1)installed MongoDB (2.0.4) and started bin/mongod (i can connect with shell to this instance)
2)git clone .../YCSB.git and then "mvn clean package". Build was successful.
Loading workload ends with this:
[root@serv1 YCSB]# bin/ycsb load mongodb -P workloads/workloada -p mongodb.url=mongodb://localhost:27017 -p mongodb.database=mytestdb -p debug=true -s > s1.txt (s1.txt content is here: http://pastebin.com/QNLLB1K4)
Loading workload...
Starting test.
0 sec: 0 operations;
java.lang.NullPointerException
0 sec: 0 operations; [INSERT AverageLatency(us)=28605]
Starting workload ends with this:
[root@serv1 YCSB]# bin/ycsb run mongodb -P workloads/workloada -p mongodb.url=mongodb://localhost:27017 -p mongodb.database=mytestdb -p debug=true -s > s2.txt (http://pastebin.com/7G0iHUQr)
Loading workload...
Starting test.
0 sec: 0 operations;
java.lang.NullPointerException
java.lang.NullPointerException
java.lang.NullPointerException
...
...
java.lang.NullPointerException
java.lang.NullPointerException
1 sec: 1000 operations; 759.3 current ops/sec; [UPDATE AverageLatency(us)=609.74] [READ AverageLatency(us)=1300.77]
I got benchmark running on cassandra, redis, hbase so far. I spent countless hours trying to figure out what do i do wrong with MongoDB.
I use the latest version of YCSB to connect to the cassandra (0.7.10) with ant 1.8.2 and jdk 1.6, but get some errors:
dbcompile:
[javac] /home/mangobatao/Downloads/YCSB/build.xml:63: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 1 source file to /home/mangobatao/Downloads/YCSB/build/classes
[javac] /home/mangobatao/Downloads/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:209: setColumn_names(java.util.List<java.nio.ByteBuffer>) in org.apache.cassandra.thrift.SlicePredicate cannot be applied to (java.util.ArrayList<byte[]>)
[javac] predicate.setColumn_names(fieldlist);
[javac] ^
[javac] /home/mangobatao/Downloads/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:213: get_slice(java.nio.ByteBuffer,org.apache.cassandra.thrift.ColumnParent,org.apache.cassandra.thrift.SlicePredicate,org.apache.cassandra.thrift.ConsistencyLevel) in org.apache.cassandra.thrift.Cassandra.Client cannot be applied to (byte[],org.apache.cassandra.thrift.ColumnParent,org.apache.cassandra.thrift.SlicePredicate,org.apache.cassandra.thrift.ConsistencyLevel)
[javac] List results = client.get_slice(key.getBytes("UTF-8"), parent, predicate,
[javac] ^
[javac] /home/mangobatao/Downloads/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:224: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] result.put(new String(column.name), new String(column.value));
[javac] ^
[javac] /home/mangobatao/Downloads/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:224: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] result.put(new String(column.name), new String(column.value));
[javac] ^
[javac] /home/mangobatao/Downloads/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:228: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] System.out.print("(" + new String(column.name) + "=" + new String(column.value) + ")");
[javac] ^
[javac] /home/mangobatao/Downloads/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:228: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] System.out.print("(" + new String(column.name) + "=" + new String(column.value) + ")");
[javac] ^
[javac] /home/mangobatao/Downloads/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:310: setColumn_names(java.util.List<java.nio.ByteBuffer>) in org.apache.cassandra.thrift.SlicePredicate cannot be applied to (java.util.ArrayList<byte[]>)
[javac] predicate.setColumn_names(fieldlist);
[javac] ^
[javac] /home/mangobatao/Downloads/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:329: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] tuple.put(new String(column.name), new String(column.value));
[javac] ^
[javac] /home/mangobatao/Downloads/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:329: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] tuple.put(new String(column.name), new String(column.value));
[javac] ^
[javac] /home/mangobatao/Downloads/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:334: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] .print("(" + new String(column.name) + "=" + new String(column.value) + ")");
[javac] ^
[javac] /home/mangobatao/Downloads/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:334: cannot find symbol
[javac] symbol : constructor String(java.nio.ByteBuffer)
[javac] location: class java.lang.String
[javac] .print("(" + new String(column.name) + "=" + new String(column.value) + ")");
[javac] ^
[javac] /home/mangobatao/Downloads/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:423: cannot find symbol
[javac] symbol : constructor Column(byte[],byte[],long)
[javac] location: class org.apache.cassandra.thrift.Column
[javac] Column col = new Column(field.getBytes("UTF-8"), val.getBytes("UTF-8"), timestamp);
[javac] ^
[javac] /home/mangobatao/Downloads/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:433: batch_mutate(java.util.Map<java.nio.ByteBuffer,java.util.Map<java.lang.String,java.util.List<org.apache.cassandra.thrift.Mutation>>>,org.apache.cassandra.thrift.ConsistencyLevel) in org.apache.cassandra.thrift.Cassandra.Client cannot be applied to (java.util.Map<byte[],java.util.Map<java.lang.String,java.util.List<org.apache.cassandra.thrift.Mutation>>>,org.apache.cassandra.thrift.ConsistencyLevel)
[javac] client.batch_mutate(batch_mutation, ConsistencyLevel.ONE);
[javac] ^
[javac] /home/mangobatao/Downloads/YCSB/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:485: remove(java.nio.ByteBuffer,org.apache.cassandra.thrift.ColumnPath,long,org.apache.cassandra.thrift.ConsistencyLevel) in org.apache.cassandra.thrift.Cassandra.Client cannot be applied to (byte[],org.apache.cassandra.thrift.ColumnPath,long,org.apache.cassandra.thrift.ConsistencyLevel)
[javac] client.remove(key.getBytes("UTF-8"), new ColumnPath(column_family), System.currentTimeMillis(),
[javac] ^
[javac] 14 errors
I see other people have the same problems, could someone tell me how could I solve this kind of problem?
I am having issues running the YCSB shell. When i run any shell command, the J2SE binary dies. Any inputs. ?Please let me know if you need any more details. I am trying to run the YCSB Shell on a windows machine
This is the first time I am submitting an issue and my explanation may seem convoluted. I apologize before hand for the same. Feel free to edit the contents of this description.
There is an error in the Cassandra driver which causes all inserts to fail after one insert fails due to UnavailableException (the execption that occurs when not enough nodes are up to serve the write request with a consistency level which is not ANY). Please refer to the src file: cassandra/src/main/java/com/yahoo/ycsb/db/CassandraClient10.java
The problem is that the Cassandra client stores all the mutations that it needs to perform on the columns of one key as one operation in List mutations, Map<String, List> mutationMap and Map<ByteBuffer, Map<String, List>> record member variables (Line 89-91).
After an insert is performed, these variable have to be cleared (Line 479-481). However if an exception is thrown in the client.batch_mutate(record, writeConsistencyLevel) call (Line 477) then these variables don't get cleared as the flow directly jumps to the corresponding catch block.
Since these variables are not cleared, the next batch_mutate also causes all subsequent writes to fail because though it adds new writes to mutation variables, it still tries to perform the old failed mutation again and again which is not going to succeed as not enough nodes are up.
Now YCSB allows DB to return fields as iterators without putting them in memory. DBWrapper needs to consume them before reporting the latency.
--Michi
When I intend to run the newest version of YCSB (0.1.4) on windows, I find it does not work. Who can tell me how to run it on Windows?
To delete >.<
Hi,
I was trying to build the YCSB code in Ubuntu 12 64 bit and came across a lot of issues. There were a few packages missing. I have installed Maven 2 and all its dependencies. It is now complaining of some java jar files missing in classpath like slf4j etc. Can you please give me some information as to what should I do.
Also, I want the MongoDB version built only. Is there some build time flags that I can use?
Thanks and Regards,
Mainak.
If per thread throughput per ms (_target) is greater than 1 [possible scenario], line 212 of Client.java throws an Exception since random.nextInt(0) is not allowed.
A variety of scalable, semistructured, weak-semantic table stores have been developed and optimized for different priorities such as query speed, ingest speed, availability, and interactivity. As these systems mature, performance benchmarking will advance from measuring the rate of simple workloads to understanding and debugging the performance of advanced features such as ingest speed-up techniques and function shipping filters from client to servers.
We implement a set of extensions to the Yahoo! Cloud Serving Benchmark (YCSB) to improve performance understanding and debugging of these advanced features. The extensions include multi-tester coordination for increased load and eventual consistency measurement, multi-phase workloads to quantify the consequences of work deferment and the benefits of anticipatory configuration optimization such as B-tree pre-splitting or bulk loading, and abstract APIs for explicit incorporation of advanced features in benchmark tests. To enhance performance debugging, we customized an existing cluster monitoring tool to gather the internal statistics of YCSB, table stores, system services like HDFS, and operating systems, and to offer easy post-test correlation and reporting of performance behaviors.
In update method of JdbcDBClient.java, following lines of code get values from a map in order of entries:
for (Map.Entry<String, ByteIterator> entry : values.entrySet()) {
updateStatement.setString(index++, entry.getValue().toString());
}
Since, Map does not guarantee order of entries, though, it doesn't make a big difference for usertable as all the columns are of the same type, varchar and random values are passed, however, while verification, corresponding values are not reflected . It would be good to get the corresponding values from the map for desired fields.
Following is a excerpt from update() method:
public int update(String tableName, String key, HashMap<String, ByteIterator> values) {
........
.......
PreparedStatement updateStatement = cachedStatements.get(type);
....
......
int index = 1;
for (Map.Entry<String, ByteIterator> entry : values.entrySet()) {
updateStatement.setString(index++, entry.getValue().toString());
}
updateStatement.setString(index, key);
Just to see if non-collaborators can file issues.
We got a bug report from Tatsuya Kawano on the HBase list. He points out that the last few inserts done on HBase are not flushed, without some explicit flushing code. His suggestion for the cleanup function is below. The fix looks correct to me and we should adopt it.
public void cleanup() throws DBException {
try {
if (_hTable != null) {
_hTable.flushCommits();
}
} catch (IOException e) {
throw new DBException(e);
}
}
Many NoSQL databases are able to produce responses in less than a millisecond. When this happens YCSB places the result in the 0 millisecond slot in the histogram array and the latency value not increased (since the latency is reported as zero) and the operations variable is incremented. As a result this causes data for some datastores to be skewed. I suggest using System.nanoTime() and then dividing by 1000 to get the time in microseconds. The histogram will still look the same, but the average latency reported will be much more accurate. Then the documentation could be updated to say that when reading the histogram the value for each slot is between the time of that slot and the next greatest slots time. For example, if there were 1000 operations that were recorded in the 0 slot in the histogram then we would interpret that as "1000 operation completed in less than 1 millisecond, but greater than 0 milliseconds.
Also, for machines that cannot produce time results in the microsecond range we could log a warning that says that that granularity is not supported. I can also submit a patch for this if you are open to the idea.
I'm using Ant 1.8.2, I googled and it is possible the following problem is related to this specific ant version.
I have copied all cassandra jars in db/cassandra-0.7/lib/.
Executing 'ant' is ok, executing 'ant dbcompile-cassandra-0.7' gives the following (sorry if this is an-easy-to-fix error but Im not keen on java/ant):
compile:
makejar:
dbcompile-cassandra-0.7:
dbcompile:
[javac] /index/YCSB-0.1.3-0-geb1597f/build.xml:63: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 1 source file to /index/YCSB-0.1.3-0-geb1597f/build/classes
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:37: package org.apache.cassandra.thrift does not exist
[javac] import org.apache.cassandra.thrift.*;
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:67: package Cassandra does not exist
[javac] Cassandra.Client client;
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:104: package Cassandra does not exist
[javac] client = new Cassandra.Client(proto);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:135: cannot find symbol
[javac] symbol : class AuthenticationRequest
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] AuthenticationRequest req = new AuthenticationRequest(cred);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:135: cannot find symbol
[javac] symbol : class AuthenticationRequest
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] AuthenticationRequest req = new AuthenticationRequest(cred);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:189: cannot find symbol
[javac] symbol : class SlicePredicate
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] SlicePredicate predicate;
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:193: cannot find symbol
[javac] symbol : class SliceRange
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] SliceRange sliceRange = new SliceRange();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:193: cannot find symbol
[javac] symbol : class SliceRange
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] SliceRange sliceRange = new SliceRange();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:198: cannot find symbol
[javac] symbol : class SlicePredicate
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] predicate = new SlicePredicate();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:208: cannot find symbol
[javac] symbol : class SlicePredicate
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] predicate = new SlicePredicate();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:212: cannot find symbol
[javac] symbol : class ColumnParent
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] ColumnParent parent = new ColumnParent(column_family);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:212: cannot find symbol
[javac] symbol : class ColumnParent
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] ColumnParent parent = new ColumnParent(column_family);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:213: cannot find symbol
[javac] symbol : class ColumnOrSuperColumn
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] List results = client.get_slice(key.getBytes("UTF-8"), parent, predicate,
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:214: cannot find symbol
[javac] symbol : variable ConsistencyLevel
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] ConsistencyLevel.ONE);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:221: cannot find symbol
[javac] symbol : class ColumnOrSuperColumn
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] for (ColumnOrSuperColumn oneresult : results)
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:223: cannot find symbol
[javac] symbol : class Column
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] Column column = oneresult.column;
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:293: cannot find symbol
[javac] symbol : class SlicePredicate
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] SlicePredicate predicate;
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:296: cannot find symbol
[javac] symbol : class SliceRange
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] SliceRange sliceRange = new SliceRange();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:296: cannot find symbol
[javac] symbol : class SliceRange
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] SliceRange sliceRange = new SliceRange();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:300: cannot find symbol
[javac] symbol : class SlicePredicate
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] predicate = new SlicePredicate();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:309: cannot find symbol
[javac] symbol : class SlicePredicate
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] predicate = new SlicePredicate();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:312: cannot find symbol
[javac] symbol : class ColumnParent
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] ColumnParent parent = new ColumnParent(column_family);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:312: cannot find symbol
[javac] symbol : class ColumnParent
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] ColumnParent parent = new ColumnParent(column_family);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:313: cannot find symbol
[javac] symbol : class KeyRange
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] KeyRange kr = new KeyRange().setStart_key(startkey.getBytes("UTF-8")).setEnd_key(new byte[] {}).setCount(recordcount);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:313: cannot find symbol
[javac] symbol : class KeyRange
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] KeyRange kr = new KeyRange().setStart_key(startkey.getBytes("UTF-8")).setEnd_key(new byte[] {}).setCount(recordcount);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:315: cannot find symbol
[javac] symbol : class KeySlice
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] List results = client.get_range_slices(parent, predicate, kr, ConsistencyLevel.ONE);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:315: cannot find symbol
[javac] symbol : variable ConsistencyLevel
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] List results = client.get_range_slices(parent, predicate, kr, ConsistencyLevel.ONE);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:322: cannot find symbol
[javac] symbol : class KeySlice
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] for (KeySlice oneresult : results)
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:326: cannot find symbol
[javac] symbol : class ColumnOrSuperColumn
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] for (ColumnOrSuperColumn onecol : oneresult.columns)
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:328: cannot find symbol
[javac] symbol : class Column
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] Column column = onecol.column;
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:414: cannot find symbol
[javac] symbol : class Mutation
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] Map<byte[], Map<String, List>> batch_mutation = new HashMap<byte[], Map<String, List>>();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:414: cannot find symbol
[javac] symbol : class Mutation
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] Map<byte[], Map<String, List>> batch_mutation = new HashMap<byte[], Map<String, List>>();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:415: cannot find symbol
[javac] symbol : class Mutation
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] ArrayList v = new ArrayList(values.size());
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:415: cannot find symbol
[javac] symbol : class Mutation
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] ArrayList v = new ArrayList(values.size());
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:416: cannot find symbol
[javac] symbol : class Mutation
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] Map<String, List> cfMutationMap = new HashMap<String, List>();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:416: cannot find symbol
[javac] symbol : class Mutation
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] Map<String, List> cfMutationMap = new HashMap<String, List>();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:423: cannot find symbol
[javac] symbol : class Column
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] Column col = new Column(field.getBytes("UTF-8"), val.getBytes("UTF-8"), timestamp);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:423: cannot find symbol
[javac] symbol : class Column
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] Column col = new Column(field.getBytes("UTF-8"), val.getBytes("UTF-8"), timestamp);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:425: cannot find symbol
[javac] symbol : class ColumnOrSuperColumn
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] ColumnOrSuperColumn c = new ColumnOrSuperColumn();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:425: cannot find symbol
[javac] symbol : class ColumnOrSuperColumn
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] ColumnOrSuperColumn c = new ColumnOrSuperColumn();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:428: cannot find symbol
[javac] symbol : class Mutation
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] Mutation m = new Mutation();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:428: cannot find symbol
[javac] symbol : class Mutation
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] Mutation m = new Mutation();
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:433: cannot find symbol
[javac] symbol : variable ConsistencyLevel
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] client.batch_mutate(batch_mutation, ConsistencyLevel.ONE);
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:485: cannot find symbol
[javac] symbol : class ColumnPath
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] client.remove(key.getBytes("UTF-8"), new ColumnPath(column_family), System.currentTimeMillis(),
[javac] ^
[javac] /index/YCSB-0.1.3-0-geb1597f/db/cassandra-0.7/src/com/yahoo/ycsb/db/CassandraClient7.java:486: cannot find symbol
[javac] symbol : variable ConsistencyLevel
[javac] location: class com.yahoo.ycsb.db.CassandraClient7
[javac] ConsistencyLevel.ONE);
[javac] ^
[javac] 45 errors
BUILD FAILED
/index/YCSB-0.1.3-0-geb1597f/build.xml:30: The following error occurred while executing this line:
/index/YCSB-0.1.3-0-geb1597f/build.xml:63: Compile failed; see the compiler error output for details.
Total time: 1 second
When I attempt to load the data in Cassandra-0.7, I get the previous exception. What's wrong with my operation? I started Cassandra, and there were corresponding keyspace and column family inside it. Should I modify some configuration information?
Hi,
I am trying to insert 1 Billion records to stress test Cassandra DB using multiple ycsb clients. I observe that less than 1 Billion records are inserted when i sum up the insert record count from each individual client. Is it a know issue with ycsb?? there is a loss of about 100 to 500 records overall.
Rusty pointed out that if we have a fixed number of client threads (say, 100), and the database is slow or down for a short period, then those 100 threads will wait and we'll see high latencies for 100 requests. But in reality, a real application would have a larger number of users with waits or timeouts, because they'll be waiting on the app server for a thread or a process but can't get one because all the threads/processes are busy. So we could enhance the request rate model to track requests that would have executed in a given time tick, but cannot because all the YCSB threads are busy. Possibly, this is equivalent to counting the number of requests that would have been executed by a given thread in a given 1 second period, but could not because the thread was waiting for the database.
Hi
I begun to work with ycsb and it is very nice, so first thanks.
While playing around a little to evaluate Cassandra, i noticed the following
GemFireClient convertToBytearrayMap method does not store the entire value
retVal.put(key, values.get(key).toArray());
should be:
retVal.put(key, values.get(key).toString().getBytes());
If you will run this in debug mode you will find only few bytes are actually stored in cache.
Shay
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.