Skip to content
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

[persistence] sync logging에서 flush_lsn_lock 최적화 방안과의 성능 비교 #531

Open
SuhwanJang opened this issue Oct 5, 2020 · 0 comments
Assignees

Comments

@SuhwanJang
Copy link
Contributor

sync logging에서 log buffer flush 재검토: 직접 수행 vs. 요청 방식 #512
위 이슈 처리 결과로 worker thread 가 flush thread 에게 flush 요청하는 방식으로 처리되었다.
구현 방식을 보면 flush_lsn_lock 을 통해 worker thread 는 waiter_lsn 을 등록하고, flush thread 는 waiter_lsn 을 확인함에 따라서 flush_lsn_lock 잡는 횟수가 증가하게 되었다.
이를 최적화한다면 flush thread 는 flush_lsn_lock 을 잡지 않고도 waiter_lsn 까지 flush 해야하는지 확인할 수 있는 방안이 있다.

  • flush thread 가 nxt_flush_lsn 변경 시점에 upt_flush_lsn 과 비교한 정보를 기록해 두고, next flush 작업에서 이용.
  • 다만, 현재 flush 작업 이후에 그리고 sleep 하기 이전에 upt_flush_lsn이 등록된다면, sync_logging 에서는 가능한 빨리 flush 를 해주기 위해 그 사실 확인이 필요.

최적화 구현과 현재 구현과의 성능 비교 후 최적화할 지 검토한다.

@SuhwanJang SuhwanJang self-assigned this Oct 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant