alluxio短路读

恩慈2年前技术文章1431

原理

当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

    相关文章

    8.0 新特性-Generated Invisible Primary Key

    8.0 新特性-Generated Invisible Primary Key

    说明MySQL Innodb 引擎采用的是 IOT(索引组织表)存储方式,主键的重要性就不言而喻。在早期版本用户如果没有显式指定主键,会自动生成隐藏主键 row_id 来组织 B+ 树,隐藏主键 ro...

    Ranger-hdfs插件部署

    Ranger-hdfs插件部署

    部署在两个namenode节点解压插件cd /opt/hadooptar -xzvf ranger-2.4.0-hdfs-plugin.tar.gz -C /opt/cd /opt/ranger-2....

    Nginx实现数据库端口转发

    一、需求客户想要将IDC服务器的数据库端口暴漏在公网上,然后其他业务来调数据库接口。为了保证安全,只开放指定的公网ip访问。二、逻辑设计由于客户的IDC服务器与云ECS服务器通过专线打通,所以只需要在...

    oracle开启关闭归档

    一、开启归档1.开启前准备:备份spfileCreate pfile='d:pfileSID.ora' from spfile;OS上创建归档目录:+DATA_DG/arch设置归档路径:alter...

    Kubernetes 因令牌过期新增节点报错问题处理

    1、背景Kubernetes 集群初始化完成之后,间隔一天发现 Worker 节点无法正常加入集群。2、报错信息$ kubeadm join api.k8s.com:9443 --token mmvh...

    kubernetes调度策略

    1、背景在 Kubernetes 中,调度 (scheduling) 指的是确保 Pod 匹配到合适的节点,以便 kubelet 能够运行它们。调度的工作由调度器和控制器协调完成。调度器通过 Kube...

    发表评论    

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