Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

when threads was bigger than recordcount, the load phase was keeping running even the recordcount reached #1176

Closed
adally opened this issue Jun 22, 2018 · 4 comments

Comments

@adally
Copy link
Contributor

adally commented Jun 22, 2018

when I run the following commad ,I take a long time to run but without stop.So I used the hbase shell to get the row of the table test and found the row was much bigger than 50

./bin/ycsb load hbase12 -p recordcount=50 -P ./workloads/workloada -p hosts=master -p table=test -p columnfamily=f1 -threads 55

[root@dell-003 YCSB]$ ./bin/ycsb load hbase12 -p recordcount=50 -P ./workloads/workloada -p hosts=master -p table=test -p columnfamily=f1 -threads 55
[WARN] Running against a source checkout. In order to get our runtime dependencies we'll have to invoke Maven. Depending on the state of your system, this may take ~30-45 seconds
[DEBUG] Running 'mvn -pl com.yahoo.ycsb:hbase12-binding -am package -DskipTests dependency:build-classpath -DincludeScope=compile -Dmdep.outputFilterFile=true'
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/bin/java -cp /home/xjm/YCSB/hbase12/conf:/home/xjm/YCSB/hbase12/target/hbase12-binding-0.15.0-SNAPSHOT.jar:/home/xjm/.m2/repository/org/apache/htrace/htrace-core4/4.1.0-incubating/htrace-core4-4.1.0-incubating.jar:/home/xjm/YCSB/core/target/core-0.15.0-SNAPSHOT.jar:/home/xjm/.m2/repository/com/github/stephenc/findbugs/findbugs-annotations/1.3.9-1/findbugs-annotations-1.3.9-1.jar:/home/xjm/.m2/repository/org/hdrhistogram/HdrHistogram/2.1.4/HdrHistogram-2.1.4.jar:/home/xjm/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/home/xjm/.m2/repository/org/apache/htrace/htrace-core/3.1.0-incubating/htrace-core-3.1.0-incubating.jar:/home/xjm/.m2/repository/org/apache/hbase/hbase-shaded-client/1.2.5/hbase-shaded-client-1.2.5.jar:/home/xjm/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar:/home/xjm/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.4/jackson-core-asl-1.9.4.jar:/home/xjm/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/home/xjm/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/home/xjm/YCSB/hbase10/target/hbase10-binding-0.15.0-SNAPSHOT.jar:/home/xjm/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.4/jackson-mapper-asl-1.9.4.jar com.yahoo.ycsb.Client -db com.yahoo.ycsb.db.hbase12.HBaseClient12 -p recordcount=50 -P ./workloads/workloada -p hosts=master -p table=test -p columnfamily=f1 -threads 55 -load
Command line: -db com.yahoo.ycsb.db.hbase12.HBaseClient12 -p recordcount=50 -P ./workloads/workloada -p hosts=master -p table=test -p columnfamily=f1 -threads 55 -load
YCSB Client 0.15.0-SNAPSHOT

Loading workload...
log4j:WARN No appenders could be found for logger (org.apache.htrace.core.Tracer).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Starting test.
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
DBWrapper: report latency for each error is false and specific error codes to track for latency are: []
^CTraceback (most recent call last):
File "./bin/ycsb", line 332, in
sys.exit(main())
File "./bin/ycsb", line 323, in main
return subprocess.call(ycsb_command)
File "/usr/lib64/python2.7/subprocess.py", line 524, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib64/python2.7/subprocess.py", line 1376, in wait
pid, sts = _eintr_retry_call(os.waitpid, self.pid, 0)
File "/usr/lib64/python2.7/subprocess.py", line 478, in _eintr_retry_call
return func(*args)
KeyboardInterrupt

hbase(main):009:0> count 'test'
Current count: 1000, row: user1247668656357586436
Current count: 2000, row: user1491375628047015142
Current count: 3000, row: user1731391436838246180
Current count: 4000, row: user1973988732972337575
Current count: 5000, row: user2219137599687463645
Current count: 6000, row: user2467199353570805052
Current count: 7000, row: user2708448167993830083
Current count: 8000, row: user2952943660882184705
Current count: 9000, row: user3199772409133732119
Current count: 10000, row: user3442919420311020377
Current count: 11000, row: user3685175071150813207
Current count: 12000, row: user3926983846085978686
Current count: 13000, row: user4173139549217872555
Current count: 14000, row: user4414730008935196151
Current count: 15000, row: user4660998796674603117
Current count: 16000, row: user4907940629533663628
Current count: 17000, row: user5151873770438118528
Current count: 18000, row: user5393684936845043281
Current count: 19000, row: user5632145766003063858
Current count: 20000, row: user5879534474766751720
Current count: 21000, row: user6121903210214057647
Current count: 22000, row: user6364707004270293139
Current count: 23000, row: user6608529452038994216
Current count: 24000, row: user6855584369505567824
Current count: 25000, row: user7098399980857501102
Current count: 26000, row: user7341433907427276263
Current count: 27000, row: user7587150588651727092
Current count: 28000, row: user7829293154884006825
Current count: 29000, row: user8071654036334128441
Current count: 30000, row: user8313357580658965134
Current count: 31000, row: user8562084525664775775
Current count: 32000, row: user8807801206889226604
Current count: 33000, row: user9049496897216878986
Current count: 34000, row: user991572774677832446
34029 row(s) in 4.6110 seconds

=> 34029
hbase(main):010:0>

@busbey
Copy link
Collaborator

busbey commented Aug 21, 2018

Great catch! Do you have time to put together a PR to fail fast?

@busbey
Copy link
Collaborator

busbey commented Aug 21, 2018

(or bound the thread count to the number of operations if you prefer)

@adally
Copy link
Contributor Author

adally commented Sep 5, 2018

Hi,I am sorry that I am not familiar with java. So fix this problem is beyond my power. Can you find someone else to fix this bug?

@busbey
Copy link
Collaborator

busbey commented Sep 9, 2018

I'll try. Thanks for the report!

Whomever takes this up, the problem is that the extra threads end up being passed "0" for the record count, which is interpreted as "unlimited". So what we should do is ensure we don't make more threads than record count for load phase and operation count for run phase (probably also output an INFO log message that we're doing so).

adally added a commit to adally/YCSB that referenced this issue Jul 13, 2019
adally added a commit to adally/YCSB that referenced this issue Jul 13, 2019
@busbey busbey closed this as completed in 2ff658c Sep 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants