I am using Sequoia 2.10.9 for a proof of concept. The configuration I have is
using one Sequoia controller, with 2 MySQL backends (Raidb1). All tables are
Innodb.
Each backend is created on a separate MySQL server, and the recovery db is
collocated with one of the backends. The 2 MySQL servers are located on 2
different machines, so perhaps a network latency can also interfere.
Everything works fine, until I try load testing this configuration. If I run a
JMeter test for 5 concurrent users, I have a lock error on one of the backends,
which is disabled as result of the lock.
*********************************
2008-01-21 18:49:03,312 ERROR backend.DatabaseBackend.cg113-seq2 Request
'update log_call_session set call_type=?,...' failed on backend cg113-seq2 but
1 succeeded (java.sql.SQLException: Lock wait timeout exceeded; try restarting
transaction)
2008-01-21 18:49:03,312 WARN backend.DatabaseBackend.cg113-seq2 Task
execution failed (java.sql.SQLException: Request 'update log_call_session set
call_type=?,...'
***********************************
I searched on the user group for this error, and I found some references to
it. The answer there was that the deadlock is an application issue, and it is
just revealed by Sequoia sooner because writing operations
(http://www.mail-archive.com/[email protected]/msg02030.html).
However, if I use the mysql driver instead of sequoia, I can run a JMeter load
test for more than 200 concurrent users and I still get no deadlock, as I got
using Sequoia.
I am wondering what can I do to avoid deadlock. Is there any configuration
that I can add? Is it something with respect to deployment? If I cannot resolve
the deadlock situation, I just cannot use Sequoia as a viable option. Please
advise.
Below it is the vdb configuration I am using:
Thanks,
Patricia
<VirtualDatabase name="myDB">
<Distribution>
<MessageTimeouts/>
</Distribution>
<Backup>
<Backuper backuperName="MySQLBackuper"
className="org.continuent.sequoia.controller.backup.backupers.MySQLBackuper"
/>
</Backup>
<AuthenticationManager>
<Admin>
<User username="admin" password="admin"/>
</Admin>
<VirtualUsers>
<VirtualLogin vLogin="sequoia_user" vPassword=""/>
</VirtualUsers>
</AuthenticationManager>
<DatabaseBackend name="localhost1" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.101:3306/poundtaxi_seq1"
connectionTestStatement="select 1">
<ConnectionManager vLogin="sequoia_user" rLogin="root" rPassword="root">
<VariablePoolConnectionManager initPoolSize="40" maxPoolSize="100"
idleTimeout="30" waitTimeout="10"/>
</ConnectionManager>
</DatabaseBackend>
<DatabaseBackend name="localhost2" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.102:3306/poundtaxi_seq2"
connectionTestStatement="select 1">
<ConnectionManager vLogin="sequoia_user" rLogin="root"
rPassword="root">
<VariablePoolConnectionManager initPoolSize="40"
maxPoolSize="100" idleTimeout="30" waitTimeout="10"/>
</ConnectionManager>
</DatabaseBackend>
<RequestManager>
<RequestScheduler>
<RAIDb-1Scheduler level="passThrough"/>
</RequestScheduler>
<LoadBalancer>
<RAIDb-1>
<WaitForCompletion policy="first"/>
<RAIDb-1-LeastPendingRequestsFirst/>
</RAIDb-1>
</LoadBalancer>
<RecoveryLog driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.101:3306/poundtaxi_recovery" login="root"
password="root">
<RecoveryLogTable tableName="RECOVERY" logIdColumnType="BIGINT NOT
NULL"
vloginColumnType="VARCHAR(255) NOT NULL" sqlColumnName="sql_name"
sqlColumnType="BLOB NOT NULL"
sqlParamColumnType="BLOB"
extraStatementDefinition=",PRIMARY KEY (log_id)"/>
<CheckpointTable tableName="CHECKPOINT"
checkpointNameColumnType="VARCHAR(255) NOT NULL"/>
<BackendTable tableName="BACKEND"
databaseNameColumnType="VARCHAR(255) NOT NULL"
backendNameColumnType="VARCHAR(255) NOT NULL"
checkpointNameColumnType="VARCHAR(255) NOT NULL"/>
<DumpTable tableName="DUMP" dumpNameColumnType="VARCHAR(255) NOT NULL"
dumpDateColumnType="TIMESTAMP"
dumpPathColumnType="VARCHAR(255) NOT NULL"
dumpFormatColumnType="VARCHAR(255) NOT NULL"
checkpointNameColumnType="VARCHAR(255) NOT NULL"
backendNameColumnType="VARCHAR(255) NOT NULL"
tablesColumnName="tablez"
tablesColumnType="VARCHAR(255) NOT NULL"/>
</RecoveryLog>
</RequestManager>
</VirtualDatabase>
---------------------------------
Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now._______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia