- 博客(32)
- 资源 (2)
- 收藏
- 关注
原创 ceph对象存储使用的一些思考
index对象(存储在.rgw.bucket.index存储池中,或者元数据池中,一般是ssd介质)一般记录的是对象的记录,多版本信息、分片信息、多站点等。先说一下当前桶index设计的好处,对象通过hash桶的分片数(默认好像是128,可以调整,甚至分裂),分别在各个index上进行记录,便于list等操作。但是上述问题,却是我们在上市项目遇到的绝大对数复杂问题,也是对象存储的难点和重点改进方向,至少在我看来是的。3)桶索引分片的结构是omap结构,单个分片是有序的,分片之间是无序的。
2024-09-10 17:27:18 805
原创 SSD学习内容记录
固态硬盘 (SSD) 是基于半导体的 存储设备 ,依靠 闪存 在计算机系统中存储持久数据。在 SSD 中,每个内存芯片均由包含内存单元(也称为页或扇区)的块构建而成,而内存单元又包含内存位。与使用磁铁存储数据的磁性存储(例如 HDD 和软盘驱动器)不同,固态硬盘使用 NAND 芯片,这是一种非易失性存储技术,不需要任何电源来维护数据。HDD 由于盘片旋转和读/写头移动而具有固有的延迟和访问时间,而SSD没有移动部件,因此速度更快。SSD目前已超越HDD ,成为结构化数据 工作量的首选行业标准。
2024-09-10 16:28:42 906
原创 shell:获取命令执行结果的某行某列
1. 获取ll命令的第1,2,6列数据。2. 获取ll命令的某行的第某列的数据。3. 获取行数、最后一列。4. 指定分隔符进行获取。5. 获取某行的数据。
2024-09-05 10:50:00 179
原创 【ceph学习】rgw网关进程如何启动
主要在rgw_main.cc的main函数中,主要涉及一些关键线程启动、前端服务器(beast等)启动、后端存储模块启动(rados)、perf和log启动等。
2024-08-28 15:58:48 428
原创 【ceph学习】rados bench性能测试工具介绍
radosbench介绍Ceph 包含 rados bench 命令,用于在 RADOS 存储群集上执行性能基准测试。命令将执行写入测试,以及两种类型的读测试。在测试读取和写入性能时,–no-cleanup 选项非常重要。默认情况下,rados bench 命令会删除它写入存储池的对象。保留这些对象后,可以使用两个读取测试来测量顺序读取和随机读取的性能。命令及参数读写命令必选参数定义pool_name:测试操作的池名字。run_time:测试持续时长(单位为秒)。mode:测试模式。
2024-08-28 15:55:59 716
原创 【ceph学习】messenger模块代码走读(2)
从上文可以看到,messenger对象的初始化,调用了create函数。而mstype默认为async+posix,所以messenger对象均为asyncMessenger对象。在mgr的init中,client_messenger将this、client、objecter都进行了add_dispatch_head/add_dispatch_tail。下面看看asyncmessenger的初始化函数。messenger作为msg的基类,主要负责绑定IP、转发请求等。
2024-08-28 15:54:52 208
原创 【ceph学习】messenger模块代码走读(1)
从上文可以看到,messenger对象的初始化,调用了create函数。而mstype默认为async+posix,所以messenger对象均为asyncMessenger对象。在mgr的init中,client_messenger将this、client、objecter都进行了add_dispatch_head/add_dispatch_tail。下面看看asyncmessenger的初始化函数。messenger作为msg的基类,主要负责绑定IP、转发请求等。
2024-08-28 15:54:13 149
原创 【ceph学习】librados部分代码走读
本文主要介绍librados中关于C++部分的接口API调用。但并未深入到如何实现,有助于浅尝辄止的大概了解。
2024-08-28 15:53:31 342
原创 【ceph学习】ceph如何进行数据的读写(3)
上文说到,osdc中封装请求,使用message中的相关机制将请求发送出去。本文详细介绍osd服务端如何进行请求的接收。
2024-08-28 15:52:45 382
原创 【ceph学习】ceph如何进行数据的读写(2)
上文说到,librados/IoctxImpl.cc中调用objecter_op和objecter的op_submit函数,进行op请求的封装、加参和提交。本文详细介绍相关函数的调用。
2024-08-28 15:52:06 416
原创 【ceph学习】ceph如何进行数据的读写(1)
一个op经过初始化create,设置参数,setxattr,后面交给ioctx进行operate,submit给osdc。下一篇,介绍osdc部分的处理。
2024-08-28 15:51:35 1103
原创 ceph-rgw zipper的设计理念(2)
至此,一个bucket创建完毕,其他的op类似于此,整体结构变化不大。下图是rgw_rados.h、rgw_sal_rados.h、rgw_service.h和svc_module***.h的相关关系,比较粗糙,仅供参考。
2024-08-28 15:48:10 541
原创 ceph-rgw zipper的设计理念(1)
RGW在ceph存储中的主要作用是提供S3和Swift的协议访问支持。Zipper工作主要是将RGW分为协议部分和后端部分。协议部分还是支持S3和Swift协议,包括身份认证、协议参数解析和op操作解析等等;后端部分主要是对接不同的存储,比如rados(zipper中变换为RadosStore,主要通过RADOS访问ceph集群)、DBstore(可以用 SQL,特别是本地 SQLite 数据库来存储数据)、DAOS(intel的存储平台)等。
2024-08-28 15:44:29 1029
原创 【ceph学习】S3权限认证部分
认证的过程是一个对用户信息进行解析并且判断前后得到的秘钥是否一致的过程。auth_regitry的创建在rgw_main.cc:main()中进行初始化auth_registry对象very_request()进行认证当请求来临的时候,对用户信息进行分析和认证。首选利用用户的req_state进行申请秘钥如下述代码中:auth_data = ver_abstractor.get_auth_data(s);通过具体的策略进行秘钥()的计算。然后将秘钥和一些其他参数传递到下一个函数。
2024-08-28 15:42:49 717
原创 ffmpeg3.X解码器
首先致敬雷神!代码参考了雷神代码,在ffmpeg3.X的基础上进行修改。int videoDecode(){ AVFormatContext *pFormatCtx = NULL; AVCodec *pCodec = NULL; AVCodecContext *pCodecCtx = NULL; AVFrame *pFrame
2018-01-18 20:01:05 356
原创 ffmpeg3.x 编码实现
首先向雷神致敬!本文是在雷神的基础上进行修改,基于ffmpeg3.X版本,进行修改,本地测试通过。#include "stdafx.h"#include #include #include extern "C"{ #include #include #include #include #include #in
2018-01-18 10:49:54 606
原创 ORACLE日常处理
select wm_concat(t.COLUMN_NAME) from cols t Where t.TABLE_NAME='CHART_INFO_NAVY';
2016-05-19 14:04:45 288
原创 ORACLE 字符转义的问题
字符串在oracle中,一般都用单引号表示。比如:'abc'但是如果我们处理的字符串里边包含“”号的时候,就不能这么直接用了'''等于一个' 。 前面的两个单引号:'' 表示转义字符%“等于一个“ ,前面的百分号(英文)% 表示转义字符。 平时工作中遇到这些问题,记录一下琐碎知识。
2015-11-16 16:37:37 1123
原创 ORACLE的一些常见函数
1.字符串合并,concatconcat(str1, str2)2.字符串的ASC码,或者CHR码ASCII(‘A’) = 65 ;CHR(65) = ‘A’ ;3.instr函数对某个字符串进行判断,判断其是否含有指定的字符。instr(sourceString,destString,start,appearPosition) instr('源字符串' , '目标字符
2015-11-16 16:14:50 465
原创 Oracle 常见问题整理,来自CSDN帖子
1、DDL, DML和DCL 的不同(1)DDL is Data Definition Language statements. Some examples: CREATE,ALTER,DROP,RUNCATE (emove all records from a table, including all spaces allocated for the records ar
2015-11-13 10:44:06 340
原创 oracle的一些使用细节
查询所有表名:第一种方法:select * from user_tables where table_name like '%表名%';第二种方法:select * from dba_tables where table_name like '%表名%';区别:第一种适用于一般用户。第二种适应于DBA用户。
2015-11-05 13:43:21 326
原创 oracle 创建空间索引
经过一段时间的学习,现在将我关于空间索引的建立经验分享如下。如果数据是从别人的库中导入进来,先前如果建有空间索引,则需要删除之后,建立自己的空间索引(否则容易报错),如果完全是自己的数据,或者之前并没有建立空间索引那就可以直接建立了。首先进行查询,判断数据是否已经建立相应的空间元数据select * from user_sdo_geom_metadata t where t.sdo_t
2015-09-24 16:41:00 4167
原创 JAVA程序调用PLSQL里边写的小函数
1.首先需要登陆PLSQL。在procedure里边创建函数函数如下:create or replace procedure tableCT( sqlStr in varchar2) is-- sqlStr1 varchar2(80);begin --sqlStr1 := 'CREATE table HPDAPPENDIX.A (a number)'; Execute
2015-07-07 11:12:43 1185
原创 oracle spatial 空间数据的获取
最近遇到空间数据的读取问题,于是就查询各种资料,最终搞定,实现简单的查询,能够读取简单的点数据。oracle的空间数据类型GEOMETRY,读取的过程需要加入两个包:sdoutl.jar和sdoapi.jar。我的JAR包路径:F:\app\Administrator\product\11.2.0\dbhome_1\md\jlib。读者可自行对照。另外推荐读者参考一下oracle的官方文档,有...
2015-03-31 19:39:56 1082
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人