Skip to content
This repository has been archived by the owner on Jun 23, 2022. It is now read-only.

feat: add an interface to get read_throttling_reject_count perf counter #940

Closed
wants to merge 4 commits into from

Conversation

Smityz
Copy link
Contributor

@Smityz Smityz commented Oct 20, 2021

@Smityz Smityz changed the title feat: add an interface to get read_throttling_reject_count perf_counter feat: add an interface to get read_throttling_reject_count perf counter Oct 20, 2021

dsn::perf_counter *replication_app_base::get_counter_recent_read_throttling_reject_count()
{
;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove this line

@@ -294,6 +294,8 @@ class replication_app_base : public replica_base
replica_init_info _info;

explicit replication_app_base(::dsn::replication::replica *replica);

dsn::perf_counter *get_counter_recent_read_throttling_reject_count();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why didn't you return the smart pointer?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the original perf_counter is a raw point, passed by _counter_recent_read_throttling_reject_count.get()

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with @levy5307, it's better to avoid raw pointer and use smart pointer, although the original value is raw.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. It's meaningless to wrap a raw point by shared_ptr

  2. I think it's no risk there because replica has the longer lifetime than _app
    ref: https://github.com/XiaoMi/rdsn/blob/master/src/replica/replica.h#L568
    https://github.com/XiaoMi/rdsn/blob/master/src/replica/replica.h#L488

  3. If I refactor raw point to shared_ptr here, it would be a big change, due to there are many codes using define, and I have to replace -> to ->operator->()
    ref: https://github.com/XiaoMi/rdsn/blob/master/src/replica/replica_throttle.cpp#L30

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have another question, why would you like to pass this perf-counter to pegasus?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the throttling_controller works on Pegasus, so must use the same perf_counter to collect read reject count

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have another question, why would you like to pass this perf-counter to pegasus?

+1, the function put here seems to be strange

@Smityz Smityz marked this pull request as draft October 22, 2021 06:45
@Smityz Smityz closed this Oct 31, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants