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

The local GT Block #695

Open
AltraMayor opened this issue Jul 18, 2024 · 0 comments
Open

The local GT Block #695

AltraMayor opened this issue Jul 18, 2024 · 0 comments

Comments

@AltraMayor
Copy link
Owner

For rather small deployments, deployers are willing to compromise redundancy and have instances of the GT block on Gatekeeper servers, so the whole deployment is a single Gatekeeper server. Being able to do that requires a new local GT block that only receives mailbox messages from the SOL block instead of from the RSS queues of the NICs. Receiving messages from the SOL block requires changing the SOL block to send packets directly to the local GT block. Not only does this link between the SOL block and the local GT block naturally bind the number of instances of the local GT block to the number of instances of the SOL block, but it also naturally binds the instances of the local GT block to the same NUMA nodes of the instances of the SOL block. Finally, this local GT block should bypass the GGU block and send policy decisions directly to the instances of the GK block.

The local GT block could interfere with the performance of the GK block because both blocks will compete for the processor's cache. However, this could be a reasonable compromise for such a minimal deployment.

Given that the local GT block will increase the memory pressure on the machine, issue #637 should be implemented first, so LuaJIT has more options for memory allocation.

While the local GT block does not require changing anything in the GGU block, the GGU block becomes optional in this configuration. The only reason to maintain the GGU block running is to eventually expand this minimal deployment with Grantor servers.

While there are no foreseeable roadblocks to this approach, the implementation touches a lot of code, so the work is not quick and easy. In addition, due to all the added flexibility, this project requires a deployer willing to sponsor all the production tests to guarantee that everything is in place and no bugs are introduced to the other configurations of Gatekeeper.

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