[ https://forge.continuent.org/jira/browse/SEQUOIA-1030?page=all ]
Robert Hodges resolved SEQUOIA-1030:
------------------------------------
Resolution: Fixed
Fixed checked into CVS. The general approach is as follows:
1. Log SQLExceptions once only for reads. They always percolated up to
VirtualDatabaseWorkerThread which takes care of logging.
2. Log SQLExceptions a minimal number of times for writes. This includes the
following:
- Once when the error occurs. This ensures we see a message on each
controller.
- Once for each controller that reports a distributed failure. This message
confirms consistent failures.
- Once in the general SQLException logging within VirtualDatabaseWorkerThread.
This results in 4 messages on the controller that handles the connection and
one for the other controller.
All of these messages are at INFO level. Any other messages along the way have
been reduced to DEBUG level.
> Applications with large numbers of SQL syntax errors fill up full_cluster.log
> with extraneous warnings and messages
> -------------------------------------------------------------------------------------------------------------------
>
> Key: SEQUOIA-1030
> URL: https://forge.continuent.org/jira/browse/SEQUOIA-1030
> Project: Sequoia
> Type: Improvement
> Versions: Sequoia 2.10.9
> Environment: All environments
> Reporter: Robert Hodges
> Assignee: Robert Hodges
> Fix For: sequoia 2.10.10
>
>
> SQL syntax failures create a ridiculous number of extra message in the logs
> and makes it very hard to detect other problems. For example, take the
> following very simple DDL statement failure:
> mysql> create table auto_test(id int, val int);
> ERROR 1050 (42S01): Table 'auto_test' already exists
> This generates multiple errors and warnings with an unnecessary stack trace
> in the log:
> 2008-02-07 19:33:26,104 ERROR controller.loadbalancer.RAIDb1 write request
> 56294995 3421802 failed:
> Backend cluster - BackendWorkerThread for backend 'loon_db' with RAIDb
> level:1 fail ed (Table 'auto_test' already exists)
> 2008-02-07 19:33:26,104 WARN controller.RequestManager.cluster SQLException
> while executing distributed write request write request 562949953421802
> failed:
> Backend cluster - BackendWorkerThread for backend 'loon_db' with RAIDb
> level:1 fail ed (Table 'auto_test' already exists)
> java.sql.SQLException: write request 562949953421802 failed:
> Backend cluster - BackendWorkerThread for backend 'loon_db' with RAIDb
> level:1 fail ed (Table 'auto_test' already exists)
> at
> org.continuent.sequoia.common.exceptions.SQLExceptionFactory.getSQLExcep
> tion(SQLExceptionFactory.java:88)
> at
> org.continuent.sequoia.controller.loadbalancer.raidb1.RAIDb1.checkTaskCo
> mpletion(RAIDb1.java:955)
> at
> org.continuent.sequoia.controller.loadbalancer.raidb1.RAIDb1.execWriteRe
> quest(RAIDb1.java:345)
> at
> org.continuent.sequoia.controller.loadbalancer.raidb1.RAIDb1.statementEx
> ecuteUpdate(RAIDb1.java:251)
> at
> org.continuent.sequoia.controller.requestmanager.RequestManager.loadBala
> nceStatementExecuteUpdate(RequestManager.java:926)
> at
> org.continuent.sequoia.controller.virtualdatabase.protocol.DistributedSt
> atementExecuteUpdate.executeScheduledRequest(DistributedStatementExecuteUpdate.java
> :87)
> at
> org.continuent.sequoia.controller.virtualdatabase.protocol.DistributedRe
> quest.handleMessageMultiThreaded(DistributedRequest.java:157)
> at
> org.continuent.sequoia.controller.virtualdatabase.DistributedVirtualData
> base.handleMessageMultiThreaded(DistributedVirtualDatabase.java:368)
> at
> org.continuent.hedera.adapters.MulticastRequestAdapterThread.run(Multica
> stRequestAdapterThread.java:102)
> 2008-02-07 19:33:26,109 WARN controller.RequestManager.cluster Request
> 56294995342 1802 failed on controller Member(address=coot/172.16.10.221:6523,
> uid=cluster) (jav a.sql.SQLException: write request 562949953421802 failed:
> Backend cluster - BackendWorkerThread for backend 'coot_db' with RAIDb
> level:1 fail ed (Table 'auto_test' already exists)
> )
> 2008-02-07 19:33:26,109 WARN controller.RequestManager.cluster Request
> 56294995342 1802 failed on controller Member(address=loon/172.16.10.220:6523,
> uid=cluster) (jav a.sql.SQLException: write request 562949953421802 failed:
> Backend cluster - BackendWorkerThread for backend 'loon_db' with RAIDb
> level:1 fail ed (Table 'auto_test' already exists)
> )
> 2008-02-07 19:33:26,115 WARN controller.RequestManager.cluster Request
> create tabl e auto_test(id int, val int) failed (write request
> 562949953421802 failed:
> Backend cluster - BackendWorkerThread for backend 'loon_db' with RAIDb
> level:1 fail ed (Table 'auto_test' already exists)
> )
> 2008-02-07 19:33:26,115 WARN controller.virtualdatabase.cluster Request
> '562949953 421802' failed (write request 562949953421802 failed:
> Backend cluster - BackendWorkerThread for backend 'loon_db' with RAIDb
> level:1 fail ed (Table 'auto_test' already exists)
> )
> 2008-02-07 19:33:26,115 WARN
> virtualdatabase.VirtualDatabaseWorkerThread.cluster E rror during command
> execution (write request 562949953421802 failed:
> Backend cluster - BackendWorkerThread for backend 'loon_db' with RAIDb
> level:1 fail ed (Table 'auto_test' already exists)
> )
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://forge.continuent.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia