DepSynch update/commit on manager node is designed to run with deployment
scheduler task. So on every run, we check whether any changes to the local
repo and then commit those to remote. The above trace is for doing a svn
status check and find whether there are any local file changes
(modification, addition etc) before deciding on executing the svn commit
command.

The above can run only on a manager / read-write node. What's the impact
with performance? Are we seeing any bottleneck with this task running or is
the resource consumption?

On Mon, Nov 7, 2016 at 1:35 PM, Isuru Perera <isu...@wso2.com> wrote:

> Hi,
>
> When analyzing a performance issue using Java Flight Recorder, I noticed
> that the server is running Deployment Synchronizer task most of the time.
>
> Please see the stack trace below.
>
>
> Stack Trace    Sample Count    Percentage(%)
> java.util.Stack.peek()    20    1.661
>    org.tmatesoft.sqljet.core.internal.table.SqlJetBtreeTable.getCurrentState()
> 20    1.661
>       org.tmatesoft.sqljet.core.internal.table.
> SqlJetBtreeTable.getCursor()    19    1.578
>          org.tmatesoft.sqljet.core.internal.table.SqlJetBtreeTable.hasMoved()
> 11    0.914
>             org.tmatesoft.sqljet.core.internal.table.SqlJetBtreeTable.eof()
> 10    0.831
>                org.tmatesoft.sqljet.core.internal.table.
> SqlJetBtreeTable.getRecord()    8    0.664
>                   org.tmatesoft.sqljet.core.internal.table.
> SqlJetBtreeTable.getValueMem(int)    6    0.498
>                      org.tmatesoft.sqljet.core.internal.table.
> SqlJetBtreeDataTable.getValueMem(int)    6    0.498
>                         org.tmatesoft.sqljet.core.internal.table.
> SqlJetBtreeTable.getValueUncached(int)    6    0.498
>                            org.tmatesoft.sqljet.core.internal.table.
> SqlJetBtreeTable.getValue(int)    6    0.498
>                               org.tmatesoft.sqljet.core.internal.table.
> SqlJetBtreeDataTable.getValue(int)    6    0.498
>                                  org.tmatesoft.sqljet.core.internal.table.
> SqlJetBtreeTable.getValues()    6    0.498
>                                     org.tmatesoft.sqljet.core.
> internal.table.SqlJetTableDataCursor$16.run(SqlJetDb)    6    0.498
>                                        org.tmatesoft.sqljet.core.
> table.SqlJetDb$3.run(SqlJetEngine)    6    0.498
>                                           org.tmatesoft.sqljet.core.
> table.engine.SqlJetEngine$12.runSynchronized(SqlJetEngine)    6    0.498
>                                              org.tmatesoft.sqljet.core.
> table.engine.SqlJetEngine.runSynchronized(ISqlJetEngineSynchronized)
> 6    0.498
>                                                 org.tmatesoft.sqljet.core.
> table.engine.SqlJetEngine.runEngineTransaction(ISqlJetEngineTransaction,
> SqlJetTransactionMode)    6    0.498
>
> org.tmatesoft.sqljet.core.table.SqlJetDb.runTransaction(ISqlJetTransaction,
> SqlJetTransactionMode)    6    0.498
>
> org.tmatesoft.sqljet.core.table.SqlJetDb.runReadTransaction(ISqlJetTransaction)
> 6    0.498
>
> org.tmatesoft.sqljet.core.internal.table.SqlJetTableDataCursor.getRowValues()
> 6    0.498
>
> org.tmatesoft.svn.core.internal.db.SVNSqlJetSelectStatement.getRowValues2(Map)
> 5    0.415
>
> org.tmatesoft.svn.core.internal.db.SVNSqlJetSelectStatement.loadRowValues(boolean)
> 5    0.415
>
> org.tmatesoft.svn.core.internal.db.SVNSqlJetSelectStatement.next()
> 5    0.415
>
> org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.addChildren(Set,
> SVNSqlJetStatement)    2    0.166
>
> org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.gatherChildren(File,
> boolean, boolean)    2    0.166
>
> org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.readChildren(File)
> 2    0.166
>
> org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCleanup.repairTimestamps(SVNWCContext,
> File)    2    0.166
>
> org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCleanup.repairTimestamps(SVNWCContext,
> File)    2    0.166
>
> org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCleanup.repairTimestamps(SVNWCContext,
> File)    2    0.166
>
> org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCleanup.repairTimestamps(SVNWCContext,
> File)    2    0.166
>
> org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCleanup.cleanupInternal(SVNWCContext,
> File)    1    0.083
>
>                                  org.tmatesoft.svn.core.
> internal.wc2.ng.SvnNgCleanup.cleanup(SVNWCContext, File)    1    0.083
>
>                                     org.tmatesoft.svn.core.
> internal.wc2.ng.SvnNgCleanup.run(SVNWCContext)    1    0.083
>
>                                        org.tmatesoft.svn.core.
> internal.wc2.ng.SvnNgCleanup.run(SVNWCContext)    1    0.083
>
>                                           org.tmatesoft.svn.core.
> internal.wc2.ng.SvnNgOperationRunner.run()    1    0.083
>
>                                              org.tmatesoft.svn.core.
> internal.wc2.SvnOperationRunner.run(SvnOperation)    1    0.083
>
>
> org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperation)    1
> 0.083
>
>
> org.tmatesoft.svn.core.wc2.SvnOperation.run()    1    0.083
>
>
> org.tmatesoft.svn.core.javahl17.SVNClientImpl.cleanup(String)    1
> 0.083
>
>
> org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.cleanup(File)
> 1    0.083
>
>
> org.wso2.carbon.deployment.synchronizer.subversion.
> SVNBasedArtifactRepository.commit(int, String)    1    0.083
>
>
> org.wso2.carbon.deployment.synchronizer.DeploymentSynchronizer.commit()
> 1    0.083
>
>
> org.wso2.carbon.deployment.synchronizer.internal.
> DeploymentSynchronizerServiceImpl.commit(int)    1    0.083
>
>
> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.deploymentSyncCommit()
> 1    0.083
>
>
> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run()
> 1    0.083
>
>
> java.util.concurrent.Executors$RunnableAdapter.call()    1    0.083
>
>
> java.util.concurrent.FutureTask.runAndReset()    1    0.083
>
>
> java.util.concurrent.ScheduledThreadPoolExecutor$
> ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor$ScheduledFutureTask)
> 1    0.083
>
>
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run()
> 1    0.083
>
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)
> 1    0.083
>
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run()    1    0.083
>
>
>                                  java.lang.Thread.run()    1    0.083
>
> Why is this running periodically? How to configure the time period?
>

This can be configured via carbon.xml (DeploymentUpdateInterval), but this
is the same task that does the deployment too (on every 15 sec). I would
recommend not to change this.

Is there a way to disable this scheduled task  and update only when there's
> a notification?
>

This is run only on a read-write node. So we have to have this as there is
no other way to find out whether there were any local modification and then
commit those to remote.


>
> Product is WSO2 API Manager 1.10.
>
> Thanks!
>
> Best Regards,
>
> --
> Isuru Perera
> Associate Technical Lead | WSO2, Inc. | http://wso2.com/
> Lean . Enterprise . Middleware
>
> about.me/chrishantha
> Contact: +IsuruPereraWSO2 <https://www.google.com/+IsuruPereraWSO2/about>
>



-- 
*Kishanthan Thangarajah*
Technical Lead,
Platform Technologies Team,
WSO2, Inc.
lean.enterprise.middleware

Mobile - +94773426635
Blog - *http://kishanthan.wordpress.com <http://kishanthan.wordpress.com>*
Twitter - *http://twitter.com/kishanthan <http://twitter.com/kishanthan>*
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to