Skip to content

Commit e0817d0

Browse files
committed
Add support for per-pagespace I/O statistics. Deprecate non-extendable PerformanceInfo struct in favor of the new PerformanceCounters/PerformanceStats interfaces. Adjust the trace implementation to the new API.
1 parent 9304339 commit e0817d0

File tree

12 files changed

+1502
-272
lines changed

12 files changed

+1502
-272
lines changed

src/include/firebird/FirebirdInterface.idl

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1364,6 +1364,9 @@ interface TraceTransaction : Versioned
13641364
version: // 3.0.4 -> 3.0.5
13651365
int64 getInitialID();
13661366
int64 getPreviousID();
1367+
1368+
version: // 5.0 -> 6.0
1369+
PerformanceStats getPerfStats();
13671370
}
13681371

13691372
interface TraceParams : Versioned
@@ -1379,6 +1382,9 @@ interface TraceStatement : Versioned
13791382
{
13801383
int64 getStmtID();
13811384
PerformanceInfo* getPerf();
1385+
1386+
version: // 5.0 -> 6.0
1387+
PerformanceStats getPerfStats();
13821388
}
13831389

13841390
interface TraceSQLStatement : TraceStatement
@@ -1421,6 +1427,9 @@ version: // 4.0 -> 5.0
14211427
int64 getStmtID();
14221428
const string getPlan();
14231429
const string getExplainedPlan();
1430+
1431+
version: // 5.0 -> 6.0
1432+
PerformanceStats getPerfStats();
14241433
}
14251434

14261435
interface TraceFunction : Versioned
@@ -1434,6 +1443,9 @@ version: // 4.0 -> 5.0
14341443
int64 getStmtID();
14351444
const string getPlan();
14361445
const string getExplainedPlan();
1446+
1447+
version: // 5.0 -> 6.0
1448+
PerformanceStats getPerfStats();
14371449
}
14381450

14391451
interface TraceTrigger : Versioned
@@ -1456,6 +1468,9 @@ version: // 4.0 -> 5.0
14561468
int64 getStmtID();
14571469
const string getPlan();
14581470
const string getExplainedPlan();
1471+
1472+
version: // 5.0 -> 6.0
1473+
PerformanceStats getPerfStats();
14591474
}
14601475

14611476
interface TraceServiceConnection : TraceConnection
@@ -1480,6 +1495,9 @@ interface TraceSweepInfo : Versioned
14801495
int64 getOAT();
14811496
int64 getNext();
14821497
PerformanceInfo* getPerf();
1498+
1499+
version: // 5.0 -> 6.0
1500+
PerformanceStats getPerfStats();
14831501
}
14841502

14851503
interface TraceLogWriter : ReferenceCounted
@@ -1876,3 +1894,26 @@ interface ProfilerStats : Versioned
18761894
{
18771895
uint64 getElapsedTicks();
18781896
}
1897+
1898+
// Extendable replacement for struct PerformanceInfo
1899+
1900+
interface PerformanceCounters : Versioned
1901+
{
1902+
uint getCount();
1903+
uint getVectorCapacity();
1904+
1905+
uint getId(uint index);
1906+
const string getName(uint index);
1907+
const int64* getCounterVector(uint index);
1908+
}
1909+
1910+
interface PerformanceStats : Versioned
1911+
{
1912+
uint64 getElapsedTime(); // in milliseconds
1913+
uint64 getFetchedRecords();
1914+
1915+
PerformanceCounters getGlobalCounters();
1916+
PerformanceCounters getPageCounters();
1917+
PerformanceCounters getRelationCounters();
1918+
}
1919+

0 commit comments

Comments
 (0)