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

Introduce GateKeeper that manages the front gate of the server that processes requests #291

Merged
merged 2 commits into from
Aug 31, 2021

Conversation

brfrn169
Copy link
Collaborator

This PR introduces the GateKeeper interface that manages the front gate of the Scalar DB server that processes requests. And I added the following two implementations:

  • LockFreeGateKeeper: the implementation that's not using any locking
  • SynchronizedGateKeeper: the implementation that uses lock (Java synchronized)

Scalar DB server uses the GateKeeper interface to pause/unpause requests for implementing the Scalar Admin interface.

For now, the default is LockFreeGateKeeper, but I will conduct a performance test to compare the two implementations and determine which one we should make the default.

Please take a look!

@brfrn169 brfrn169 self-assigned this Aug 28, 2021
@brfrn169 brfrn169 force-pushed the introduce-GateKeeper branch from 922cfbc to 6edf0f8 Compare August 28, 2021 15:35
Copy link
Contributor

@feeblefakie feeblefakie left a comment

Choose a reason for hiding this comment

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

LGTM! Thank you!

Copy link
Contributor

@Torch3333 Torch3333 left a comment

Choose a reason for hiding this comment

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

LGTM. Very interesting, thank you!

@brfrn169 brfrn169 merged commit 45dad17 into master Aug 31, 2021
brfrn169 added a commit that referenced this pull request Sep 15, 2021
@brfrn169 brfrn169 deleted the introduce-GateKeeper branch September 17, 2021 02:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants