alluxio短路读

恩慈2年前技术文章1702

原理

当Client和Worker在同一节点时,客户端对本地缓存数据的读写请求可以绕过RPC接口,使本地文件系统可以直接访问Worker所管理的数据,这种情况被称为短路写,速度比较快,如果该节点没有Worker在运行,则Client的读写需要通过网络访问其他节点上的Worker,速度受网络宽带的限制。

当应用程序需要读取的数据已经被缓存在本地Alluxio worker上时,即为本地缓存命中。应用程序通过Alluxio client请求数据访问后,Alluxio client会向 Alluxio master检索储存该数据的Alluxio worker位置。如果本地Alluxio worker存有该数据,Alluxio client将使用”短路读”绕过Alluxio worker,直接通过本地文件系统读取文件。短路读可避免通过TCP socket传输数据,并能提供内存级别的数据访问速度。短路读是从Alluxio读取数据最快的方式。
在默认情况下,短路读需要获得相应的本地文件系统操作权限。当Alluxio worker和client是在容器化的环境中运行时,可能会由于不正确的资源信息统计而无法实现短路读。在基于文件系统的短路读不可行的情况下,Alluxio可以基于domain socket的方式实现短路读,这时,Alluxio worker将通过预先指定的domain socket路径将数据传输到client

image.png

配置

  • 写参数: alluxio.user.file.writetype.default

  1. CACHE_THROUGH:数据被同步写入AlluxioWorker和底层存储

  2. MUST_CACHE:数据被同步写入AlluxioWorker,不写底层存储

  3. THROUGH:数据只写底层存储,不写入AlluxioWorker

  4. ASYNC_THROUGH:数据同步写入AlluxioWorker并异步写底层存储(速度快)

  • 读参数: alluxio.user.file.readtype.default

    1. CACHE_PROMOTE:数据在Worker上,则被移动到Worker的最高层,否则创建副本到本地Worker

    2. CACHE:数据不在本地Worker中时直接创建副本到本地Worker

    3. NO_CACHE:仅读数据,不写副本到Worker

    相关文章

    Linux解锁线程基本概念和线程控制,步入多线程学习的大门(1)

    Linux解锁线程基本概念和线程控制,步入多线程学习的大门(1)

    1、线程初识1.1线程的概念线程是进程内部的一个执行分支,线程是CPU调度的基本单位那什么是进程呢?我们之前学习了解到的进程是加载到内存中的程序进程 = 内核数据结构 + 进程代码和数据。今天我们要推...

    DBMS_SYSTEM跟踪10046

    SET_SQL_TRACE_IN_SESSION只能设置level 1的10046事件--启用level 1 Trace EXEC SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_...

    MySQL运维实战(4.4) SQL_MODE之STRICT_TRANS_TABLES和STRICT_ALL_TABLES

    如果设置STRICT模式,则如果数据写入时,如果数据不符合字段定义(字符串超出长度、数值类型数据超出范围、违反not null约束等),SQL会报错。如果不设置STRICT模式,会对异常数据进行截断处...

    PostgreSQL 逻辑备份详解

    前言当谈到关系型数据库的备份和恢复时,逻辑备份是一种备份方法,它备份数据库的逻辑结构和数据,而不是直接备份磁盘上的物理数据。这样做有许多好处,比如备份速度更快,可以选择性地备份数据库中的某些数据,以及...

    Elasticsearch写入优化

    1.1 基本优化手段Elasticsearch默认的设置和参数配置下,是综合考虑了数据的可靠性、搜索实时性、写入速度等因素。但在安平实际场景中,业务对数据的可靠性和搜索实时性要求并不高,反而对写入速度...

    Kafka性能维度标准

    如何判断一个kafka集群是否已经处于性能瓶颈,通常的判断条件有如下几点:维度1:磁盘IO读写磁盘性能是kafka重要的参数指标,如果磁盘IO到达性能瓶颈会直接导致业务故障。Kafka读写性能跟磁盘I...

    发表评论    

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。