En enero de 2019, los creadores originales de Presto, Martin Traverso, Dain Sundstrom y David Phillips, crearon una bifurcación del proyecto Presto. Inicialmente mantuvieron el nombre Presto y usaron el identificador web PrestoSQL para distinguirlo del proyecto PrestoDB original. Simultáneamente, anunciaron la creación de Presto Software Foundation. Esta fundación es una organización sin ánimo de lucro dedicada al desarrollo del motor de consulta SQL distribuido de código abierto de Presto.[7][8]
En diciembre de 2020, PrestoSQL pasó a llamarse Trino. Trino Software Foundation, el código base y todos los demás activos de PrestoSQL fueron renombrados como parte del cambio de marca.[9]
Presto y Trino fueron diseñados y desarrollados originalmente por Martin, Dain, David y Eric Hwang en Facebook para permitir que los analistas de datos ejecutasen consultas interactivas en su gran almacén de datos en Apache Hadoop. Trino comparte los primeros seis años de desarrollo con el proyecto Presto.[10][11] Para obtener más información sobre la historia anterior de Trino, puede consultar la sección de historia de Presto.
Arquitectura
Trino está escrito en Java.[13] Contiene dos tipos de nodos, un coordinador y un trabajador.[12]
El coordinador es responsable de analizar, optimizar, planificar y programar una consulta enviada por un cliente. El coordinador interactúa con la interfaz de proveedor de servicio (service provider interface o SPI) para obtener las tablas disponibles, estadísticas de tablas y otras informaciones necesarias para realizar su tarea.[12]
Los trabajadores son responsables de ejecutar las tareas y los operadores proporcionados por el planificador. Estas tareas procesan datos procedentes de las fuentes de datos, ya sea en formato fila o columna, que producen resultados que son devueltos al coordinador y, en última instancia, al cliente.[12]
Trino separa computación y almacenamiento[4] y se puede implementar tanto en servidores propios como en los principales proveedores de la nube.[14]
Trino tiene una arquitectura masivamente paralela (MPP) de computación distribuida.[12] Trino inicialmente distribuye la carga de trabajo entre varios trabajadores mediante la ejecución de operaciones de partición ad hoc o basándose en las particiones existentes en las bases de datos subyacentes. Una vez que estos datos han llegado al trabajador, los datos se procesan a través de operadores encadenados ejecutados por múltiples procesos ligeros.[12]
↑ abcdefFuller, Matt; Moser, Manfred; Traverso, Martin (2021). «Chapter 4. Trino Architecture». Trino: The Definitive Guide. O'Reilly Media, Inc, USA. pp. 43-72. ISBN9781098107710.
↑Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). «Chapter 2. Installing and Configuring Trino». Trino: The Definitive Guide. O'Reilly Media, Inc, USA. pp. 19-24. ISBN9781098107710.
↑Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). «Chapter 13. Real-World Examples». Trino: The Definitive Guide. O'Reilly Media, Inc, USA. pp. 267-272. ISBN9781098107710.