Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify Presto C++ documentation to include required coordinator configuration properties #22877

Closed
tdcmeehan opened this issue May 30, 2024 · 1 comment · Fixed by #22885
Closed

Comments

@tdcmeehan
Copy link
Contributor

tdcmeehan commented May 30, 2024

The following properties should be enabled in a Presto coordinator when running with native workers. We should update our documentation, and ideally provide examples, to clarify this so Prestissimo is easier to pick up and use.

native-execution-enabled=true
optimizer.optimize-hash-generation=false
regex-library=RE2J
use-alternative-function-signatures=true
experimental.table-writer-merge-operator-enabled=false

Significant feature configs

native-execution-enabled

This property is required when running native workers to account for underlying differences in behavior from Java workers.

optimizer.optimize-hash-generation

We must set this property to false because Velox does not support optimized hash generation, instead preferring to perform this optimization adaptively.

regex-library

Only RE2J is currently supported by Velox.

use-alternative-function-signatures

Certain aggregation functions use intermediate types which are generic and not compatible with Velox aggregation function intermediate types (such as approx_distinct, whose intermediate type is VARBINARY). Dummy stubs have been developed in the Presto codebase that provides alternative stub implementations which return the correct intermediate type.

experimental.table-writer-merge-operator-enabled

I am not familiar with the reason for this property being disabled.

Optional feature configs (left here fore discussion, however will not be added to the documentation)

parse-decimal-literals-as-double

This is set to true in NativeQueryRunnerUtils, however, I believe this is no longer necessary, as Velox now supports the decimal type.

offset-clause-enabled

This is set to true in NativeQueryRunnerUtils, however, I don’t think this should make a difference in native clusters.

inline-sql-functions

Although native implementations of SQL functions have been developed in the Velox project, it is not required to run Presto C++ with this flag enabled. Enabling this flag will render SQL functions inoperable, as these functions will not be resolved into their underlying expressions by the coordinator.

Expected Behavior or Use Case

Clear documentation for Presto C++

Presto Component, Service, or Connector

Docs

Possible Implementation

Docs

Example Screenshots (if appropriate):

Context

@steveburnett
Copy link
Contributor

steveburnett commented May 30, 2024

This is a great help, thanks! I will work on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants