2019년 1월, Presto의 최초 제작자인 Martin Traverso, Dain Sundstrom 그리고 David Phillips는 Presto 프로젝트의 포크를 만들었다. 그들은 초기에는 Presto라는 이름을 유지하고 PrestoSQL 웹 핸들을 사용하여 원래의 PrestoDB 프로젝트와 구별했다. 동시에 Presto 소프트웨어 재단을 발표했다. 이 재단은 Presto 오픈 소스 분산 SQL 쿼리 엔진의 발전에 헌신하는 비영리 단체이다.[7][8]
2020년 12월, PrestoSQL은 Trino로 리브랜딩되었다. Trino 소프트웨어 재단, 코드 기반 및 모든 기타 PrestoSQL 자산은 이 리브랜딩의 일환으로 이름이 변경되었다.[9]
Presto와 Trino는 대용량 데이터 웨어하우스인 Apache Hadoop 에서 상호작용형 쿼리를 실행할 수 있도록 Facebook의 Martin, Dain, David, 그리고 Eric Hwang이 설계하고 개발한 프로그램이다. 이를 통해 데이터 분석가들은 보다 효율적으로 작업을 수행할 수 있다. Trino는 Presto 프로젝트와 처음 6년간의 개발을 공유한다.[10][11] Trino의 초기 역사에 대해 자세히 알아보려면 Presto 역사 섹션을 참조하십시오.
Trino는 Java 로 작성되었다.[13]코디네이터와 워커라는 두 가지 유형의 노드가 포함된 서버 클러스터에서 실행된다.[12]
코디네이터는 클라이언트가 제출한 쿼리를 파싱하고 분석하며 최적화, 계획 및 스케줄링을 담당한다. 코디네이터는 서비스 공급자 인터페이스 (SPI)와 상호 작용하여 작업을 수행하는 데 필요한 사용 가능한 테이블, 테이블 통계 및 기타 정보를 얻는다.[12]
워커들은 스케줄러로부터 할당된 작업과 연산자를 실행하는 역할을 맡는다. 이러한 작업은 데이터 소스에서 행을 처리하며, 결과는 코디네이터에 반환되어 최종적으로 클라이언트에게 반환된다.[12]
Trino는 ANSISQL[4] 표준을 준수하며 다음과 같은 ANSI 사양의 다양한 부분을 포함한다: SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011, SQL:2016 .
Trino는 컴퓨팅과 스토리지의 분리[4]를 지원하며 온프레미스 및 클라우드 모두에 배포할 수 있다.[14]
Trino는 분산 컴퓨팅MPP 아키텍처를 갖추고 있다.[12] 이 프로그램은 작업을 여러 워커에게 배포하기 위해 먼저 임시 파티셔닝 작업을 실행하거나 기본 데이터 저장소의 데이터에 있는 기존 파티션에 의존한다. 워커에 도달한 데이터는 파이프라인 연산자를 통해 여러 스레드에서 처리된다. 이를 통해 Trino는 빠른 속도로 대규모 데이터를 처리할 수 있다.[12]