mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
Merge perch.ndb.mysql.com:/home/jonas/src/51-work
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new
This commit is contained in:
commit
a1e5f5b061
3 changed files with 29 additions and 8 deletions
|
@ -34,7 +34,8 @@ public:
|
||||||
bool allowConstraintViolation = true,
|
bool allowConstraintViolation = true,
|
||||||
int doSleep = 0,
|
int doSleep = 0,
|
||||||
bool oneTrans = false,
|
bool oneTrans = false,
|
||||||
int updateValue = 0);
|
int updateValue = 0,
|
||||||
|
bool abort = false);
|
||||||
|
|
||||||
int scanReadRecords(Ndb*,
|
int scanReadRecords(Ndb*,
|
||||||
int records,
|
int records,
|
||||||
|
|
|
@ -519,7 +519,8 @@ HugoTransactions::loadTable(Ndb* pNdb,
|
||||||
bool allowConstraintViolation,
|
bool allowConstraintViolation,
|
||||||
int doSleep,
|
int doSleep,
|
||||||
bool oneTrans,
|
bool oneTrans,
|
||||||
int value){
|
int value,
|
||||||
|
bool abort){
|
||||||
int check, a;
|
int check, a;
|
||||||
int retryAttempt = 0;
|
int retryAttempt = 0;
|
||||||
int retryMax = 5;
|
int retryMax = 5;
|
||||||
|
@ -585,10 +586,22 @@ HugoTransactions::loadTable(Ndb* pNdb,
|
||||||
if (!oneTrans || (c + batch) >= records) {
|
if (!oneTrans || (c + batch) >= records) {
|
||||||
// closeTrans = true;
|
// closeTrans = true;
|
||||||
closeTrans = false;
|
closeTrans = false;
|
||||||
check = pTrans->execute( Commit );
|
if (!abort)
|
||||||
if(check != -1)
|
{
|
||||||
m_latest_gci = pTrans->getGCI();
|
check = pTrans->execute( Commit );
|
||||||
pTrans->restart();
|
if(check != -1)
|
||||||
|
m_latest_gci = pTrans->getGCI();
|
||||||
|
pTrans->restart();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
check = pTrans->execute( NoCommit );
|
||||||
|
if (check != -1)
|
||||||
|
{
|
||||||
|
check = pTrans->execute( Rollback );
|
||||||
|
closeTransaction(pNdb);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
closeTrans = false;
|
closeTrans = false;
|
||||||
check = pTrans->execute( NoCommit );
|
check = pTrans->execute( NoCommit );
|
||||||
|
|
|
@ -31,6 +31,8 @@ int main(int argc, const char** argv){
|
||||||
int _batch = 512;
|
int _batch = 512;
|
||||||
int _loops = -1;
|
int _loops = -1;
|
||||||
int _rand = 0;
|
int _rand = 0;
|
||||||
|
int _onetrans = 0;
|
||||||
|
int _abort = 0;
|
||||||
const char* db = 0;
|
const char* db = 0;
|
||||||
|
|
||||||
struct getargs args[] = {
|
struct getargs args[] = {
|
||||||
|
@ -39,7 +41,9 @@ int main(int argc, const char** argv){
|
||||||
{ "loops", 'l', arg_integer, &_loops, "Number of loops", "" },
|
{ "loops", 'l', arg_integer, &_loops, "Number of loops", "" },
|
||||||
{ "database", 'd', arg_string, &db, "Database", "" },
|
{ "database", 'd', arg_string, &db, "Database", "" },
|
||||||
{ "usage", '?', arg_flag, &_help, "Print help", "" },
|
{ "usage", '?', arg_flag, &_help, "Print help", "" },
|
||||||
{ "rnd-rows", 0, arg_flag, &_rand, "Rand number of records", "recs" }
|
{ "rnd-rows", 0, arg_flag, &_rand, "Rand number of records", "recs" },
|
||||||
|
{ "one-trans", 0, arg_flag, &_onetrans, "Insert as 1 trans", "" },
|
||||||
|
{ "abort", 0, arg_integer, &_abort, "Abort probability", "" }
|
||||||
};
|
};
|
||||||
int num_args = sizeof(args) / sizeof(args[0]);
|
int num_args = sizeof(args) / sizeof(args[0]);
|
||||||
int optind = 0;
|
int optind = 0;
|
||||||
|
@ -92,10 +96,13 @@ int main(int argc, const char** argv){
|
||||||
HugoTransactions hugoTrans(*pTab);
|
HugoTransactions hugoTrans(*pTab);
|
||||||
loop:
|
loop:
|
||||||
int rows = (_rand ? rand() % _records : _records);
|
int rows = (_rand ? rand() % _records : _records);
|
||||||
|
int abort = (rand() % 100) < _abort ? 1 : 0;
|
||||||
|
if (abort)
|
||||||
|
ndbout << "load+abort" << endl;
|
||||||
if (hugoTrans.loadTable(&MyNdb,
|
if (hugoTrans.loadTable(&MyNdb,
|
||||||
rows,
|
rows,
|
||||||
_batch,
|
_batch,
|
||||||
true, 0, false, _loops) != 0){
|
true, 0, _onetrans, _loops, abort) != 0){
|
||||||
return NDBT_ProgramExit(NDBT_FAILED);
|
return NDBT_ProgramExit(NDBT_FAILED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue