Trino vs Presto

Trino and Presto both descend from Facebook's Presto but have diverged in governance, runtime and release pace. This page sets out when each fits a new self-hosted lakehouse and what decides the choice.

On this page

Trino vs Presto: when each one fits a new lakehouse

A team building a self-hosted lakehouse on Iceberg tables in object storage, with both projects on the shortlist, will usually find that Trino fits the new build. Trino's release line is active, with release 484 published on October 15, 2026. Its Iceberg connector supports time travel, schema evolution and MERGE, and its fault-tolerant execution gives long batch queries a retry path when the configuration calls for one. Presto fits teams that already run it, teams that want the governance of the Presto Foundation at The Linux Foundation, and teams that specifically want the C++ Prestissimo worker. Each case depends on what the team already operates and what it needs from the engine.

The operating cost differs before any query runs. Trino's deployment documentation requires a 64-bit Linux system and a 64-bit Java 25 runtime, minimum 25.0.1, while the Presto README lists a 64-bit Java 17 runtime. Confirm that your platform team can support the Java level each project needs, and check that your base images and security scanning tools accept it. If you consider Prestissimo, plan a C++ build and test its worker against the connectors and catalog you actually use. Verify its feature coverage in the project repository before you assume a connector or workload works on it.

The decision turns on four things: your team's Java and operations skills, the connectors and catalogs you need (such as Hive Metastore, AWS Glue, an Iceberg REST catalog or Nessie), whether you want C++ workers, and how you want the project governed over time. Trino continues under the stewardship of the creators who renamed it in December 2020. Presto's governance sits with the Presto Foundation at The Linux Foundation, which Facebook established in September 2019. Both projects are Apache-2.0, so the license alone does not decide it. Before you commit, load the same Iceberg table through each engine in a test cluster and compare results, connector behavior and operating notes.

Which scenario points to Trino and which to Presto

This table maps common scenarios to the engine that fits them better, with the reason tied to a supplied fact about each project. Read the why column before the better-fit column, because several answers depend on a condition you need to check in your own environment.

ScenarioBetter fitWhy
New Iceberg lakehouse on object storageTrinoTrino's Iceberg connector supports Hive Metastore, AWS Glue, REST, Nessie and Snowflake catalogs, reads and writes Parquet, ORC and Avro, and covers MERGE and time travel. You still need separate object storage and a table catalog.
Existing Presto cluster to maintainPrestoStaying on Presto avoids a migration while the cluster keeps running. Confirm your Java runtime, since the Presto README lists Java 17 and Trino's deployment docs now require Java 25, minimum 25.0.1.
Team that wants Kubernetes with HelmTrinoTrino's documentation includes a guide to running on Kubernetes with Helm. Presto's supplied docs do not describe an equivalent guide, so confirm its Kubernetes path with the Presto project before you commit.
Team that wants C++ workersPrestoPrestissimo is a C++ worker built on the Velox library in the presto-native-execution directory and implements the Presto worker REST API. Trino's supplied facts describe no C++ worker, so this choice favors Presto only if you accept Prestissimo's maturity for your workload.
Fault-tolerant batch ETLTrino (condition applies)Trino's fault-tolerant execution uses QUERY or TASK retry policies, and TASK needs an exchange manager spooling to S3, Azure Blob Storage, Google Cloud Storage or HDFS. Choose Trino if you can run that spooling storage; confirm Presto's equivalent before relying on it.
Snowflake or multi-source federationTrinoTrino's Snowflake connector queries and creates tables in an external Snowflake account, but accesses one Snowflake database per catalog. Trino's 37 connectors include BigQuery, MongoDB, Redshift and SQL Server, so confirm the connectors you need against each project's current list.
Governance and vendor neutrality reviewDepends on your reviewTrino is maintained by its creators, while Presto is governed by the Presto Foundation at The Linux Foundation. Confirm the contribution and release policies of each project against your procurement criteria.

How the 2019 split and 2020 rename separated Trino from Presto

Trino and Presto share a root, but they have been separate projects since 2019, so a vendor risk review should evaluate each one on its own governance record. Presto was created at Facebook by Martin Traverso, Dain Sundstrom, David Phillips and Eric Hwang, who joined Facebook's data infrastructure team in 2012. In January 2019, the creators started the Presto Software Foundation. In September 2019, Facebook established the Presto Foundation at The Linux Foundation. On December 27, 2020, the creators renamed their PrestoSQL fork to Trino. That sequence explains why the two names now refer to different code bases with different owners.

The governance difference is structural and should be checked against each project's own documents. Trino is maintained under the trinodb organization by the creators' project, while Presto is maintained in the prestodb repository under the Presto Foundation at The Linux Foundation. The Trino announcement of the rename is the primary public account of this history, and it is the document to cite in your file. Ask each project for its written governance model, its trademark and copyright holders, its contributor license terms, and how maintainer decisions are made. Record the answers, since a foundation structure and a company-founded project carry different continuity and exit assumptions.

Treat version numbers as project-specific. Presto release 0.299 (August 28, 2026) and Trino release 484 (October 15, 2026) follow separate numbering and separate release processes, so a security advisory or upgrade note for one does not apply to the other. Build the vendor file with one row per project, and add a check that confirms the repository, package registry and documentation domain you deploy from belong to the project you approved. Ask the team that owns your risk review to confirm whether a Linux Foundation-hosted project meets its requirements, and whether the creators' project meets the same bar, before the choice is signed off.

How the coordinator, workers and runtime differ in each project

Trino and Presto share a lineage but have diverged in their runtime requirements, worker options and deployment guidance. The cards below cover the parts of the cluster a platform team touches first, and each card names the condition under which the difference changes the decision.

Coordinator and worker layout

Trino runs as one coordinator plus workers, and its deployment documentation recommends a dedicated coordinator for larger clusters. The coordinator plans and schedules queries while workers execute them, so the split matters once concurrency and query size grow. If you run a small pilot, a combined node may be acceptable, but plan for separating the coordinator before production load arrives. Confirm how Presto's current deployment guidance handles coordinator placement before you copy Trino's layout onto a Presto cluster.

Java runtime requirements

Trino requires a 64-bit Java 25 runtime, minimum 25.0.1. Presto's README lists a 64-bit Java 17 runtime, so the two projects can no longer share one JVM baseline. This matters most when your image pipeline, security scanning or base OS packages are pinned to an older JDK. Check the required runtime for each release you plan to deploy, because moving a single Trino node to Java 25 changes the whole cluster's runtime.

Prestissimo C++ workers

Prestissimo is a C++ implementation of the Presto worker, built on the Velox library and kept in the presto-native-execution directory. It implements the Presto worker REST API, so it is a worker replacement rather than a separate engine. Trino has no equivalent C++ worker in this comparison. Choose this path only if you need the native execution performance profile and are prepared to build, package and debug a second worker toolchain. Confirm the current Presto native worker status with the project before committing.

Kubernetes deployment path

Trino's documentation includes a guide to running Trino on Kubernetes with Helm, which gives platform teams a documented starting point for container-based clusters. If your organization standardizes on Kubernetes, check whether the chart, the coordinator and worker sizing, and the upgrade procedure match your change control process. Ask the Presto project which deployment guidance it maintains for Kubernetes before you assume parity. This card matters most when the cluster lives in a shared platform rather than on dedicated virtual machines.

Security and access control options

Trino documents password file, LDAP, Salesforce, OAuth 2.0, Kerberos, certificate and JWT authentication. Its access control can be file-based, delegated to Apache Ranger, or handled through Open Policy Agent. These choices shape how your identity provider, audit trail and row or column policies connect to the coordinator. Compare the same authentication and authorization list in the Presto documentation before deciding, since the security surface differs between the two projects. This matters most in regulated environments where access decisions must be explainable.

Upgrade work after the split

Trino and Presto have developed separately since the 2019 split, so a configuration, connector or runtime change in one does not automatically appear in the other. Trino publishes frequent numbered releases, and the most recent is release 484 from October 15, 2026, so plan a recurring upgrade window. Each new runtime requirement, worker type or connector version adds regression testing to that window. Budget for this testing as recurring work, not a one-time migration task.

Side-by-side capabilities from supplied facts

This table compares Trino and Presto on license, latest release, runtime requirements, connectors, Iceberg catalog support, fault tolerance and security. Where a Presto capability is not covered by the supplied facts, the cell tells you what to confirm in the Presto documentation. The biggest visible difference is the Java baseline, so check that against your platform first.

CapabilityTrinoPresto
LicenseApache-2.0Apache-2.0
Latest supplied releaseRelease 484, published October 15, 2026Release 0.299, published August 28, 2026
Java requirement64-bit Java 25 runtime, minimum 25.0.164-bit Java 17 runtime, per the project README
C++ worker optionNot covered by supplied facts. Confirm in the Trino documentation before assuming a native worker.Prestissimo, a C++ worker built on Velox in the presto-native-execution directory
Connector breadth37 connectors, including Iceberg, Delta Lake, Snowflake and SQL ServerHive, Iceberg, Delta Lake, Hudi, Kafka, Pinot, Druid and others in the connector directory
Iceberg catalog supportHive Metastore, AWS Glue, JDBC, REST, Nessie and Snowflake catalogsIceberg connector is listed. Confirm supported catalog types in the Presto documentation.
Fault-tolerant executionOff by default. QUERY or TASK retry policy. TASK needs spooling to S3, Azure Blob, GCS or HDFS.Not covered by supplied facts. Confirm retry policies and spooling options in the Presto documentation.
Authentication methodsPassword file, LDAP, Salesforce, OAuth 2.0, Kerberos, certificates and JWTNot covered by supplied facts. Confirm supported methods in the Presto documentation.
Access control optionsFile-based, Apache Ranger or Open Policy AgentNot covered by supplied facts. Confirm access control options in the Presto documentation.

Licensing and editions: what is free and what is paid

Trino is licensed under Apache-2.0, and its repository README describes it as a fast distributed SQL query engine for big data analytics. Apache-2.0 generally permits use, modification and redistribution of the software, subject to its notice conditions, so the open-source engine carries no license fee. The information available does not describe a paid edition of the open-source Trino engine. Your costs therefore sit in compute, object storage, the table catalog, the staff who operate the cluster and any support contract you choose to buy. Trino's release notes show an active release line, including release 484 published on October 15, 2026, after release 483 on July 17, 2026.

  • Governing license: Apache-2.0, as stated in the trinodb/trino repository. Confirm against the LICENSE file that ships with the exact version you deploy.
  • Paid editions: no paid edition of the open-source engine appears in the available information. Ask the Trino project and its maintainers whether any commercial distribution or support exists and what it covers.
  • Release line: release 484 followed 483 and 482 in quick succession during 2026. Pin a version and track the release notes so upgrade planning is scheduled rather than reactive.
  • Operating cost: the license is free, but the people who patch, upgrade and tune a coordinator and worker cluster are a recurring cost you carry.

Before you assume the open-source build is the whole cost, check the license file and the release you plan to pin, then price the operating work separately.

What drives the running cost of Trino and Presto

The running cost of a self-hosted Trino or Presto cluster comes from several separate lines, and the engine's license is the smallest of them. Both projects are Apache-2.0 licensed, so there is no license fee to pay. Your spend goes to compute for the coordinator and workers, object storage holding the data, a table catalog such as an Iceberg REST catalog or Hive Metastore, and the people who build and operate the platform. Because Trino queries data in place through connectors, storage and catalog are not bundled with the engine. Ask your team to price each of these as its own line item, and to say which ones are one-time and which recur.

One-time work includes sizing the coordinator and workers, choosing and deploying the catalog, wiring authentication (password file, LDAP, OAuth 2.0, Kerberos, certificates or JWT, as the security documentation describes) and setting up access control through file-based rules, Apache Ranger or Open Policy Agent. Recurring work is where most of the effort sits: Java runtime maintenance, Kubernetes or VM operations if you use the Trino Helm guide, monitoring, and applying each new release. Trino's release notes show releases 482, 483 and 484 in roughly four months, so budget staff time for regular upgrades rather than treating the install as finished. Confirm the Java version each release requires before scheduling a cutover.

Support is the cost line most open to choice. If you run the community projects yourself, the cost is internal engineering time, and the cost of a bad upgrade or a stalled query is carried by your own on-call team. If you buy support from a vendor, ask for a written scope that names the release lines covered, response expectations, and whether upgrades and testing are included. The main drivers of the total are cluster size and query concurrency, the number of catalogs you connect, whether you enable fault-tolerant execution (which adds spooling storage in S3, Azure Blob, Google Cloud Storage or HDFS), and how many engineers already know Java and Kubernetes. Any quote should follow a written scope that lists your own infrastructure, data volumes and team skills.

Moving a Presto cluster to Trino, step by step

This sequence takes a running Presto cluster to Trino in an order that keeps data and access controls intact, so each change can be checked against a known-good baseline before dashboards and jobs depend on it.

  1. Inventory catalogs, connectors and access rules

    The platform team lists every catalog in the current Presto configuration, the connector behind each one, the table formats in use, and the access control method (file-based rules, Ranger, OPA or another mechanism). Each connector is then checked against the Trino connector list, which includes Hive, Iceberg, Delta Lake, Hudi, MySQL, PostgreSQL, Oracle, SQL Server, ClickHouse, MongoDB, Redshift, BigQuery and others. Connectors that appear in Presto's documentation but not in Trino's list, such as Kafka, Pinot or Druid, need a replacement plan or a documented decision to retire them. The output is a written inventory with one row per catalog, marked as supported, replaced or retired.

  2. Confirm Java 25 readiness on every node

    The infrastructure team checks that each coordinator and worker runs a 64-bit Linux system with a 64-bit Java 25 runtime, at minimum 25.0.1, as Trino's deployment documentation requires. Presto's README lists Java 17, so this is a runtime change that must be rolled out and tested on every node, including any Prestissimo native workers, which are built separately. The check is complete when the Java version is recorded for each host and a test node starts a Trino process successfully against a non-production configuration.

  3. Port catalog and access control configuration

    Catalog property files, access rules and authentication settings are rewritten for Trino, because configuration keys and file layouts are not guaranteed to match Presto's. The team rebuilds session properties, JVM settings and any coordinator-specific options using Trino's documentation, and confirms authentication methods (password file, LDAP, OAuth 2.0, Kerberos, certificates or JWT) are configured as intended. Anything that does not map one to one is written down for review. The step is done when a Trino coordinator starts with the ported files and the access rules pass a set of test queries run by users with known permissions.

  4. Validate Iceberg table compatibility

    Iceberg tables are the most likely to carry over cleanly, because table data stays in object storage and the catalog metadata is what Trino reads. The data engineering team confirms each table's format version: Trino supports Iceberg format versions 1 and 2, while version 3 is experimental, so version 3 tables need a decision before cutover. The team then runs reads, time travel queries, schema evolution checks and a sample of INSERT, UPDATE, DELETE and MERGE statements on a copy of the data. The step closes when the results match the Presto baseline for each tested table and any version 3 tables have an approved plan.

  5. Run parallel queries against representative workloads

    Presto and Trino run side by side against the same catalogs while a set of representative queries is executed on both. The set should cover the heaviest dashboard queries, the longest batch jobs and the most used joins across connectors. The team compares row counts, result checksums, error messages and run times, and records any query that fails or returns different results. If batch ETL depends on failure recovery, the team also reviews whether fault-tolerant execution is needed, since it is off by default in Trino. The output is a signed-off comparison report that lists every difference and its disposition.

  6. Rebuild client connection strings and driver settings

    Every client that talks to the cluster is updated, including BI tools, notebooks, scheduled jobs and application drivers. Connection strings, catalog and schema defaults, and authentication parameters are changed to point at Trino endpoints. Client drivers and JDBC or ODBC versions are checked against the Trino release in use. Because client configuration is not carried over, each team owns its own list of changes. The step is complete when a sample of each client type connects, runs a read query and returns expected results.

  7. Cut over dashboards and scheduled jobs

    Dashboards and jobs are moved in groups, starting with low-risk workloads and ending with the most critical ones. Before each group switches, the owner confirms the parallel run results and has a documented rollback path to the Presto endpoint. Scheduled jobs are switched during a window agreed with stakeholders, and their first runs are compared against the baseline. Presto is kept available until every group has run successfully for a period the owners agree on. The cutover closes when all workloads point at Trino, the rollback path is retired, and the inventory from the first step is updated to show the final state.

Where implementation projects usually run long

Most Trino projects slip in the same few places, and the schedule risk sits mainly in the JVM and the identity layer rather than in the query engine itself. Trino's deployment documentation requires a 64-bit Linux system and a 64-bit Java 25 runtime, minimum 25.0.1, so teams that standardize on an older Java image often lose time on JVM sizing, garbage collection settings and coordinator memory limits during the first load tests. Presto's README asks for Java 17, so a team that runs both, or that is migrating from a Presto deployment, should confirm the runtime version early and rebuild its container images to match rather than assuming an existing JVM baseline carries over.

The second source of delay is catalog and credential wiring. Each connector, from Hive and Iceberg to PostgreSQL, Snowflake or SQL Server, needs its own catalog properties, network paths and service accounts, and the Snowflake connector maps one Snowflake database per catalog. Identity is usually the longest item. Trino documents password file, LDAP, OAuth 2.0, Kerberos, certificate and JWT authentication, and the choice has to match your directory and token issuer. Access control adds a further decision: file-based rules, Apache Ranger or Open Policy Agent. Confirm with your security team which model is the system of record for table and column permissions before the first catalog goes live, because retrofitting it after users have queries in production is slow. Fault-tolerant execution is the third area to plan for if batch queries matter. It is off by default, and the TASK retry policy needs an exchange manager that spools intermediate results to S3, Azure Blob Storage, Google Cloud Storage or HDFS, so it requires storage, permissions and sizing work that a dashboard-only deployment does not. Ask your provider to estimate that work as a separate line in the written scope. DeployOpen plans, implements and documents these pieces inside your own cloud accounts or data centers under a fixed scope agreed in writing before work starts, which makes the Java, identity, access control and exchange manager decisions visible at the start instead of discovered at cutover.

Questions buyers ask before choosing Trino or Presto

Are Trino and Presto both really Apache-2.0, and what does that mean for internal use?

Yes, the supplied sources list both projects under Apache-2.0: Trino's repository and Presto's GitHub README and license metadata. For internal use, that license generally allows you to run, modify and deploy the software inside your own infrastructure without paying a license fee to the project. It does not cover support, hardening or the work of operating a cluster. Confirm the license file in the exact release tag you plan to deploy, and have your legal team review any internal forks or patches you intend to keep, since those obligations sit with you.

Can Presto run a new self-hosted lakehouse as well as Trino?

Presto can query lakehouse formats through its connectors, and its documentation lists Hive, Iceberg, Delta Lake and Hudi among them. The practical question is fit, not capability alone. Trino's Iceberg connector documentation covers catalog options, write operations such as MERGE, time travel and schema evolution in detail, and Trino's fault-tolerant execution and security options are documented in depth. Before choosing, check the specific connector features your tables need (writes, catalog type, access control) in each project's current documentation, and test them against a copy of your data.

What does the move from Presto's Java 17 to Trino's Java 25 involve?

Trino's deployment documentation requires a 64-bit Java 25 runtime, minimum 25.0.1, while the Presto README lists Java 17. Moving to Java 25 means updating the JVM on every coordinator and worker, checking that your connector jars, custom plugins, and any internal tooling run on the newer runtime, and retesting JVM settings such as heap sizing and garbage collection. Plan this as a platform change with its own test cycle. The effort grows with the number of custom plugins and the age of the connectors you depend on.

How much effort does a migration from Presto to Trino take, and what drives it?

The effort is driven by four factors: how many catalogs and connectors you use, how many custom plugins or access control hooks you maintain, how much of your SQL depends on dialect or function differences, and whether your deployment automation is tied to Presto-specific configuration keys. Clusters that use only a few common connectors with standard SQL usually have a smaller change set than clusters with custom code. Ask for an inventory of catalogs, plugins and queries before estimating, and run a parallel test against representative workloads before cutting over.

Can our own team run this without outside help?

A team with strong Linux, JVM and data platform skills can run either engine, and the open-source software itself carries no license fee. What is harder to staff is the surrounding work: cluster sizing, catalog and metastore operations, authentication and access control design, upgrade testing across frequent releases, and incident response. Check whether you have owners for each of these before committing. If the gaps are in one area, such as access control or upgrades, you can buy help for that area alone.

What should we ask a consultant for in a quote for a Trino or Presto project?

Ask for a written scope that names the engine version, the target Java runtime, the catalogs and connectors in use, the authentication and access control model, and the object storage and table catalog involved. Request deliverables such as an architecture document, a migration runbook, a test plan with representative queries, and handover documentation. Ask what is one-time work and what is ongoing, such as upgrades or support retainers, and who performs performance and security testing. Fixed-scope agreements are usually easier to compare when the scope is specific.

How do we check the current release status before deciding?

Check the Trino release notes for the most recent numbered release and the Presto releases page on GitHub for its latest version, then compare each project's support posture and upgrade cadence against your own change window. Confirm the Java requirement in each project's current deployment documentation, since requirements change between releases. Record the dates you checked, because the most recent release at the time you read this may not be the one you deploy.

How DeployOpen helps teams choose and implement a query engine

DeployOpen plans, implements and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For Trino vs Presto, we start with the workloads, catalogs and access rules that decide which engine fits, then build and document the chosen one in your environment.

How we scope

  • We record which lakehouse tables, databases and catalogs the engine must query in place.
  • We confirm the Java runtime, Linux hosts and coordinator and worker layout your environment can support.
  • Engagements are fixed-scope, with deliverables and timelines agreed in writing before work starts.

How we build

  • We deploy the selected engine, configure the connectors your catalogs need, and test each one against real queries.
  • We set up authentication and access control, such as LDAP, OAuth 2.0 or Ranger-based policies, as agreed in scope.
  • We run security testing on the query endpoints and document any gaps for your remediation plan.

How we hand over

  • You receive architecture, configuration and runbook documentation covering connectors, catalogs and worker sizing.
  • We document the upgrade path and release cadence of the engine you chose, so your team can plan its own updates.
  • We prepare the compliance evidence your assessors ask for, while independent auditors issue any formal opinion.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after handover.
  • We can revisit the engine decision when your catalogs, workloads or licensing needs change.
  • Confirm with us which support scope, response expectations and testing cadence the retainer includes before signing.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.