Release 0.113

Warning

The ORC reader in the Hive connector is broken in this release.

Cluster Resource Management

The cluster resource manager announced in Release 0.103 is now enabled by default. You can disable it with the experimental.cluster-memory-manager-enabled flag. Memory limits can now be configured via query.max-memory which controls the total distributed memory a query may use and query.max-memory-per-node which limits the amount of memory a query may use on any one node. On each worker, the resources.reserved-system-memory config property controls how much memory is reserved for internal Presto data structures and temporary allocations.

Session Properties

All session properties now have a SQL type, default value and description. The value for SET SESSION can now be any constant expression, and the SHOW SESSION command prints the current effective value and default value for all session properties.

This type safety extends to the SPI where properties can be validated and converted to any Java type using SessionPropertyMetadata. For an example, see HiveSessionProperties.

Note

This is a backwards incompatible change with the previous connector SPI. If you have written a connector that uses session properties, you will need to update your code to declare the properties in the Connector implementation and callers of ConnectorSession.getProperty() will now need the expected Java type of the property.

General Changes

Hive Changes

  • Fix the Hive metadata cache to properly handle negative responses. This makes the background refresh work properly by clearing the cached metadata entries when an object is dropped outside of Presto. In particular, this fixes the common case where a table is dropped using Hive but Presto thinks it still exists.

  • Fix metastore socket leak when SOCKS connect fails.

SPI Changes

  • Changed the internal representation of structural types.

Note

This is a backwards incompatible change with the previous connector SPI. If you have written a connector that uses structural types, you will need to update your code to the new APIs.