自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(357)
  • 资源 (11)
  • 问答 (1)
  • 收藏
  • 关注

原创 2020阿里社招面试心得(成功拿到offer)

先自我介绍一下,本人来自西安的一所211计算机高校。17年研究生毕业,先面试了阿里,四面然后挂了,具体参考: https://blog.csdn.net/dlf123321/article/details/52659174后面面试腾讯,三面,过了。具体参考https://blog.csdn.net/dlf123321/article/details/52659174 。之后两年半就一直在腾讯做分布...

2020-03-13 19:18:49 16562 6

原创 2017京东校招面试回忆(已成功拿到offer)

1面 24日 晚上5:30-6:401 先说自己熟悉的领域2 list的实现有什么?  arraylist1.6 1.7区别  底层  linkedlist 底层是怎么实现的 单向还是双向  lru缓存  如果按位置索引,那个快?3 hash的实现 是否是线程安全的 写一个不安全的实现 哪里不安全  hashmap的不安全在于扩容的时候  参见:http://b

2016-09-26 23:02:18 13446 7

原创 2017腾讯校招面试回忆(成功拿到offer)

我本来报的岗位是企业事业群,后来把我分配到了技术工程群三面是9月23日,到现在,最后的结果还没出来,我也不知道是过了还是挂了,先写出来,希望对明年找工作的朋友们一点帮助一面  21号 大概1小时 面试半小时 聊天半小时 1 二叉树的查找   我大笔一挥,在纸上写下了下面的的代码 public static TreeNode find(TreeNode tree,

2016-09-26 15:18:22 19999 9

原创 fio的常用命令

【代码】fio的常用命令。

2024-09-24 16:32:02 100

原创 计算Rocksdb每10秒下刷到L0的数据大小

一共需要两个文件。

2024-09-20 16:49:45 249

原创 谈谈Rocksdb的手动Compact

它默认是true,也就是说,如果我现在手动进行了一次compact,那么在我手动的compact执行完成之前,系统不会再进行内部的compact。也就是说即使L0的sst都满了,也不会把L0的sst往下刷,直到手动compact完成。执行上面的逻辑后,系统就会把L4之前在key1和key100范围内的sst都一层一层合并,最终保证在key1和key100范围内的sst都处于L4层。我已经没想明白为什么要这样,手动compact本身就是个低级别的事情,为什么要阻碍系统内部的compact呢?

2024-09-13 15:16:06 422

原创 谈谈Rocksdb的迭代器

以下介绍都来自rocksdb 6.15.5版本。

2024-09-05 20:15:09 470

原创 Rocksdb一些日志

表示:37号 job 需要从L3读1个文件,然后L4读23个文件,一共需要读取1512930764 字节的数据进行合并。而且通过table_file_creation 也可以看到新生成的sst里面kv总数是多少,墓碑是多少。会答应出每隔10分钟各个列簇compation的信息,具体包括。结果里ingest就是写入的数据总量。

2024-08-30 15:36:38 389

原创 谈谈CosBench

我一直认为,任何一个组件的开发者在编写user guide的时候都应该秉持这样一个思路:最快的,最方便的先让用户能把这个组件跑起来。各种优化细节应该后面再说,而不是一上来就给用户说一大堆琐碎的知识点。

2024-08-23 11:47:28 751

原创 谈谈Rocksdb的del优化--CompactOnDeletionCollector

在GetIntTblPropCollectorFactory函数里面,会把我们设定的factory包装成一个个UserKeyTablePropertiesCollectorFactory,然后放到ColumnFamilyData的int_tbl_prop_collector_factories_里。核心逻辑就是把sliding_window_size分成128个小段,当处理了sliding_window_size个key之后,128段也走完了,就把第1段的数据抛弃掉,接着处理第129段数据。

2024-08-15 09:30:28 1012

原创 聊聊bluestore&rocksdb的env

env说白就是承接上层系统对文件的读写与下层操作系统交互的功能的一个组件。

2024-08-12 16:27:35 231

原创 谈谈rocksdb里面的block cache的生命周期管理

block cache的生命周期管理

2024-08-09 10:31:40 619

原创 rocksdb的缓存在读流程里面的作用

我认为理解一个东西最好的逻辑,就是先假定它不存在,然后看看在没有它的情况整个流程如何运行,然后再去看看加上它都解决了那些问题。Version::Get里面会按照L0的sst文件都检查一遍,然后之后的每层只用检查1个sst文件的逻辑进行搜索。具体对某个sst文件的查询在Version::Get里面的TableCache::Get方法里。在BlockBasedTable::Open里面,就是按照如下的顺序解析各个block的。这里面大的流程就是先从mem读,如果没有就去imm读,如果还没有就去sst里面读。

2024-08-01 12:02:03 467

原创 关于c++的友元类

【代码】关于c++的友元类。

2024-07-30 17:17:34 224

原创 Cmake静态库与动态库的构建与使用

但是ForHello_local_share 还动态依赖原来的库,你把目录名称改了,ForHello_local_share 想要去找hello_share这个动态库自然找不到了。ForHello_local_static 已经把库加到自己里面了,外面的库有什么变化,对ForHello_local_static 本身已经没有影响了。之后 我们可以看到两个可执行文件:ForHello_local_static 和ForHello_local_share。假定库不是我们的项目产生的,而是别人给的呢?

2024-07-04 00:22:18 421

原创 Ceph相关命令

【代码】Ceph相关命令。

2024-05-29 15:03:56 446

原创 谈谈BlueStore的BitmapAllocator

一次allocate的单元就是alloc_unit,咱们就按64KB计算。如果L2的槽位是上0xffffffffffffffff,就说明整个槽位都还没有分配过任何空间,完全是空闲的,把free_pos设为0,然后去L1查找。一个L1的children,管理L0里8个slot,L0里1个slot管理64个children,也就是说L1的一个children对应L0。一个L2的children,管理L1里8个slot,L1层1个slot管理32个children,也就是说L2的一个children对应L1。

2024-05-27 18:20:37 890

原创 谈谈std::map的lower_bound

我们知道std::map内部是一个红黑树,放到std::map里的数据等有一个能比较大小的方法。它相当于java里面的TreeMap。它里面有个lower_bound方法,返回一个迭代器,它指向map里第一个大于等于参数的元素。方法的签名很简单,但是在不同情况下,它的返回值还是有些麻烦的,这里记录一下。分别指明下面几种case。

2024-05-14 10:08:09 433

原创 关于In template: no matching constructor for initialization of

n),而没有默认构造函数(即没有不带参数的构造函数),当std::map试图为键20默认构造一个Extent对象作为占位符时,就会找不到合适的构造函数来匹配,从而引发“no。Extent>,即键是int类型,值是Extent类型的对象。int>),插入操作不涉及复杂的对象构造,因为其值类型是基本类型int,可以直接进行复制赋值,所以不会遇到构造函数匹配的问题。赋值或插入:接着,如果找到了键20,则直接对该键对应的值进行赋值;在您提供的代码中,map3是一个std::map<int,基础不牢,地动山摇!

2024-05-13 21:33:53 435

原创 c++ 自己实现一个迭代器

【代码】c++ 自己实现一个迭代器。

2024-03-18 13:38:47 518

原创 Clion attach一个linux进程进行debug

remote 我不知道是什么意思,就写的是我之前在192.167.155.45 的linux上编译出calculateSum时的地址。在远程linux上,直接运行程序calculateSum,然后另起一个ssh连接 ps -ef|grep calculateSum,拿到它的进程号,假定是130225。手头的一段程序,目前已经在linux上运行了,我在windows上有源代码,想在本地debug一下,看看代码里复杂的流程都是怎么样运行的。以上面的文件为例,编译出来的二进制程序就叫calculateSum。

2024-03-11 11:30:24 524

原创 在无网环境下使用yum安装软件

上面就是把lftp这个包及其依赖都下载到当前目录下。

2024-03-07 11:44:15 1355

原创 关于Failed to start LSB

在/etc/sysconfig/network-scripts里面找到ifcfg_eth0.4095,重命名。在/var/log/message里面发现了 了如下错误。发现机子不能ping通自己,然后就。也不知道这个4095是干啥的。

2024-02-29 14:46:06 383

原创 关于memtable的生命周期与flush流程

既然谈到什么周期,那我们得明确,MemTable至少有下面几个变化点:1 刚启动的时候或者说启动恢复的时候,从无到有。2 Memtable变成Immemtable的时候。3 Immemtable下刷到磁盘变成sst的时候。

2024-02-28 09:57:28 862

原创 RocksDB的关键参数与优化方案

默认情况下max_total_wal_size是0,系统会使用多个columnFamily的write_buffer_size* max_write_buffer_number的积相加。控制并发度: 当增大 min_write_buffer_number_to_merge 的值时,系统会允许更多的MemTable转换为Immutable MemTable而不立即进行Flush操作,这意味着可以在内存中累积更多的数据,提高并发写入性能,尤其是在高吞吐量场景下。单个memtable的最大大小,默认64MB。

2024-02-27 10:59:33 1183 1

原创 为新固态硬盘安装操作系统

2 原本的sata硬盘的盘符是C,现在变成了M。当时我的界面下面有两个块,一个是老的sata ssd 一个就是我新的致钛7100。1 启动之后,我的新的致钛7100所在的盘(之前我给他分配的是H盘符),盘符变成了C。然后很多文章就会告诉你,重启电脑就会自动弹出选择启动盘的界面,选择新的系统,然后就会load新的系统了。情况是这样的,我的电脑本来就有一块sata的固态硬盘,作为c盘,装载的是win10系统。然后,咱们的dism软件就会把win10系统从iso里面读出来,放到新的那个固态里面。

2024-02-22 22:22:42 2187

原创 Rocksdb的读写放大分析(未完待续)

rocksdb的空间放大率可以理解为就是 数据实际占用的空间大小/真实有效的数据空间大小*100%假定有4层(除去L0,还有L1,L2,L3)

2024-02-20 10:30:12 16

原创 谈谈RocksDB的Compaction2

前文已经明确了一次compaction的源层文件,目标层文件。这次,咱们聊聊怎么具体的执行一次compaction。

2024-02-19 20:40:33 762

原创 谈谈RocksDB的Compaction1

L0层的分数就是L0层所有sst的文件总体积除以max_bytes_for_level_base,max_bytes_for_level_base 上文已经说了,默认256MB。当参数level_compaction_dynamic_level_bytes 是false的时候,很简单,L0的文件合并到L1,L1的文件合并到L2,L2的合并的L3。另外一点level_compaction_dynamic_level_bytes只影响L0的目标层,L1依然是合并到L2的。

2024-02-19 20:26:45 982

原创 WordPress Nginx 报错 502 Bad Gateway

然后去看看php的配置文件,在/usr/local/php8.2/etc/php-fpm.conf,里面发现。最近机器重启了一次,访问WordPress就发现报错502 Bad Gateway。然后查询/home/wwwlogs/nginx_error.log发现如下错误。然后我就直接把listen改成了/tmp/php-cgi.sock。之前租了一台服务器,部署了Nginx,WordPress。然后先kill掉php的进程,再重新启动。

2024-02-17 21:45:33 1126

原创 谈谈BlueFS

BlueFS具体是个什么东西呢?如上图,在Ceph里,使用BlueStore作为默认的存储引擎。作为存储引擎,它说白了就是存储文件的,但是一般情况下,文件分为原始数据与元数据。如上图,对于原始数据,BlueStore是直接操作裸盘进行存储的;对于元数据则使用RocksDB来进行保存。

2024-02-01 15:52:30 897

原创 将C语言宏定义转换成字符串

https://blog.csdn.net/happen23/article/details/50602667

2024-01-30 14:29:40 894

原创 关于c++里string的底层存储布局

另外以上面的代码为例,b的地址是0x7fffffffe760,这个一直不会变,但是随着代码的运行,b的地址是0x7fffffffe760里面首8个字节的数据会改变,并不是一直都是7fffffffe770,这个应该是为了防止内存越界吧。string在c++里面的变量的地址,其实是一个8字节的指针,存放着数据的真实地址,之后的8个字节是一个数字代表了字符串的长度。是的,是凑巧,如果咱们的代码里面多申请几个变量,0x7fffffffe760里面存放的就不一定是16个字节以后的位置了。OK,咱们总结以下。

2024-01-25 11:48:05 414

原创 Windows下使用clion调试LevelDB与rocksdb

使用clion打开项目,在根目录下新建一个app目录,app目录下新建一个main.cpp。在CMakeList.txt里面寻找leveldbutil字符串,然后在下面增加。

2024-01-11 17:27:31 638

原创 Ceph文档

Ceph读写&迁移流程

2023-12-26 16:35:38 337

原创 windows下使用gtest

我是在window下使用clion来写c++的,最近学习了gtest,中间遇到了一些问题,记录一下。

2023-12-21 20:46:53 662

原创 命令行执行java程序

先进到class目录,用-classpath指定需要的jar包即可。bash里面不用加分号。

2023-12-11 21:58:02 317

原创 c的编译链接与执行

就是处理#define,#if同时还有把#include包含的文件插入到该指令的位置。使用gcc hello.c可以将我们的源代码翻译成a.out这个可执行文件。因为#include包含的文件插入到该指令的位置,所以.i文件一般比较大。我们一般使用gcc -E hello.c -o hello.i。我们具体的说,gcc hello.c -o myhello。我想在b.cpp中引用等于10的这个k就得在b.cpp中写。或者gcc hello.c -o hello.out。预处理生成的文件的后缀名一般是.i。

2023-12-06 16:31:38 492

原创 关于SafeThreadLocal的一点思考

它的作用呢?很简单就是能做到在同一个线程内的不同业务模块内保存一组信息,让各个模块都能修改&读取。想想如果没有她,只能使用参数传递的方法,从头传到尾,多麻烦。OK它的作用与好处说完了,那它还有一个很多的问题就是,每次使用完都必须清理。为什么?我线程结束了,即使不清理,哪能怎么样呢?是的,你的线程是结束了,但是我们的应用一般都是跑在容器里面的(例如Tomcat),而容器里面的服务线程是从线程池里面取的,它是可以服用的。那如果不清理,造成的影响就是。

2023-11-08 10:53:54 22

原创 MySQL case&when的使用说明

https://juejin.cn/post/6971040309065187342

2023-11-06 16:33:06 100

ActiveMQ实例---分布式发送邮件

ActiveMQ实例---分布式发送邮件

2016-05-14

springmvc 异常处理示例

springmvc异常处理的博文如下: http://blog.csdn.net/dlf123321/article/details/50756003

2016-02-27

mysql-connector-java-5.1.22.rar

mysql-connector-java-5.1.22 包含jar,doc与src代码

2014-10-27

mytinyspring

黄亿华 1000行代码读懂Spring(一)- 实现一个基本的IoC容器 代码的重写

2014-09-30

用java发送邮件

这是用javamail完成的发送邮件的demo diamond说明如下http://blog.csdn.net/dlf123321/article/details/39153175

2014-09-09

用ext写的前台源码 有说明文档

用extjs写的前台 有说明文档 我自己从项目中剥离下来的 可以做为ext的一个综合应用

2014-08-26

spring 源码

spring的源代码 分成了各个子项目 自己下载的

2014-07-28

用flex 写的 卖手机的网页

用flex写的 商店的 模型 绝对可以用 我从官网上下下来后 进行了一点点的修改

2013-01-12

flex导航设计与表单验证

里面的每一项我都试验过 直接复制到flex就能看到效果

2012-12-23

fusioncharts/widgets for flex 的swf 与swc文件

里面的swf 我自己用过 绝对没有问题 另外使用fusioncharts的朋友 也希望你们与我交流

2012-11-28

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除