关于大数据:TDengine-研究与浅析

2次阅读

共计 1334 个字符,预计需要花费 4 分钟才能阅读完成。

一. 摘要前言

IT 科技的迅猛发展,各种类型的黑科技与利用终端不断涌现,产生各种海量数据,大数据处理平台应运而生,但其宏大体量与简单的架构使开发移植与部署变的越来越艰难。现今各国频繁打贸易战,在多种不确定状况下,基础架构极易被人卡脖子,成为技术倒退的拦路虎,那么 TDengine 作为近几年新呈现的一款优良开源大数据根底平台,具备性能、可伸缩、高牢靠、零治理诸多特点,且核心技术全副自研,不用放心被外国限度,相比于国外同类产品,齐全开源并具备良好的产品生态社区,可能根本代替国外同类产品,且可能在要害指标达到更优。

二. 技术剖析

1. 对于传统数据库 SQL 语法的兼容性

 Tdengine 不仅具备丰盛的利用程序开发接口,反对各种支流语言,能对各种类型的客户端进行开发,过来曾遇到过移植一款开源的 Fortran 分子动力学应用软件,因开发语言的小众化,无奈找到与之匹配的客户端,只能在认真钻研并梳理分明业务逻辑后,自行开发了一套客户端才保障了整个我的项目需要,两头为保障进度,在参考资料少,Fortran 对口开发人员稀缺的状况下,通过加班加点才保障了我的项目没有被延期。2. 设计技巧

  通过对 TDengine 设计场景与原理的钻研,再配合原理钻研其代码,因为其代码是 C 语言,贴近硬件,效率高 (效率更高的也只有汇编了)。在古代各种开源框架与低代码背景下,C 语言特点就是要常常独自造轮子,对 TDengine 源码组织构造从简入繁进行探讨钻研。

1). 根底数据结构

   近些年,越来越多的高级语言采纳成熟的自研或者第三方 SDK,很典型的比方 Java 与 python,很少有从头实现的 API 接口,就算是难度大的 C ++,曾经有不少高级新个性与各种 STL,Boost 类库撑持,而 Tdengine 中各种 malloc/free,内存池机制,一级指针,二级指针,回调钩子函数应用技巧,都显示了开发者扎实的根本功底。C++ Boost 库中常见的各种智能指针,能升高因指针使用不当造成的异样解体问题,tmempool 实现的内存池,防止了内存碎片与内存回收问题,tlist 与 tskiplist 双向链表实现,tarray 数组实现办法均很奇妙,都能够作为拿进去独自封装为 API

2). RPC Epoll

  反对分布式集群的重要 RPC 基于事件模型驱动的网络库,实现其不同节点之间的通信,MQTT 类的物联网框架是基于订阅公布的传输模式,RPC 采纳 C / S 架构模式,逻辑清晰明了,Client 端发送先发送对应的计算申请给 Server 端,Server 端收到申请先发送应答协定包到 Client 端,Server 端再将计算申请解析后执行并将后果返回 Client 端。从实现逻辑来说 TDengine RPC 的逻辑性要因为 MQTT,更适宜物联网场景,代码可读性更高,远优于其它同类框架。RPC 数据交互依赖 TCP/UDP 通信,而 TCP/UDP 通信的根底在于 socket,对于同时存在多个连贯的状况下,应用了效率最高的 epoll,工夫复杂度仅为 O(1), 这里比拟奇妙的是,因为没有采纳一主 / 多从的多过程异步事件驱动模型,而是通过创立工作线程来解决音讯,那么就防止了在事件到来时,多个过程被不必要的唤醒,从而引起”惊群”景象, 进步了整体数据流的解决效率。作者:superxs
正文完
 0