featurebase/dax
Travis Turner d971cfc269
Database isolation: Balancer (#2407)
* Database isolation: Balancer

Remove naive Balancer

remove debugging lines

Thread dax.Transaction through Controller

Change role to roleType

Swap out Balancer interface with new one

Standardize InvalidTransaction error

Add some interface comments

* Remove type.Worker; replace with type.Address

* Remove database validate from Queryer

This is already being handled in the `CreateTable()` method. Prior
to doing that validation, we were getting a panic, but that's no longer
the case.

* Remove dax.TableQualifier; replace with dax.QualifiedDatabaseID

* Update IDK test to create database
2023-01-17 11:57:58 -06:00
..
boltdb Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
computer clean up unused code/comments 2022-12-14 14:23:12 -06:00
http Introduce ServiceManager and Refactor DAX Integration tests (#2320) 2022-12-05 14:49:17 -06:00
mds Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
queryer Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
server first cut at automatic snapshotting 2022-12-21 07:42:04 -06:00
snapshotter clean up unused code/comments 2022-12-14 14:23:12 -06:00
storage Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
test Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
writelogger clean up unused code/comments 2022-12-14 14:23:12 -06:00
address.go Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
address_test.go Introduce ServiceManager and Refactor DAX Integration tests (#2320) 2022-12-05 14:49:17 -06:00
dax.go Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
directive.go Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
docker-compose.yml several fixes and debug logging 2022-12-14 14:23:12 -06:00
errors.go Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
Makefile first cut at automatic snapshotting 2022-12-21 07:42:04 -06:00
node.go Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
README.md Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
role.go Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
schema.go Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
service_manager.go implement closing on dax, remove all locks when shutting down 2022-12-14 14:23:12 -06:00
snapshot.go remove version/directive stuff from other snapshot endpoints 2022-12-14 14:23:12 -06:00
table.go Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
table_test.go Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
time.go Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00
transaction.go Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
versioned_partition.go first cut at removing all the shard/field/partition versioning 2023-01-03 15:31:32 -06:00
versioned_shard.go first cut at removing all the shard/field/partition versioning 2023-01-03 15:31:32 -06:00
workerjob.go Database isolation: Balancer (#2407) 2023-01-17 11:57:58 -06:00
workerjob_test.go Add DAX - full list of squashed commits below 2022-11-16 11:19:40 -06:00

DAX

DAX encapsulates anything which covers all of the services which make up the "disaggregation of storage and compute" project. Initially, this will include integration tests which pull in things like Metadata Services (MDS), including the Controller, as well as FeatureBase and IDK-based ingesters.

Setting up the tests

The DAX test currently requires docker images for: featurebase and datagen.

If at any point you run into problems with go mod failing to reference a private repo, make sure that you have gitlab.com/molecula in your GOPRIVATE environment variable.

Note that during the docker image build step, go mod vendor is run, which creates a vendor directory in the root directory, and copies that to docker during the build stage. Just be aware of this; you may want to remove that vendor directory after you're done building docker images.

Possible Configuruation

The following were relevent when the dax code was in a separate repository. These may no longer be relevant.

I needed to but this in my ~/.profile file:

export GOPRIVATE=github.com/molecula,gitlab.com/molecula

And this in my ~/.gitconfig

[url "ssh://git@github.com/"]
	insteadOf = https://github.com/
[url "ssh://git@gitlab.com/"]
	insteadOf = https://gitlab.com/

Then make docker ran successfully.

Build the FeatureBase docker image

  • Check out the dax branch of the featurebase repository.
  • Run make docker-image-featurebase to build the docker image
  • You should now have an image in docker named dax/featurebase with the tag latest.

Build the Datagen docker image

  • cd <featurebase_repo_root>/idk
  • Run make docker-image-datagen to build the docker image
  • You should now have an image in docker named dax/datagen with the tag latest.

Running the tests

  • Check out the dax branch of the featurebase repository.
  • Change into the dax directory: cd dax
  • Run make test-integration.