-
-
Notifications
You must be signed in to change notification settings - Fork 262
Per pagespace I/O statistics and new trace API interfaces to allow extendable statistics #8808
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 2 commits
9304339
e0817d0
45ec316
089060f
cfb27d1
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -1364,6 +1364,9 @@ interface TraceTransaction : Versioned | |
| version: // 3.0.4 -> 3.0.5 | ||
| int64 getInitialID(); | ||
| int64 getPreviousID(); | ||
|
|
||
| version: // 5.0 -> 6.0 | ||
| PerformanceStats getPerfStats(); | ||
| } | ||
|
|
||
| interface TraceParams : Versioned | ||
|
|
@@ -1379,6 +1382,9 @@ interface TraceStatement : Versioned | |
| { | ||
| int64 getStmtID(); | ||
| PerformanceInfo* getPerf(); | ||
|
|
||
| version: // 5.0 -> 6.0 | ||
| PerformanceStats getPerfStats(); | ||
| } | ||
|
|
||
| interface TraceSQLStatement : TraceStatement | ||
|
|
@@ -1421,6 +1427,9 @@ version: // 4.0 -> 5.0 | |
| int64 getStmtID(); | ||
| const string getPlan(); | ||
| const string getExplainedPlan(); | ||
|
|
||
| version: // 5.0 -> 6.0 | ||
| PerformanceStats getPerfStats(); | ||
| } | ||
|
|
||
| interface TraceFunction : Versioned | ||
|
|
@@ -1434,6 +1443,9 @@ version: // 4.0 -> 5.0 | |
| int64 getStmtID(); | ||
| const string getPlan(); | ||
| const string getExplainedPlan(); | ||
|
|
||
| version: // 5.0 -> 6.0 | ||
| PerformanceStats getPerfStats(); | ||
| } | ||
|
|
||
| interface TraceTrigger : Versioned | ||
|
|
@@ -1456,6 +1468,9 @@ version: // 4.0 -> 5.0 | |
| int64 getStmtID(); | ||
| const string getPlan(); | ||
| const string getExplainedPlan(); | ||
|
|
||
| version: // 5.0 -> 6.0 | ||
| PerformanceStats getPerfStats(); | ||
| } | ||
|
|
||
| interface TraceServiceConnection : TraceConnection | ||
|
|
@@ -1480,6 +1495,9 @@ interface TraceSweepInfo : Versioned | |
| int64 getOAT(); | ||
| int64 getNext(); | ||
| PerformanceInfo* getPerf(); | ||
|
|
||
| version: // 5.0 -> 6.0 | ||
| PerformanceStats getPerfStats(); | ||
| } | ||
|
|
||
| interface TraceLogWriter : ReferenceCounted | ||
|
|
@@ -1876,3 +1894,26 @@ interface ProfilerStats : Versioned | |
| { | ||
| uint64 getElapsedTicks(); | ||
| } | ||
|
|
||
| // Extendable replacement for struct PerformanceInfo | ||
|
|
||
| interface PerformanceCounters : Versioned | ||
| { | ||
| uint getCount(); | ||
| uint getVectorCapacity(); | ||
|
|
||
| uint getId(uint index); | ||
| const string getName(uint index); | ||
|
||
| const int64* getCounterVector(uint index); | ||
|
||
| } | ||
|
|
||
| interface PerformanceStats : Versioned | ||
| { | ||
| uint64 getElapsedTime(); // in milliseconds | ||
| uint64 getFetchedRecords(); | ||
|
|
||
| PerformanceCounters getGlobalCounters(); | ||
|
||
| PerformanceCounters getPageCounters(); | ||
| PerformanceCounters getRelationCounters(); | ||
| } | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What it purpose of this method ? Why
getCount()is not enough ?Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
getCount()returns a number of objects (tables, tablespaces, etc), each of them has a vector ofgetVectorCapacity()counters.getVectorCapacity()is intended to ensure compatibility without interface versioning -- you can easily check whether the engine supports the counter you'd like to access.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suppose
getObjectCount()would suit better here, given we discussgetObjectId() / getObjectName().There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would suggest
maxCounterbecause it is count of counters, not objects, and it is constant for every object/counter's set.