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 <[email protected]> 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 [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
