citusdata / citus

Distributed PostgreSQL as an extension
https://www.citusdata.com
GNU Affero General Public License v3.0
10.68k stars 671 forks source link

Improve infrastructure around Hyperscale tests #6153

Open hanefi opened 2 years ago

hanefi commented 2 years ago

We have 2 seperate test schedules for hyperscale: multi_schedule_hyperscale that contains the tests that can be run as unprivileged user and multi_schedule_hyperscale_superuser that contains tests that need a privileged user.

Here are some ideas that can improve our test infrastructure for hyperscale schedules:

Related:

onderkalaci commented 2 years ago

Open question: Can we point arbitrary configs to HSC cluster such that we do not maintain multiple test suites.

Currently HSC schedule might have more coverage, but we are gradually making arbitrary configs more powerful

hanefi commented 2 years ago

Open question: Can we point arbitrary configs to HSC cluster such that we do not maintain multiple test suites.

It may be possible after we solve some blockers/deal breakers:

  1. We need privileged user in most of our tests. Getting access for that is easy on development clusters but it slightly defeats the purposes of running tests on HyperScale if we do not run the tests using a role with limited privileges.
  2. citus_add_node and similar commands may not work in HyperScale.
  3. Connecting to some other worker nodes might not work on HyperScale. Though I am not so sure if we have such tests.

Currently HSC schedule might have more coverage, but we are gradually making arbitrary configs more powerful

I agree on both statements here. I also would like to see arbitrary configs run on a HyperScale cluster in the future.

onderkalaci commented 2 years ago

We need privileged user in most of our tests. Getting access for that is easy on development clusters but it slightly defeats the purposes of running tests on HyperScale if we do not run the tests using a role with limited privileges.

arbitrary config runs with a regular user, so shouldn't be a problem. Even if there is 1 schedule that runs superuser -- which I think there is -- we can easily skip that on on HSC.

citus_add_node and similar commands may not work in HyperScale.

Arbitrary config tests do not use those, as they run as non-superuser. There is an initialization step which does that, and that part should not run on HSC.

Connecting to some other worker nodes might not work on HyperScale. Though I am not so sure if we have such tests.

On Citus 11+, you can enable worker query access, even from portal.