Trino源码学习-查询提交
上篇介绍了Trino的启动流程,这篇我们来学习下查询提交的流程。
上篇介绍了Trino的启动流程,这篇我们来学习下查询提交的流程。
本篇文章开始,我们将进行Trino的源码分析,一切还是从启动开始看起。
上一篇文章了解了 Trino 的基础 Airlift 框架。本篇将深入 Airlift 源码进行学习,Airlift中的服务都通过guice注入。
Airlift是Trino的系统基础,是一个用Java构建REST服务的轻量级框架。Airlift并不是像Spring一样的重量级框架,相反,它像是由一组开源工具组成的工具包,将来自 Java 生态系统的稳定、成熟的库汇集到一个简单、轻量级的包中,让您专注于完成工作,并包括对配置、指标、日志记录、依赖注入等的内置支持,使开发者能够在最短的时间内交付生产质量的 Web 服务。
Airlift包含以下标准开源库:
执行下面这段代码,你会发现排序的数组总是比未排序的数组计算快。
本文是CPU 流水线的简介。
Apache Kafka 是一个开源的事件流平台,用户可以在其中创建 Kafka 主题作为数据传输单元,然后与生产者和消费者一起发布或订阅该主题。虽然大多数 Kafka 主题都在积极使用,但由于业务需求发生变化或主题本身是短暂的,因此不再需要一些主题。Kafka 本身没有自动检测未使用主题并删除它们的机制。这通常不是一个大问题,因为 Kafka 集群可以容纳相当多的主题,数百到数千个。但是,如果主题数量持续增长,最终会遇到一些瓶颈,并对整个 Kafka 集群产生破坏性影响。TopicGC服务的诞生就是为了解决这个确切的问题。事实证明,它通过删除~20%的主题来减轻Kafka的压力,并将Kafka的生产和消费性能提高了至少30%。
本文简单介绍了SIMD技术和SIMD在Java中的应用。SIMD(Single Instruction Multiple Data)即单指令流多数据流,是一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据向量”)中的每一个分别执行相同的操作从而实现空间上的并行性的技术。简单来说就是一个指令能够同时处理多个数据。
在前面我们简单介绍过分布式锁,本篇文章会介绍如果基于数据库(Mysql)实现分布式锁。基于Mysql实现锁的一般场景是对性能要求不高,且不希望因为分布式锁而引入新的组件的。
Trino 是一种旨在使用分布式查询高效查询大量数据的工具。通常用在数据仓储、数据分析、海量数据聚合和报表生成等任务上,这些任务通常被归类为联机分析处理(online analytical processing,OLAP)。