Performance

One of the most common questions about Gallium Data is: will it affect my database performance?

The short answer is: yes, but not as much as you might think, especially when you consider the alternatives.


Obviously, accessing a database through Gallium Data is going to be somewhat slower than accessing the database directly. But Gallium Data is highly optimized to minimize this, and can be scaled to any extent, either by scaling up the machine on which it runs, or by multiplying the number of machines.

The performance cost of Gallium Data must also be measured against the alternatives. In many scenarios, the only other option is to add a middle tier in front of the database, which is almost always far more expensive, time-consuming, and has usually much worse performance because of the added layers of abstraction. Gallium Data works at the wire protocol level, which is as low as you can get. This allows it to have all kinds of optimizations that are simply not possible when working at the application level.

Scaling up Gallium Data

Gallium Data can be scaled:

  • vertically, by giving it more resources: more memory, more CPUs. Gallium Data will automatically adapt to available resources, and will make full use of whatever it is given.

  • horizontally, by running it on multiple servers. This is usually done by using a TCP load balancer such as HAProxy or seesaw. Your Docker environment (such as Kubernetes) may also have some load balancing capabilities. Any TCP (network level 4) load balancing solution should work fine, as long as it has sticky sessions.