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

[yugabyte] Yugabyte compatible implementation #1143

Merged
merged 11 commits into from
Feb 11, 2025

Conversation

barroco
Copy link
Contributor

@barroco barroco commented Jan 2, 2025

This PR introduces the ability to run core-service with a yugabyte datastore.

Key changes:

  1. ybgin indexes on cells have been removed since they don't support to be scanned with other indexes (which is always the case).
  2. SQL query syntax has been changed to be supported by CRDB as well as Yugabyte. No behaviour change is expected.

Note that it was identified that the current implementation may show some failing test runs of the prober with Yugabyte. Current assumption is that the problem is due to default transaction isolation which is not the same in CRDB (Serializable) and Yugabyte (Snapshot). The later may lead to serialization anomalies for single statement queries. Adapting the code to support this specific use case with Yugabyte may require extensive refactoring which may better be addressed in a separate PR.
Prober tests are catching this issue unreliably. It has been kept disabled for Yugabyte until the implementation is stable.

Commits have been organised in order to facilitate the review.

@barroco barroco closed this Jan 2, 2025
@barroco barroco reopened this Jan 2, 2025
@barroco barroco force-pushed the yugabyte-implementation branch 5 times, most recently from 968bb04 to ea1debf Compare January 7, 2025 18:02
@barroco barroco force-pushed the yugabyte-implementation branch from fe834e0 to e735f9a Compare January 14, 2025 14:56
@barroco barroco force-pushed the yugabyte-implementation branch 2 times, most recently from f07f19c to 38dd892 Compare January 21, 2025 17:00
@barroco barroco force-pushed the yugabyte-implementation branch from 4ddbfb2 to 29fc46a Compare January 28, 2025 15:24
@barroco barroco force-pushed the yugabyte-implementation branch from 29fc46a to 6e5a1d0 Compare January 28, 2025 15:39
@barroco barroco force-pushed the yugabyte-implementation branch from 6e5a1d0 to ed79acc Compare January 28, 2025 15:41
@barroco barroco marked this pull request as ready for review January 28, 2025 15:56
Copy link
Contributor

@mickmis mickmis left a comment

Choose a reason for hiding this comment

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

Only minor comments, LGTM otherwise.

dlv --headless --listen=:4000 --api-version=2 --accept-multiclient exec --continue /usr/bin/core-service -- \
-cockroach_host local-dss-crdb \
# Linter is disabled to properly unwrap $DATASTORE_CONNECTION.
# shellcheck disable=SC2086
Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Contributor Author

@barroco barroco Feb 11, 2025

Choose a reason for hiding this comment

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

Nice, thanks for the link. Let's address it in a subsequent PR due to its possible complexity.

@barroco barroco force-pushed the yugabyte-implementation branch from a55a179 to ddd69f5 Compare February 4, 2025 12:52
Copy link
Contributor

@mickmis mickmis left a comment

Choose a reason for hiding this comment

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

LGTM

@barroco barroco merged commit acee6db into interuss:master Feb 11, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants