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

Reply via email to