How to switch SQL Execution Engine from Vectorized Execution Engine (VEE) to Scalar Execution Engine (SEE) ?

{question}With the introduction of NuoDB v4.2, the default execution engine is our Vectorized Execution Engine.  There may be rare situations where customers may want to switch back to the legacy engine which is the Scalar Execution Engine (SEE). {question}

{answer}

There are 4 ways to select the scalar execution engine over the vectorized execution engine:

    1. Per-connection basis, when you have a client application connecting to NuoDB, you can add the following connection property as part of the connection URL ( SQLEngine= [ scalar | vee ] ).
      For example:
      jdbc:com.nuodb://TE-host:port/testdb?schema=MyData&SQLEngine=scalar
      For more information: Connection Properties Documentation

    2. When creating database, use nuocmd create database with the --default-options argument to set the database default at database creation time.
      No other configurations or setup is required to use SEE in the future.

      For example:

      nuocmd create database --db-name <database name> --dba-user <username> --dba-password <password> --te-server-ids <server ID> --default-options execution-engine scalar
      For more information: Creating a Database

    3. When starting a Transaction Engine (TE), use nuocmd start process with the  --options argument to override the database default value.
      For example:
      nuocmd start process --db-name <database name> --engine-type TE --server-id <server ID> --options execution-engine scalar
      For more information: NuoDB Command Reference

    4. By setting the database’s default execution engine option, Transaction engines that start after the change will connect using the Scalar execution engine by default unless overridden by using the connection property SQLEngine=vee setting.
      nuocmd update database-options --db-name <database name> --default-options execution-engine scalar
      Please note that this will only take effect for TE engines you start AFTER running this command and It doesn't impact engines that were already started.

      For more information: NuoDB Database Options

    5. To verify, you can find the execution engine used by database by running this command:
      nuocmd show database --db-name <database name>
      or
      nuocmd get processes

 

Notes:

  1. VEE is default engine in NuoDB v4.2 so if you plan to upgrade to NuoDB v4.2, please check Upgrading to New Release Documentation
  2. Initial connection startup processing is optimized when the TE execution engine value and the SQL engine connection property values match.
  3. For more information about VEE: Vectorized Execution Engine (VEE) Documentation

{answer}

Have more questions? Submit a request

Comments