Managing Engines in the RAI Console
A short guide to managing RelationalAI engines in the RAI Console.
Engines are virtual machines running in a cloud provider (such as Microsoft Azure) that execute query computations and process database transactions: essentially, engines do all the work to move data around and run applications while allowing you to increase or decrease computational power as needed. Engines include CPUs and memory.
It’s important to note, however, that the storage used for RAI databases is completely separate from engines. That’s because the RAI RKGMS system separates data storage from computation to achieve unlimited scaling. That is, because you can always use a larger engine, you can safely add as much data as you need to your database, knowing that you’ll have the computation power you need to process this data.
Engines, then, are stateless in regards to your data. This independence means that you can select, create, and delete engines without affecting your data.
Because of the way engines and databases work together, you will need to select an engine every time you work with a database.
Engines are associated with your RAI account. When you log into the RAI Console, all the engines previously created in your account are available for you to select. You can reassign engines to databases as needed. You can also assign multiple databases to the same engine, and also assign the same database to multiple engines. Multiple account users can use one engine.
The diagram above depicts a RAI account with two databases and two engines. Database-1 can be connected to MyEngine-XS, MyEngine-L, or both. Database-2 can also be connected to MyEngine-XS, MyEngine-L, or both. Note, again, that databases and engines are separate entities.
We let you choose the computation power that you need for a particular set of tasks. Importing a lot of data, for example, might require a more powerful engine than running day-to-day transactions on your data.
You should use the minimum engine size for your needs. We recommend starting with an engine size of XS and incrementally increasing when you need to load more data or require more resources for concurrent workloads.
To select an engine, use the Engine pull-down menu in the upper-right corner of the Console:
To create a new engine:
- Click Create Engine in the Engine pull-down menu in the upper-right corner of the Console.
- Click the Engine icon on the left-hand side of the Console. A page opens listing any existing engines. Click Create on the right-hand side of the Console.
- In the page that opens, enter a name and select a size for the engine. You need to enter a name that has not previously been used for an engine.
- Click Create.
The Engines page opens with the new engine listed. The engine will take a few minutes to be provisioned.
It is best practice to delete engines when you are no longer using them.
When you delete an engine, all transactions that are currently being processed by the engine are aborted.
Before you delete an engine, we recommend:
- Checking with other team members to make sure they are not using the engine.
- Confirming that all transactions have been completed.
Because transactions are aborted when you delete an engine, in some cases you may find it helpful to delete the engine connected to your database if something goes wrong with a transaction.
To delete an engine:
- Click the Engine icon on the left-hand side of the console. A page opens listing any existing engines.
- Click the Delete link to the right of the engine that you wish to delete.
- In the confirmation message that opens, click Delete to confirm deletion.
You may find it desirable to connect multiple engines to one database. If you’re working with other team members, you can set up your own engine to run queries while knowing that these queries won’t affect the performance experienced by other users.