View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0002708||SymmetricDS||Bug||public||2016-08-08 07:43||2016-08-16 14:57|
|Target Version||3.8.1||Fixed in Version||3.8.1|
|Summary||0002708: symmetric-ds high cpu usage|
|Description||router reader threads consume high CPU:|
after starting to read a transaction's data from the DB in the fillPeekAheadQueue method, the 'reading' boolean is set to false, which prevents this method from ever completing to read the latest transaction's data, causing the calling loop of execute (while (dataCount < maxDataToRoute || (lastTransactionId != null && transactional)) to call this method for ever.
On our heap-dump we have seen this method has been called for about 61 billion times per thread.
Attached please find our symmetric-ds postgres tables initialization file we run upon installation.
In addition, following is the contect of our engine properties file:
# 1=cloudband instance id, ncos=cloudband db, 10.166.158.72=root server ip, 10.166.158.72=this instance ip, 32123=instance port
# The class name for the JncosC Driver
# The JncosC URL used to connect to the database
i# The user to login as who can create and update tables
# The password for the user to login as
# The HTTP URL of the root node to contact for registration
# This is how often the routing job will be run in milliseconds
# This is how often the push job will be run.
# This is how often the pull job will be run.
#clear all data on tables on initial load
ncos_root_server_setup.sql (7,091 bytes)
||There have been a lot of bug fixed since 3.6.11. Have you tried new versions?|
||If you want minimal impact, I'd suggest trying 3.6.17 first. You will probably get the best support for 3.7.37 or 3.8.0. If you go 3.8.0, I'd recommend you do a lot of testing.|
We couldn't identify any code changes between symmetric-ds versions which should have altered this problematic behavior.
Are there any particular bugs which have been resolved between these versions which justifies this kind of an upgrade?
||I was specifically thinking of 2111 and 2112. We do see what you are saying, and will add some defensive code.|
||Checking in defensive code fix to fillPeekAheadQueue() for version 3.8.1, which should release soon.|
|2016-08-08 07:43||nadavyakar||New Issue|
|2016-08-12 13:31||elong||Relationship added||related to 0002707|
|2016-08-12 13:31||elong||Relationship deleted||related to 0002707|
|2016-08-12 13:32||elong||Relationship added||has duplicate 0002707|
|2016-08-14 05:16||nadavyakar||Note Added: 0000837|
|2016-08-14 05:16||nadavyakar||File Added: ncos_root_server_setup.sql|
|2016-08-16 09:43||chenson||Note Added: 0000840|
|2016-08-16 09:46||chenson||Note Added: 0000841|
|2016-08-16 10:37||nadavyakar||Note Added: 0000843|
|2016-08-16 11:16||chenson||Note Added: 0000844|
|2016-08-16 12:38||elong||Note Added: 0000845|
|2016-08-16 12:38||elong||Assigned To||=> elong|
|2016-08-16 12:38||elong||Status||new => resolved|
|2016-08-16 12:38||elong||Resolution||open => fixed|
|2016-08-16 12:38||elong||Fixed in Version||=> 3.8.1|
|2016-08-16 12:38||elong||Target Version||=> 3.8.1|
|2016-08-16 13:00||admin||Changeset attached||=> SymmetricDS 3.8 abc2867e|
|2016-08-16 14:57||elong||Status||resolved => closed|