Forum: Building VoltDB Clients

Post: Running YCSB on a VoltDB Cluster [PUT procedure not found]

Running YCSB on a VoltDB Cluster [PUT procedure not found]
ytaleb
Jul 26, 2016
Hi,

I have setup a cluster of 10 voltDB servers. I have downloaded https://github.com/VoltDB/voltdb/tree/master/tests/test_apps/ycsb and downloaded ycsb-0.1.4.
I have setup the environment variables, servers list, and so on.

Here is the output when I start the YCSB client

root@xxx-99:/home/voltdb-ycsb/ycsb# ./run.sh load
YCSB Client 0.1
Command line: -load -s -db com.yahoo.ycsb.db.VoltClient4 -P load.properties -P base.properties
Loading workload...
Starting test.
 0 sec: 0 operations; 
Connecting to VoltDB...
Connected to VoltDB node at: xxx-95.
Connected to VoltDB node at: xxx-93.
Connected to VoltDB node at: xxx-99.
Connected to VoltDB node at: xxx-92.
Connected to VoltDB node at: xxx-90.
Connected to VoltDB node at: xxx-91.
Connected to VoltDB node at: xxx-116.
Connected to VoltDB node at: xxx-114.
Connected to VoltDB node at: xxx-97.
Connected to VoltDB node at: xxx-115.
WARN: Procedure Put was not found. This message is rate limited to once every 60 seconds.
                                                                                         org.voltdb.client.ProcCallException: Procedure Put was not found
	at org.voltdb.client.ClientImpl.callProcedure(ClientImpl.java:297)
	at org.voltdb.client.ClientImpl.callProcedureWithClientTimeout(ClientImpl.java:251)
	at org.voltdb.client.ClientImpl.callProcedure(ClientImpl.java:206)
	at com.yahoo.ycsb.db.VoltClient4.update(VoltClient4.java:196)
	at com.yahoo.ycsb.db.VoltClient4.insert(VoltClient4.java:110)
	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)
log4j:WARN No appenders could be found for logger (NETWORK).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
 5 sec: 0 operations; [INSERT AverageLatency(us)=6423] 


Did I miss something when configuring YCSB?

Best regards,
Yacine
rmorgenstein
Jul 26, 2016
It looks like the ycsb's run.sh is the older style that loads a catalog. Here are instructions for getting the stored procedures in place:


1) run.sh catalog (to compile the stored procedures)
2) sqlcmd --servers=<oneservername> --query='load classes ycsb.jar'
3) sqlcmd --servers=<oneservername> < ycsb_ddl.sql

Alternately, you can start your servers directly with the ycsb.jar :


voltdb create -H <oneservername> -d <yourdedeployment.xml> ycsb.jar

I created a ticket to get this updated: https://issues.voltdb.com/browse/ENG-10829
ytaleb
Jul 27, 2016
Works perfectly.

Thanks a lot !