Clickhouse: 随笔杂记

Clickhouse 文件缓存的使用

元数据缓存
1、Clickhouse启动的时候会加载所有表的元数据信息,这部分会缓存在内存里面。这部分的内存没有办法知道并且也不走MemoryTracker。


Mark数据缓存
2、Clickhouse会缓存表的mark信息在内存里, 使用LRU算法来控制。缓存大小通过配置文件中config.xml里面的mark_cache_size属性来控制。默认是5G。每个Shard上面占用的内存。


数据缓存
3、Clickhouse会缓存表的解压缩数据放到内存里面,使用LRU算法来控制。LRU的大小通过config.xml里面的uncompressed_cache_size属性来控制。默认是8G。每个Shard上面占用的内存。

Clickhouse 执行DDL DML锁机制

lockForShare
用于保证占有lock时table不会被drop.用于SELECT,后台的merge
lockForAlter
用于保证占有lock时同时刻只会处理一个ALTER Query
lockExclusively
用于保证占有lock时没有任何其他线程(如select,merge,alter)对表进行操作


两种锁:
alter_lock
进行alter操作的时候必须要抢占的锁以保证任何时刻只有一个alter线程处理table,drop等操作也需要调用lockExclusively抢占该锁以保证进行操作前所有alter操作已经结束.
drop_lock
所有select/merge相关的query需要调用lockForShare抢占该锁保证表没有被drop.
所有drop相关操作时需要调用lockExclusively抢占该锁,保证进行drop时所有其他任何select/merge操作都已经结束.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/736488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java学习之路-数据类型与变量

目录 数据类型与变量 1. 字面常量 2. 数据类型 3. 变量 3.1 变量概念 3.2 整型变量 3.2.1 整型变量 3.2.2 长整型变量 3.2.3 短整型变量 3.2.4 字节型变量 3.3 浮点型变量 3.3.1 双精度浮点型 3.3.2 单精度浮点型 3.4 字符型变量 3.5布尔型变量 3.6 类型转换 …

苍穹外卖学习-----2024/03/010---修改套餐,套餐状态修改开发

修改套餐 4.1 需求分析和设计 产品原型: 接口设计(共涉及到5个接口): 根据id查询套餐根据类型查询分类(已完成)根据分类id查询菜品(已完成)图片上传(已完成&#xf…

Linux 地址空间

目录 一、程序地址空间 1、虚拟地址 Makefile新写法 2、进程地址空间分布 3、栈&堆 4、static修饰局部变量 5、字符串常量不可修改 6、虚拟地址与物理地址的联系 二、CPU读取程序全过程 1、形成可执行程序 2、生成虚拟地址 3、程序的启动 4、创建进程 5、地…

Python 学习——Python requests 库文档

目录 快速上手一、 发送请求二、 传递 URL 参数三、 响应内容3.1 文本相应内容3.2 二进制响应内容3.3 JSON 响应内容3.4 原始响应内容 四、 定制请求头五、 更加复杂的 POST 请求5.1 字典方式5.2 元组方式5.3 传递一个string5.4 JSON格式5.5 上传文件5.6 发送字符串为文件 六、…

OrangePiLinux连接小米手机使用adb显示“List of devices attached”的问题解决

参考文章adb连接不上手机,提示“List of devices attached” - 简书 (jianshu.com) adb解决报错error: no devices/emulators found error: cannot connect to daemon_adb.exe: no devices/emulators found-CSDN博客 error: no devices/emulators found解决办法-C…

Java三代日期类

文章目录 日期类第一代日期类第二代日期类第三代日期类LocalDateTime方法LocalDateTime格式化日期与时间戳的转换Date转换为时间戳时间戳转换为Date 日期类 在Java中,有三代日期类:java.util.Date、java.util.Calendar和java.time包下的日期类。这三代日…

【Redis】RedisTemplate序列化传输数据

使用自定义的序列化器 使用RedisTemplate默认的序列化器发送数据,会将key全都当成Object处理,从而按照对象的方式转成json格式发送到服务器,这样会导致两个问题。一是不方便阅读,二是会大大浪费内存。因此,建议自定义…

Linux之线程控制

目录 一、POSIX线程库 二、线程的创建 三、线程等待 四、线程终止 五、分离线程 六、线程ID:pthread_t 1、获取线程ID 2、pthread_t 七、线程局部存储:__thread 一、POSIX线程库 由于Linux下的线程并没有独立特有的结构,所以Linux并…

Qt设置右键菜单无效customContextMenuRequested(const QPoint pos)

问题代码: void MainWindow::onCustomContextMenuRequested(const QPoint &pos) {QTreeWidgetItem *item ui->treeWidget->itemAt(pos);if (item){QMenu menu(ui->treeWidget);TreeNodeType nodeType (TreeNodeType)item->data(0, Qt::UserRole …

LightDB24.1 oracle_fdw支持服务端GBK编码

功能介绍 oracle_fdw是一个PG的插件,用于连接oracle数据库,由于原生PG不支持服务端GBK编码,所以原生的oracle_fdw也不支持服务端GBK编码。在LightDB23.3中支持了服务端GBK编码,导致在GBK编码的数据库中使用oracle_fdw时报错。 Li…

python82-Python的函数高级内容之使用函数变量

Python的函数是“一等公民”,因此函数本身也是一个对象,函数既可用于赋值,也可用作其他函数的参数,还可作为其他函数的返回值。 使用函数变量 Python的函数也是一种值:所有函数都是function对象,这意味着可以把函数本…

es6的新特性

ECMAScript 6(也称为 ES6 或 ECMAScript 2015)是 JavaScript 的一个重要更新版本,引入了许多新的语法和功能,以提高开发效率和代码可读性。以下是 ES6 中一些比较常见和重要的新特性: let 和 const 声明: l…

一篇搞定mysql数据库基础

目录 一、MySQL具体的特点 1.关系型数据库(RDBMS): 2.MySQL是一个“客户端-服务器”结构的程序 Q1:服务器能不能知道客户端什么时候发请求?? Q2:服务器是只给一个客户端提供服务吗?? 二、M…

LeetCode 80.删除有序数组中的重复项 II

目录标题 删除有序数组中的重复项 II题目解题思路实现代码代码讲解总结删除有序数组中的重复项 II 题目 解题思路 慢指针指向满足条件的数字的末尾,快指针遍历原数组。 并且用一个变量记录当前末尾数字出现了几次,防止超过两次。最后返回维护慢指针的结果+1即可。 实现代…

聊聊pytho中的函数

Python中的函数 一、Python中函数的作用与使用步骤 1、为什么需要函数 在Python实际开发中,我们使用函数的目的只有一个“让我们的代码可以被重复使用” 函数的作用有两个: ① 代码重用(代码重复使用) ② 模块化编程&#x…

ChatGPT用不了,发了没反应,终于解决了!

大概在几天前的早上,ChatGPT突然就用不了。 这完全打乱了我的工作节奏!!!(所以,我就去玩了) 用不了的具体表现是,你输入内容之后,内容消失,按钮变灰&#xff…

flask流式响应

Flask提供了Response对象来处理HTTP响应。可以通过在视图函数中返回一个Response对象,然后使用Response对象的iter方法来实现将数据流式传输到客户端。 1.1 循环生成迭代数据块 from flask import Flask, Response, stream_with_context, requestapp Flask(__nam…

3488.最短路径floyd、并查集

N个城市,标号从 0 到 N−1,M 条道路,第 K 条道路(K 从 0开始)的长度为 2K,求编号为 0的城市到其他城市的最短距离。 输入格式 第一行两个正整数 N,M,表示有 N 个城市,M 条道路。接下…

上位机图像处理和嵌入式模块部署(qmacvisual条形码识别)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们谈到过,qmacvisual提供功能的方式主要就是插件导入。目前,大家如果能正确地把qmacvisual编译出来的话,…

Constrained Iterative LQR 自动驾驶中使用的经典控制算法

Motion planning 运动规划在自动驾驶领域是一个比较有挑战的部分。它既要接受来自上层的行为理解和决策的输出,也要考虑一个包含道路结构和感知所检测到的所有障碍物状态的动态世界模型。最终生成一个满足安全性和可行性约束并且具有理想驾驶体验的轨迹。 通常,motion plann…