View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002708 | SymmetricDS | Bug | public | 2016-08-08 11:43 | 2016-08-16 18:57 |
Reporter | nadavyakar | Assigned To | elong | ||
Priority | normal | ||||
Status | closed | Resolution | fixed | ||
Product Version | 3.6.11 | ||||
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. | ||||
Tags | No tags attached. | ||||
has duplicate | 0002707 | closed | symmetric-ds high cpu usage |
|
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 engine.name=ncos-cloudband-001 # The class name for the JncosC Driver db.driver=org.postgresql.Driver # The JncosC URL used to connect to the database db.url=jdbc:postgresql://localhost:5432/ncos i# The user to login as who can create and update tables db.user=### # The password for the user to login as db.password=### # The HTTP URL of the root node to contact for registration registration.url=http://10.166.158.72:32123/sync/ncos-cloudband-001 sync.url=http://10.166.158.72:32123/sync/ncos-cloudband-001 group.id=cloudband1 external.id=cloudband-001 # This is how often the routing job will be run in milliseconds job.routing.period.time.ms=5000 # This is how often the push job will be run. job.push.period.time.ms=1000 # This is how often the pull job will be run. job.pull.period.time.ms=1000 #clear all data on tables on initial load |
|
|
|
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. |
Date Modified | Username | Field | Change |
---|---|---|---|
2016-08-08 11:43 | nadavyakar | New Issue | |
2016-08-12 17:31 | elong | Relationship added | related to 0002707 |
2016-08-12 17:31 | elong | Relationship deleted | related to 0002707 |
2016-08-12 17:32 | elong | Relationship added | has duplicate 0002707 |
2016-08-14 09:16 | nadavyakar | Note Added: 0000837 | |
2016-08-14 09:16 | nadavyakar | File Added: ncos_root_server_setup.sql | |
2016-08-16 13:43 | chenson | Note Added: 0000840 | |
2016-08-16 13:46 | chenson | Note Added: 0000841 | |
2016-08-16 14:37 | nadavyakar | Note Added: 0000843 | |
2016-08-16 15:16 | chenson | Note Added: 0000844 | |
2016-08-16 16:38 | elong | Note Added: 0000845 | |
2016-08-16 16:38 | elong | Assigned To | => elong |
2016-08-16 16:38 | elong | Status | new => resolved |
2016-08-16 16:38 | elong | Resolution | open => fixed |
2016-08-16 16:38 | elong | Fixed in Version | => 3.8.1 |
2016-08-16 16:38 | elong | Target Version | => 3.8.1 |
2016-08-16 17:00 | admin | Changeset attached | => SymmetricDS 3.8 abc2867e |
2016-08-16 18:57 | elong | Status | resolved => closed |