8000 Add initial size to insbench · postgrespro/postgres_cluster@a6e66c3 · GitHub
[go: up one dir, main page]

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit a6e66c3

Browse files
committed
Add initial size to insbench
1 parent 5fe774c commit a6e66c3

File tree

3 files changed

+36
-6
lines changed

3 files changed

+36
-6
lines changed

src/backend/commands/indexcmds.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,8 +310,8 @@ AlterIndex(Oid indexRelationId, IndexStmt *stmt)
310310

311311
/* Open the target index relation */
312312
/* indexRelation = index_open(indexRelationId, RowExclusiveLock); */
313-
//indexRelation = index_open(indexRelationId, ShareUpdateExclusiveLock);
314-
indexRelation = index_open(indexRelationId, AccessShareLock);
313+
indexRelation = index_open(indexRelationId, ShareUpdateExclusiveLock);
314+
/* indexRelation = index_open(indexRelationId, AccessShareLock); */
315315
namespaceId = RelationGetNamespace(indexRelation);
316316

317317
pg_index = heap_open(IndexRelationId, RowExclusiveLock);

src/backend/tcop/utility.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1244,7 +1244,7 @@ ProcessUtilitySlow(Node *parsetree,
12441244
* eventually be needed here, so the lockmode calculation
12451245
* needs to match what DefineIndex() does.
12461246
*/
1247-
lockmode = stmt->is_alter ? AccessShareLock : stmt->concurrent ? ShareUpdateExclusiveLock
1247+
lockmode = stmt->is_alter || stmt->concurrent ? ShareUpdateExclusiveLock
12481248
: ShareLock;
12491249
relid =
12501250
RangeVarGetRelidExtended(stmt->relation, lockmode,

src/bin/insbench/insbench.cpp

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,13 @@ struct config
4141
int nIndexes;
4242
int nIterations;
4343
int transactionSize;
44+
int initialSize;
4445
bool useSystemTime;
4546
bool noPK;
4647
string connection;
4748

4849
config() {
50+
initialSize = 1000000;
4951
indexUpdateInterval = 0;
5052
nInserters = 1;
5153
nIndexes = 8;
@@ -142,8 +144,8 @@ void* indexUpdater(void* arg)
142144

143145
void initializeDatabase()
144146
{
145-
connection conn(cfg.connection);
146-
work txn(conn);
147+
connection con(cfg.connection);
148+
work txn(con);
147149
time_t now = getCurrentTime();
148150
exec(txn, "drop table if exists t");
149151
exec(txn, "create table t (pk bigint, k1 bigint, k2 bigint, k3 bigint, k4 bigint, k5 bigint, k6 bigint, k7 bigint, k8 bigint)");
@@ -159,6 +161,31 @@ void initializeDatabase()
159161
exec(txn, "create index idx%d on t(k%d) where pk<%ld", i, i+1, 0);
160162
}
161163
}
164+
165+
if (cfg.initialSize)
166+
{
167+
if (cfg.useSystemTime)
168+
{
169+
#if PQXX_VERSION_MAJOR >= 4
170+
con.prepare("insert", "insert into t values ($1,$2,$3,$4,$5,$6,$7,$8,$9)");
171+
#else
172+
con.prepare("insert", "insert into t values ($1,$2,$3,$4,$5,$6,$7,$8,$9)")("bigint")("bigint")("bigint")("bigint")("bigint")("bigint")("bigint")("bigint")("bigint");
173+
#endif
174+
} else {
175+
con.prepare("insert", "insert into t (select generate_series($1::integer,$2::integer),ceil(random()*1000000000),ceil(random()*1000000000),ceil(random()*1000000000),ceil(random()*1000000000),ceil(random()*1000000000),ceil(random()*1000000000),ceil(random()*1000000000),ceil(random()*1000000000))");
176+
}
177+
if (cfg.useSystemTime)
178+
{
179+
for (int i = 0; i < cfg.initialSize; i++)
180+
{
181+
txn.prepared("insert")(getCurrentTime())(random())(random())(random())(random())(random())(random())(random())(random()).exec();
182+
}
183+
} else {
184+
txn.prepared("insert")(cfg.initialSize)(cfg.initialSize-1).exec();
185+
currTimestamp = cfg.initialSize;
186+
}
187+
txn.exec("vacuum analyze");
188+
}
162189
txn.commit();
163190
}
164191

@@ -185,9 +212,12 @@ int main (int argc, char* argv[])
185212
case 'n':
186213
cfg.nIterations = at 7557 oi(argv[++i]);
187214
continue;
188-
case 'i':
215+
case 'x':
189216
cfg.nIndexes = atoi(argv[++i]);
190217
continue;
218+
case 'i':
219+
cfg.initialSize = atoi(argv[++i]);
220+
continue;
191221
case 'c':
192222
cfg.connection = string(argv[++i]);
193223
continue;

0 commit comments

Comments
 (0)
0