Hi, > trying to narrow down the causes we ran JDBCBench > (http://developer.mimer.com/features/JDBCprogs/JDBCBench.java) against > our sequoia db.
This benchmark does mostly sequential writes to the same table so there is basically no parallelism that you can get from such workload. Writes are very simple, so they are fast on the database and they all have to be serialized (which is about the worst case you can get). You obtain about 500 tx/s without Sequoia which means that each tx is about 2ms. The latency seems to increase to 10ms with Sequoia (8ms overhead) which is possible depending on your configuration (using a dedicated machine, colocating controller with App Server or database...). I can't really explain the recovery log overhead on the controller since the recovery log is fully asynchronous. The only reason I see is that you are using Postgres for both data and recovery log and that is going to affect both the performance of the queries and the recovery log. I would recommend using a separate database for the recovery log. Finally the distribution overhead greatly depends on your group communication settings (that you did not provide). This group communication overhead occurs for every write query sent to Sequoia. Hope this will help you understand the results you get, Emmanuel PS: I'm currently traveling and can't access the web very often, so you have to expect some delays in my responses! > > these are our results so far: > > 1) postgresql without sequoia: > > ~500 tx/s > > 2) sequoia without Recovery Log, with Distribution > > ~100 tx/s > > 3) sequoia without distribution, with recovery log > > ~40 tx/s > > 4) sequoia with recovery log, with distribution > > ~5 tx/s > > this was one controller with one postgresql node. > we plan to use two controllers each with one postgresql node. > as our database setup needs to be fault tolerant we planned to use setup > 4. however the current performance results would rule out sequoia. > > i've attached our current configuration. i'd appreciate any comments on > how to increase the performance. > > Environment: > sequoia v. 2.10.10 > java: jdk 1.5.0_15 (additional options: -Xmx512m -server) > OS: linux > DB: postgresql 8.2.6 > > controller.xml: > > <?xml version="1.0" encoding="UTF-8" ?> > > <!DOCTYPE SEQUOIA-CONTROLLER PUBLIC "-//Continuent//DTD > SEQUOIA-CONTROLLER 2.10.10//EN" > "http://sequoia.continuent.org/dtds/sequoia-controller-2.10.10.dtd"> > > <SEQUOIA-CONTROLLER> > <Controller port="25322" ipAddress="a.b.c.d."> > <Report hideSensitiveData="true" generateOnShutdown="true" > generateOnFatal="true" enableFileLogging="true" /> > > <JmxSettings> > <RmiJmxAdaptor username="username" password="password" > port="50090" serverPort="50200"/> > </JmxSettings> > > <VirtualDatabase configFile="mps-postgres-1.xml" > virtualDatabaseName="mpsPostgres" > autoEnableBackends="true" /> > > </Controller> > </SEQUOIA-CONTROLLER> > > mps-postgres-1.xml: > > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE SEQUOIA PUBLIC "-//Continuent//DTD SEQUOIA 2.10.10//EN" > "http://sequoia.continuent.org/dtds/sequoia-2.10.10.dtd"> > > <SEQUOIA> > > <VirtualDatabase name="mpsPostgres"> > > <Distribution groupName="mpsGroup"> > <MessageTimeouts /> > </Distribution> > <!-- > <Monitoring> > <SQLMonitoring defaultMonitoring="off"> > <SQLMonitoringRule queryPattern="^select" > caseSensitive="false" applyToSkeleton="false" monitoring="on" /> > </SQLMonitoring> > </Monitoring> > --> > <Backup> > <Backuper backuperName="Octopus" > > className="org.continuent.sequoia.controller.backup.backupers.PostgreSQLBinaryBackuper" > options="authentication=true" /> > </Backup> > > <AuthenticationManager> > <Admin> > <User username="admin" password="password" /> > </Admin> > > <VirtualUsers> > <VirtualLogin vLogin="mps" vPassword="password" /> > </VirtualUsers> > </AuthenticationManager> > > <DatabaseBackend name="node1" driver="org.postgresql.Driver" > url="jdbc:postgresql://a.b.c.d:5432/mps" > connectionTestStatement="select now()"> > > <DatabaseSchema dynamicPrecision="table" > gatherSystemTables="true"> > <DefaultStoredProcedureSemantic hasSelect="true" > hasInsert="true" hasUpdate="true" hasDelete="true" > hasDDL="false" hasTransaction="false" > isCausallyDependent="true" isCommutative="false" /> > </DatabaseSchema> > <ConnectionManager vLogin="mps" > > <VariablePoolConnectionManager initPoolSize="10" minPoolSize="5" > maxPoolSize="100" idleTimeout="30" waitTimeout="10" /> > </ConnectionManager> > </DatabaseBackend> > > <RequestManager> > <RequestScheduler> > <RAIDb-1Scheduler level="passThrough" /> > </RequestScheduler> > > <RequestCache> > <MetadataCache /> > <ParsingCache /> > <!-- <ResultCache granularity="table"/> --> > </RequestCache> > > <LoadBalancer> > <RAIDb-1> > <WaitForCompletion policy="first" /> > <RAIDb-1-LeastPendingRequestsFirst /> > </RAIDb-1> > </LoadBalancer> > > <RecoveryLog driver="org.postgresql.Driver" > url="jdbc:postgresql://a.b.c.d:5432/cluster" > login="cluster" password="password" idleConnectionTimeout="60"> > <RecoveryLogTable tableName="recovery" > logIdColumnType="BIGINT NOT NULL" > vloginColumnType="VARCHAR NOT NULL" > sqlColumnType="VARCHAR NOT NULL" > extraStatementDefinition=",PRIMARY KEY (log_id)" /> > <CheckpointTable tableName="checkpoint" > checkpointNameColumnType="VARCHAR NOT NULL" /> > <BackendTable tableName="backend" > databaseNameColumnType="VARCHAR NOT NULL" > backendNameColumnType="VARCHAR NOT NULL" > checkpointNameColumnType="VARCHAR NOT NULL" /> > <DumpTable tableName="dump" > dumpNameColumnType="VARCHAR NOT NULL" > dumpDateColumnType="TIMESTAMP" > dumpPathColumnType="VARCHAR NOT NULL" > dumpFormatColumnType="VARCHAR NOT NULL" > checkpointNameColumnType="VARCHAR NOT NULL" > backendNameColumnType="VARCHAR NOT NULL" > tablesColumnType="VARCHAR NOT NULL" /> > </RecoveryLog> > > </RequestManager> > > </VirtualDatabase> > > </SEQUOIA> > > _______________________________________________ > Sequoia mailing list > [email protected] > https://forge.continuent.org/mailman/listinfo/sequoia > _______________________________________________ Sequoia mailing list [email protected] https://forge.continuent.org/mailman/listinfo/sequoia
