Doris的数据导入机制以及原子性保证Phase 2 总结 03 Doris 中的导入 • 写入带版本 • 查询带版本 多版本机制解决读写冲突 两阶段导入保证多表原子生效 • 支持并行导入 • 有冲突时按导入顺序生效,无冲突导入时并行生效 写入带版本 查询带版本 支持并行导入 冲突时按顺序生效 (多版本机制) (两阶段导入) 事务能力保证 使用案例 04 BI Application 数据加载0 码力 | 33 页 | 21.95 MB | 1 年前3
Curve支持S3 数据缓存方案© XXX Page 1 of 9 Curve支持S3 数据缓存方案© XXX Page 2 of 9 版本 时间 修改者 修改内容 1.0 2021/8/18 胡遥 初稿 背景 整体设计 元数据采用2层索引 对象名设计 读写缓存分离 缓存层级 对外接口 后台刷数据线程 本地磁盘缓存 关键数据结构 详细设计 Write流程 Read流程 ReleaseCache流程 因此需要通过Cache模块解决以上2个问题。 整体设计 整个dataCache的设计思路,在写场景下能将数据尽可能的合并后flush到s3上,在读场景上,能够预读1个block大小,减少顺序读对于底层s3的访问频次。从这个思路上该缓存方案主要针对的场景是顺序写和顺序 读,而对于随机写和随机读来说也会有一定性能提升,但效果可能不会太好。 元数据采用2层索引 由于chunk大小是固定的(默认64M),所以Inode中采用map缓存分离 读写缓存的设计采用的是读写缓存分离的方案。 写缓存一旦flush即释放,读缓存采用可设置的策略进行淘汰(默认LRU),对于小io进行block级别的预读。 即读写缓存相互没影响不相关, 缓存层级 缓存层级分为fs->file->chunk->datacache 4层,通过inodeId找到f 0 码力 | 9 页 | 179.72 KB | 6 月前3
Java 应用与开发 - Java 内存模型与分配机制大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java 应用与开发 Java 内存模型与分配机制 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 30, 2018 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 学习目标 1. 理解 JVM 内存模型,掌握 JVM 内存构成 2 Java 程序内存运行分析 Java 内存管理建议 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java 垃圾回收机制 JVM 的垃圾回收机制(GC)决定对象是否是垃圾对象,并进行 回收。 O 垃圾回收机制的特点 ▶ 垃圾内存并不是用完了马上就被释放,所以会产生内存释放 不及时的现象,从而降低内存的使用效率。而当程序庞大的 时候,这种现象更为明显。 ▶0 码力 | 44 页 | 818.30 KB | 1 年前3
2.1.1 Golang主动式内存缓存的优化探索之路Golang主动式内存缓存的优化探索之路 安晏伯 学而思网校 技术专家 目 录 问题引入 01 难点攻克 02 主动式内存缓存框架 03 总结 04 问题引入 第一部分 为什么能有极致的性能? 01. 如何优化? 解决了哪些技术难题? 主动式内存缓存 如何优化? 极致的性能 除了网络IO,与Redis有什么区别? 复杂的查询怎么办? 02. 传统的Cache很难 • 复杂的查询场景,内存数据如何高效组织? • 主动式内存缓存,如何保证数据实时性? • 数据太多,内存不够用,如何进行存储扩展? 通过本次分享,可以带来哪些收获? 难点攻克 第二部分 使用内存缓存 数据一致性如何保证? 一致性 01. 缓存如何保证更新,如何与数据库同步 同步、更新 被动方式 缓存过期 定期同步 主动方式 监听数据变化 数据加载,更新 热数据的交换 冷 热 新 系 统 历 史 数 据 冷数据、数据量多 缓存成本大、命中低、收益小 热 数 据 当前系统中的热点数据 命中率高 系 统 新 增 数 据 近期新增数据,较大概率命中 存储空间 缓存性能 冷热可交换,引擎可扩展 06. 冷热数据交换,通过栈式缓存结构,实现多级缓存策略 语言的局限性 07. 基于golang语言,内存对象超过百万量级后出现的GC耗时问题0 码力 | 48 页 | 6.06 MB | 1 年前3
CurveFS S3本地缓存盘方案Page 1 of 9 Curvefs-S3 本地写缓存盘方案© XXX Page 2 of 9 背景 方案设计 主要数据结构定义 方案设计思考 POC验证 背景 当前,s3客户端在写底层存储的时候是直接写入远端对象存储,由于写远端时延相对会较高,所以为了提升性能,引入了写本地缓存盘方案。也即要写底层存储时,先把数据写到本地缓存硬盘,然后再把本地缓存 硬盘中的数据异步上传到远端对象存储。 方案设计© S3模块接收到写入后先写入写内存缓存页,如果满足持久化的条件后,那么则准备持久化。 如果未配置本地硬盘作为写缓存,那么直接持久化到远端的对象存储;如果配置了本地硬盘作为写缓存,那么则尝试先写入本地硬盘写缓存目录。 写本地硬盘缓存目录之前先判断缓存目录容量是否已达到阈值,如果已经达到阈值,那么则直接写入到远端对象存储;否则,则写入到本地硬盘写缓存目录中。文件写入本地硬盘写缓存目录后,从本地硬盘读目录© XXX Page 4 of 9 做一个硬链接链接到该文件。 本次io在本地硬盘写入好之后,异步上传模块会适时把本地硬盘写缓存目录中的文件上传到远端对象存储集群,上传成功后,删除本地写缓存目录中的对应文件。 同时,缓存清理模块会定时检查本地硬盘缓存目录容量情况,如果容量已经达到阈值了,则进行文件的清理工作。 另外,异常管理模块处理客户端挂掉后的文件重新上传问题。 主要数据结构定义 class0 码力 | 9 页 | 150.46 KB | 6 月前3
2.2 龚浩华(月牙寂)p2p缓存系统 基于Golang的Aop设计模式LOGO p2p缓存系统 基于Golang的Aop设计模式 龚浩华 QQ 29185807 月牙寂 背景 v Web缓存(类似CDN技术) § 网页、图片 § 普通下载 § 普通视频 v P2P缓存 § 下载(bt等) § 视频(qvod、百度影音等) 背景 v P2P缓存好处 § 一次获取,多次利用 § 减少局域网出网流量 减少局域网出网流量 § 提升用户体验 背景 v P2P缓存服务器(基于c++开发) § 代码量大 § 协议数量多 § 耦合性高 § 潜在bug多 重构 or 重新推倒? 背景 现实世界是怎么样的 分布式、并发 职能化、松散化 自组织、智能化 程序框架是否也可以这样? OOP v C++对象代码运行 C++对象代码运行 § 有属性(成员变量)、有行为(成员函数) 没有可以独立执行的机制 § 有属性(成员变量)、有行为(成员函数) 还有独立执行的活动(有自己独立的线程) § 有属性(成员变量)、有行为(成员函数) 借助其他线程运行 AOP AOP (agent-oriented programming) Agent:智能体、职能代理。源于分布式人0 码力 | 29 页 | 338.20 KB | 1 年前3
美团点评2018技术年货在早期,运营配置上线流程需要研发同学参与。产品提出运营配置需求,研发同学通过修改代码对配置进 行变更,然后通过代码上线进行发布。整体流程如下: 这种上线机制存在以下几个问题: 1. 配置上线过多依赖于代码的发布。 2. 整体上线过程无审核机制,无法对配置资源进行合规审核。 3. 配置容易出错,上线前不能提前预览上线后的效果,只有“事后”(上线后)才能验证效果。 APPKIT打造稳定、灵活、高效的运营配置平台 运营流程化 设计一套整体的流程管理机制,解决运营的投放、审核、发布和回滚的问题。通过流程化的机制,我们实 现了“事前”、“事中”、“事后”的三级管理。 首先,在运营配置上线前,通过测试用户的预览功能,可以预览上线后的实时效果。同时,通过穿越功能 可查看将来时段显示的效果。防止出现上线后链接出错、视觉效果达不到预期等问题。 其次,在流程阶段,引入审核机制,通过视觉和内容两方面的审核,保证投放数据的准确性。 最后,在运营配置上线后,如果发现问题,可以通过快速回滚,最大限度地实现“止损”。 接口SDK化 接口SDK化 对于运营数据,无论是通过数据库的落地方案、还是通过分布式缓存的方案,都无法彻底解决服务中心化 和服务抖动的问题。通过接入的SDK化,可以做到数据的本地缓存更新机制,解除对中心化服务的依赖, 大大提升服务的稳定性和性能。同时整个APPKIT服务变成可水平扩展,在扩展过程中也不会影响中心服 务的稳定性。 四、APPKIT架构0 码力 | 229 页 | 61.61 MB | 1 年前3
Nacos架构&原理
Nacos 寻址机制 56 Nacos 服务发现模块 63 Nacos 注册中心的设计原理 63 Nacos 注册中心服务数据模型 80 Nacos 健康检查机制 89 Nacos 配置管理模块 97 配置⼀致性模型 97 Nacos ⾼可⽤设计 100 Nacos 高可用设计 100 Nacos 鉴权插件 103 Nacos 账号权限体系 103 Nacos 认证机制 110 Nacos 19 > Nacos 架构 内核层 插件机制:实现三个模块可分可合能力,实现扩展点 SPI 机制,用于扩展自己公司定制。 事件机制:实现异步化事件通知,SDK 数据变化异步通知等逻辑,是 Nacos 高性能的关键部分。 日志模块:管理日志分类,日志级别,日志可移植性(尤其避免冲突),日志格式,异常码+帮 助文档。 回调机制:SDK 通知数据,通过统⼀的模式回调用户处理。接口和数据结构需要具备可扩展性。 容量管理:管理每个租户,分组下的容量,防止存储被写爆,影响服务可用性。 流量管理:按照租户,分组等多个维度对请求频率,长链接个数,报文大小,请求流控进行控制。 缓存机制:容灾目录,本地缓存,Server 缓存机制,是 Nacos 高可用的关键。 启动模式:按照单机模式,配置模式,服务模式,DNS 模式模式,启动不同的模块。 ⼀致性协议:解决不同数据,不同⼀致性要求情况下,不同⼀致性要求,是0 码力 | 326 页 | 12.83 MB | 9 月前3
Apache Shiro 1.2.x Reference Manual 中文翻译Filters 默认过滤器 10.4. Session Management 10.5. JSP Tag Library IV. Auxiliary Support 辅助支持 11. Caching 缓存 12. Concurrency & Multithreading 并发与多线程 13. Testing 测试 14. Custom Subjects 自定义 Subject V. Integration Webapp Tutorial 初学者web应用教程 22. Application Security With Apache Shiro 用Shiro保护你的应用安全 23. CacheManager 缓存管理 24. Apache Shiro Cryptography Features 加密功能 Apache Shiro 1.2.x Reference Manual 中文翻译 3 apache-shiro-1 还有其他的功能来支持和加强这些不同应用环境下安全领域的关注点。特别是对以下的功能 支持: Web支持:Shiro 提供的 web 支持 api ,可以很轻松的保护 web 应用程序的安全。 缓存:缓存是 Apache Shiro 保证安全操作快速、高效的重要手段。 并发:Apache Shiro 支持多线程应用程序的并发特性。 测试:支持单元测试和集成测试,确保代码和预想的一样安全。 "Run0 码力 | 196 页 | 2.34 MB | 1 年前3
Apache Shiro参考手册中文版也提供了额外的功能来支持和加强在不同环境下所关注的方面,尤其是以下这些: Web Support:Shiro 的 web 支持的 API 能够轻松地帮助保护 Web 应用程序。 Caching:缓存是 Apache Shiro 中的第一层公民,来确保安全操作快速而又高效。 Concurrency:Apache Shiro 利用它的并发特性来支持多线程应用程序。 Testin 但这是一个相当简单的应用程序。你可能已经问过你自己,“如果我不想使用 INI 用户帐户,而是要连接到一个更 复杂的用户数数据源,该怎么办呢?”。 要回答这个问题,需要对 Shiro 的架构和支持的配置机制有更深一些的理解。我们下面将涉及到 Shiro 的架构。 Apache Shiro Architecture Apache Shiro 的设计目标是通过直观和易于使用来简化应用程序安全。Shiro Authorizer(org.apache.shiro.authz.Authorizer) Authorizer 是负责在应用程序中决定用户的访问控制的组件。它是一种最终判定用户是否被允许做某事的机制。 与 Authenticator 相似,Authorizer 也知道如何协调多个后台数据源来访问角色恶化权限信息。Authorizer 使用 该信息来准确地决定用户是否被允许执行给定的动作。0 码力 | 92 页 | 1.16 MB | 1 年前3
共 791 条
- 1
- 2
- 3
- 4
- 5
- 6
- 80













