11.2. Special Considerations for Existing Customers

The new features in VoltDB V16.0 add capabilities without altering the behavior of existing applications. However, there are a few changes that require action for users upgrading from earlier versions. Existing customers should take note of the following changes:

  • Custom SQL functions — User-defined functions are deprecated and are no longer supported as of VoltDB V16. This means the functions themselves will not be callable and the SQL statements to define them (CREATE, ALTER, and DROP FUNCTION) will be unavailable and must be removed from any schema before upgrading to V16.

  • DR DROP command — The voltadmin DR DROP command is deprecated. The recommended replacement is to shutdown the cluster and then perform a DR RESET on all of the remaining clusters in the XDCR environment.

  • Queue prioritization — Queue prioritization is deprecated and has been removed from the product. This includes the ability to specify a priority value for queuing individual transactions in the client2 API (Client2Config.requestPriority and setRequestPriority) or types of transactions (snapshots, XDCR, etc) in the cluster configuration. Note that snapshot-specific priority and autotuning are not affected and continue to be supported going forward.

  • Topics — The ability to declare and configure topics for producing and consuming Kafka streams directly within the database, is deprecated and no longer supported as of VoltDB V16. This means you must remove any existing topic definitions in the schema and associated properties from the database configuration before upgrading the database to V16. The recommended replacement for topics is the use of export and import in VoltDB or pipelines in VoltSP.

  • Indexes — Hash indexes, which were deprecated in VoltDB V7, have been removed from the product. This change does not require any modification to existing applications or databases. Any indexes with the string "hash" in the name will be automatically converted to tree indexes as part of the upgrade to VoltDB V16.

  • Geospatial Functions — The updated S2 geometry library provides performance and integrity improvements to geospatial functions such as AREA() and DISTANCE(). However, the newer library has two consequences for existing VoltDB customers:

    • The text of certain error messages has changed. Most notably, the return values for the ISINVALIDREASON() function contains slightly different text. If your application is dependent on specific error text, the application needs to be updated to recognize the new text strings.

    • Some library functions return slightly different results for identical input returned by the previous version. Although these differences are essentially irrelevant for most applications, it means that stored procedures that use the geospatial functions can cause a hash mismatch, crashing the cluster during an in-service upgrade where different nodes are using different versions of the geometry library. For this reason, any schema using the geospatial functions must perform a standard upgrade by shutting down the cluster then restarting with the new version. Such database clusters cannot safely perform an in-service upgrade.