E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
LevelDB源码系列
go
leveldb
的原理简述(基于golang的go
leveldb
库)
简介go
leveldb
是基于LSM-Tree实现的针对处理写多读少场景的解决方案,通常用于构建写多读少的存储引擎整体架构图如下基于用户接口层简述原理吧Get,按key查询数据,首先区内存中的数据,如果内存中没有则依次从硬盘中的
陈墨1234
·
2024-09-10 00:08
golang进阶之路
源码学习
golang
开发语言
后端
经验分享
笔记
db
Leveldb
源码分析--9
6SSTable之36.5读取sstable文件6.5.1类层次Sstable文件的读取逻辑在类Table中,其中涉及到的类还是比较多的,如图6.5-1所示。图6.5-1Table类导出的函数只有3个,先从这三个导出函数开始分析。其中涉及到的类(包括上图中为画出的)都会一一遇到,然后再一一拆解。本节分析sstable的打开逻辑,后面再分析key的查找与数据遍历。6.5.2Table::Open()
sparkliang
·
2024-09-09 04:23
Leveldb
分布式系统
rust嵌入式key/value数据库
文章目录项目介绍sled已知问题如何使用
leveldb
-rs如何使用rust-rocksdb如何使用lmdb-rs如何使用功能对比性能测试对比插入不同的长度的key/valuemonotonicinsert
kk3909
·
2024-09-06 07:59
rust
我的2023,如履薄冰,你说我能保住这份工吗
7月份开始连载Spring
源码系列
。相比于往年,今年的技术更新确实慢了很多,有
·
2024-02-20 16:46
2023-年度总结
redo log —— MySQL宕机时数据不丢失的原理
扫描下方二维码或者微信搜索公众号菜鸟飞呀飞,即可关注微信公众号,阅读更多Spring源码分析、Java并发编程和Netty
源码系列
文章。问题在开始阅读本文之前,可以先思考一下下面两个问题。
天堂2013
·
2024-02-20 02:00
MySQL
MySQL
redo
log
java
windows vs 自己编译源码
leveldb
然后使用自己编译的文件
1准备源码文件1.1第一种方法git下载源码vs项目中git
leveldb
源码和gitthird_partygoogletest-CSDN博客1.2第二种方法手动下载然后把第三方的源码下载复制到third_party
tenc1239
·
2024-02-19 13:44
vs
c++
cmake
c++
Netty
源码系列
之 FastThreadLocal源码
目录Netty优化方案之FastThreadLocal前言ThreadLocalThreadLocal是干什么的?为什么要使用ThreadLocal工具类去操控存取目标数据到Thread线程?ThreadLocal的使用场景目标数据存储到Thread线程对象的哪里?怎么样把一个目标数据,存储到某一线程的threadLocals(Map)中?ThreadLocal中如何解决哈希冲突(哈希碰撞)的?线
etcEriksen
·
2024-02-14 21:34
Netty源码
java
后端
netty
Sentinel-Go
源码系列
(三)滑动时间窗口算法的工程实现
要说现在工程师最重要的能力,我觉得工程能力要排第一。就算现在大厂面试经常要手撕算法,也是更偏向考查代码工程实现的能力,之前在群里看到这样的图片,就觉得很离谱。算法与工程实现在Sentinel-Go中,一个很核心的算法是流控(限流)算法。流控可能每个人都听过,但真要手写一个,还是有些困难。为什么流控算法难写?以我的感觉是算法和工程实现上存在一定差异,虽然算法好理解,但却没法照着实现。举个例子,令牌桶
捉虫大师
·
2024-02-12 17:19
Vue
源码系列
讲解——模板编译篇【二】(模板解析阶段)
目录1.整体流程2.回到源码3.总结1.整体流程上篇文章中我们说了,在模板解析阶段主要做的工作是把用户在标签内写的模板使用正则等方式解析成抽象语法树(AST)。而这一阶段在源码中对应解析器(parser)模块。解析器,顾名思义,就是把用户所写的模板根据一定的解析规则解析出有效的信息,最后用这些信息形成AST。我们知道在模板内,除了有常规的HTML标签外,用户还会一些文本信息以及在文本信息中包含过滤
小彭努力中
·
2024-02-12 15:36
Vue源码讲解
vue.js
前端
前端框架
Netty
源码系列
之 ChannelPipeline & IO处理回顾 源码
目录ChannelPipeline【包含AbstractUnsafe.write的源码流程,比之前更加深化了,必看】ChannelPipeline概念回顾ChannelPipeline的创建Inbound(输入Handler)所对应的事件传播Outbound(输出Handler)所对应的事件传播【包含AbstractUnsafe.write的源码流程,比之前更加深化了,必看】ChannelPipe
etcEriksen
·
2024-02-12 08:27
Netty源码
java
后端
netty
Vue
源码系列
讲解——虚拟DOM篇【四】(优化更新子节点)
目录1.前言2.优化策略介绍3.新前与旧前4.新后与旧后5.新后与旧前6.新前与旧后7.回到源码8.总结1.前言在上一篇文章中,我们介绍了当新的VNode与旧的oldVNode都是元素节点并且都包含子节点时,Vue对子节点是先外层循环newChildren数组,再内层循环oldChildren数组,每循环外层newChildren数组里的一个子节点,就去内层oldChildren数组里找看有没有与
小彭努力中
·
2024-02-12 06:07
Vue源码讲解
vue.js
前端
前端框架
Vue
源码系列
讲解——模板编译篇【一】(综述)
目录1.前言2.什么是模板编译3.整体渲染流程4.模板编译内部流程4.1抽象语法树AST4.2具体流程5.总结1.前言在前几篇文章中,我们介绍了Vue中的虚拟DOM以及虚拟DOM的patch(DOM-Diff)过程,而虚拟DOM存在的必要条件是得先有VNode,那么VNode又是从哪儿来的呢?这就是接下来几篇文章要说的模板编译。你可以这么理解:把用户写的模板进行编译,就会产生VNode。2.什么是
小彭努力中
·
2024-02-12 06:06
Vue源码讲解
vue.js
前端
前端框架
Vue
源码系列
4------Vue文件的入口-----Vue的初始化
这片文章主要分析,在web应用下,Runtime+Compiler构建出来的Vue.js。入口文件在Vue源码中,入口文件为src/platforms/web/entry-runtime-with-compiler.js。入口文件通过export导出的是一个Vue对象,通过import导入相关依赖组件。首先这个Vue对象来自于;而runtime/index中的Vue对象又来自于;core/inde
Emily Qin
·
2024-02-11 09:42
前端
#
Vue.js
源码解析
Vue
Vue
源码系列
讲解——虚拟DOM篇【三】(更新子节点)
1.前言在上一篇文章中,我们了解了Vue中的patch过程,即DOM-Diff算法。并且知道了在patch过程中基本会干三件事,分别是:创建节点,删除节点和更新节点。创建节点和删除节点都比较简单,而更新节点因为要处理各种可能出现的情况所以逻辑略微复杂一些,但是没关系,我们通过分析过程,对照源码,画逻辑流程图来帮助我们理解了其中的过程。最后我们还遗留了一个问题,那就是在更新节点过程中,新旧VNode
小彭努力中
·
2024-02-10 08:38
Vue源码讲解
前端
vue.js
前端框架
Vue
源码系列
讲解——变化侦测篇【下】(Array的变化侦测)
目录1.前言2.在哪里收集依赖3.使Array型数据可观测3.1思路分析3.2数组方法拦截器3.3使用拦截器4.再谈依赖收集4.1把依赖收集到哪里4.2如何收集依赖4.3如何通知依赖5.深度侦测6.数组新增元素的侦测7.不足之处8.总结1.前言上一篇文章中我们介绍了Object数据的变化侦测方式,本篇文章我们来看一下对Array型数据的变化Vue是如何进行侦测的。为什么Object数据和Array
小彭努力中
·
2024-02-09 07:57
Vue源码讲解
vue.js
前端
前端框架
Vue
源码系列
讲解——虚拟DOM篇【一】(Vue中的虚拟DOM)
目录1.前言2.虚拟DOM简介2.1什么是虚拟DOM?2.2为什么要有虚拟DOM?3.Vue中的虚拟DOM3.1VNode类3.2VNode的类型3.2.1注释节点3.2.2文本节点3.2.3克隆节点3.2.4元素节点3.2.5组件节点3.2.6函数式组件节点3.2.7小结3.3VNode的作用4.总结1.前言虚拟DOM,这个名词作为当下的前端开发人员你一定不会陌生,至少会略有耳闻,但不会闻所未闻
小彭努力中
·
2024-02-09 07:57
Vue源码讲解
vue.js
前端
前端框架
Vue
源码系列
讲解——虚拟DOM篇【二】(Vue中的DOM-Diff)
目录1.前言2.patch3.创建节点4.删除节点5.更新节点6.总结1.前言在上一篇文章介绍VNode的时候我们说了,VNode最大的用途就是在数据变化前后生成真实DOM对应的虚拟DOM节点,然后就可以对比新旧两份VNode,找出差异所在,然后更新有差异的DOM节点,最终达到以最少操作真实DOM更新视图的目的。而对比新旧两份VNode并找出差异的过程就是所谓的DOM-Diff过程。DOM-Dif
小彭努力中
·
2024-02-09 07:24
Vue源码讲解
前端
vue.js
读懂 FastChat 大模型部署源码所需的异步编程基础
事件循环4.await5.组合协程6.使用Semaphore限制并发数7.运行阻塞任务8.异步迭代器asyncfor9.异步上下文管理器asyncwith10.参考本文是读懂FastChat大模型部署
源码系列
的第二篇
javastart
·
2024-02-08 09:08
python
python
fastapi
gunicorn
Netty
源码系列
之 EventLoop & run()方法 源码
EventLoop[实现类为NioEventLoop,我们研究NioEventLoop即可]EventLoop是一个单线程的线程池核心作用:处理执行IO操作(accept,read,write事件),普通任务,定时任务EventLoop封装了Selector复用器,Thread线程,以及任务队列为什么EventLoop需要一个任务队列?因为EventLoop是一个单线程的线程池,如果有多个任务请求
etcEriksen
·
2024-02-08 07:18
Netty源码
java
netty
七、Nacos
源码系列
:Nacos服务发现
目录一、服务发现二、getServices():获取服务列表2.1、获取服务列表2.2、总结图三、getInstances(serviceId):获取服务实例列表3.1、从缓存中获取服务信息3.2、缓存为空,执行订阅服务3.2.1、调度更新,往线程池中提交一个UpdateTask任务3.2.2、订阅服务3.2.3、处理服务信息3.3、非订阅模式,通过grpc发送ServiceQueryReques
每天都要进步一点点
·
2024-02-08 01:36
#
Nacos源码
Nacos源码
Nacos服务发现
Nacos注册中心
Nacos
服务发现
源码系列
——ArrayList动态扩容机制
前言ArrayList继承了AbstractList类,实现了List接口,并且ArrayList底层是一个动态扩容的数组。ArrayList实现了RandomAccess接口,此接口是一个随机访问的标记接口(不需要遍历,直接通过下标访问数组元素的内存地址),此外还实现了Serializable接口支持序列化(就是将对象转化为字符序的形式,这些字符序列包括了对象的字段和方法,序列化的对象可以被写入
小白菜aaa
·
2024-02-07 08:16
Vue
源码系列
讲解——变化侦测篇【上】(何为变化侦测)
目录1.前言2.什么是变化侦测3.总结1.前言众所周知,Vue最大的特点之一就是数据驱动视图,那么什么是数据驱动视图呢?在这里,我们可以把数据理解为状态,而视图就是用户可直观看到页面。页面不可能是一成不变的,它应该是动态变化的,而它的变化也不应该是无迹可寻的,它或者是由用户操作引起的,亦或者是由后端数据变化引起的,不管它是因为什么引起的,我们统称为它的状态变了,它由前一个状态变到了后一个状态,页面
小彭努力中
·
2024-02-06 08:15
Vue源码讲解
vue.js
前端
开发语言
前端框架
Vue
源码系列
讲解——变化侦测篇【中】(Object的变化侦测)
目录1.前言2.使Object数据变得“可观测”3.依赖收集3.1什么是依赖收集3.2何时收集依赖?何时通知依赖更新?3.3把依赖收集到哪里4.依赖到底是谁5.不足之处6.总结1.前言在上一篇文章中,我们知道:数据驱动视图的关键点则在于我们如何知道数据发生了变化,只要知道数据在什么时候变了,那么问题就变得迎刃而解,我们只需在数据变化的时候去通知视图更新即可。要想知道数据什么时候被读取了或数据什么时
小彭努力中
·
2024-02-06 08:44
Vue源码讲解
前端
前端框架
vue.js
开发语言
leveldb
学习2
无论indexblock还是datablock两者的内部结构都相同(都是block的结构),均使用block的Seek方法进行二分查找,根据重启点进行二分查找查找key先从indexblock查找,再从datablock查找indexblock的key是两个datablock的分割点,大于等于当前block的所有key,小于下一个block的最小keyvalue是对应datablock地址的偏移量
Tony_Xian
·
2024-02-04 18:00
C++
c++
日志打印宏的编写
宏的介绍和使用_##__va_args__-CSDN博客代码为了方便以后的测试,直接使用日志来进行测试的打印,就使用了宏日志#defineINF0#defineDBG1#defineERR2#defineLOG_
LEVELDB
G
清风玉骨
·
2024-02-04 07:50
mudo
c++
Megatron-LM
源码系列
(七):Distributed-Optimizer分布式优化器实现Part2
1.使用入口DistributedOptimizer类定义在megatron/optimizer/distrib_optimizer.py文件中。创建的入口是在megatron/optimizer/__init__.py文件中的get_megatron_optimizer函数中。根据传入的args.use_distributed_optimizer参数来判断是用DistributedOptimiz
MLTalks
·
2024-02-04 06:22
大模型
训练框架
分布式
深度学习
人工智能
pytorch
【图文详解】一文全面彻底搞懂HBase、
LevelDB
、RocksDB等NoSQL背后的存储原理:LSM-tree 日志结构合并树
LSM树广泛用于数据存储,例如RocksDB、ApacheAsterixDB、Bigtable、HBase、
LevelDB
、ApacheAccumulo、SQLite4、Tarantool、WiredTiger
禅与计算机程序设计艺术
·
2024-02-02 05:42
图解java.util.concurrent并发包
源码系列
——深入理解定时任务线程池ScheduledThreadPoolExecutor
深入理解定时任务线程池ScheduledThreadPoolExecutorScheduledThreadPoolExecutor作用与用法ScheduledThreadPoolExecutor内部执行流程DelayedWorkQueueScheduledFutureTask源码分析任务提交ScheduledFutureTask的属性和方法delayedExecute(t)任务执行Schedule
黄俊懿
·
2024-02-01 21:55
java
开发语言
后端
并发编程
JUC
jvm
六、Nacos
源码系列
:Nacos健康检查
目录一、简介二、健康检查流程2.1、健康检查2.2、客户端释放连接事件2.3、客户端断开连接事件2.4、小结2.5、总结图三、服务剔除一、简介Nacos作为注册中心不止提供了服务注册和服务发现的功能,还提供了服务可用性检测的功能,在Nacos1.x的版本中,临时实例走的是distro协议,客户端向注册中心发送心跳来维持自身的健康(healthy)状态,持久实例则走的是Raft协议存储。主要有两种检
每天都要进步一点点
·
2024-02-01 19:23
#
Nacos源码
Nacos健康监测
Nacos源码
Nacos健康检查
Nacos
Mybatis
源码系列
:领略设计模式在 Mybatis 其中的应用
文章目录一、Builder模式二、工厂模式三、单例模式四、代理模式五、组合模式六、模板方式模式七、适配器模式八、装饰器模式九、迭代器模式虽然我们都知道有23种设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用:Builder模式,例如SqlSess
Code技术分享
·
2024-02-01 02:10
mybatis
java
设计模式
MyBatis
源码系列
:MyBatis 解析配置文件、二级缓存、SQL
文章目录解析全局配置文件二级缓存解析解析二级缓存缓存中的调用过程缓存中使用的设计模式解析SQL解析全局配置文件启动流程分析Stringresource="mybatis-config.xml";//将XML配置文件构建为Configuration配置类reader=Resources.getResourceAsReader(resource);//通过加载配置文件流构建一个SqlSessionFa
Code技术分享
·
2024-01-31 06:13
mybatis
java
阅读go语言工具
源码系列
之gopacket(谷歌出品)----第二集 layers-巧妙的抽象与无聊的协议包
上一集中我们讲到了wpcap.dll的go封装方法,对于linux系统下libpcap的go封装采用的是常用的cgo方式,想了解的可以看看pcap文件夹中的pcap_unix.go。我们得到了wpcap.dll的go调用,就可以利用它来进行列举所有网络设备,例如以下代码packagemainimport("fmt""github.com/google/gopacket/pcap""log")//得
伏虎山真人
·
2024-01-26 21:08
golang
golang
驱动开发
开发语言
阅读go语言工具
源码系列
之gopacket(谷歌出品)----第一集 DLL的go封装
gopacket项目是google出品的golang第三方库,项目源码地址google/gopacket:ProvidespacketprocessingcapabilitiesforGo(github.com)gopacket核心是对经典的抓包工具libpcap(linux平台)和npcap(windows平台)的go封装,提供了更方便的go语言操作接口,里面如何实现的,接下来的文章中会有介绍。
伏虎山真人
·
2024-01-26 21:36
golang
golang
开发语言
后端
Spring手撸
源码系列
-给Bean对象注入属性
上一章是给Bean对象注入构造参数,这一章就来实现给Bean对象注入属性,一般来说类有构造方法也会有全局变量的属性,那么我们在创造的时候就需要注入进来,不能不管,这样才是一个完整的创建对象。对于属性的创建除了基本类型也会有引用类型,引用其他的Bean对象等等都要考虑。1.工程目录标红的是新添加的├─src│├─main││├─java│││└─com│││└─spring│││└─sourceco
PromisingGirl-Du
·
2024-01-25 18:02
#
spring
spring
java
后端
浅谈目前主流NoSql数据库
目前我了解的主流Nosql如下:redismongoDBmemcache
LevelDB
Ca
大飞攻城狮
·
2024-01-25 17:05
后端开发
nosql
redis
mongodb
深入Hotspot源码与Linux内核理解NIO与Epoll
前言距离上一次发布文章将近半年左右了,具体为什么停更,说实话一部分原因是去年10月1放假之后我玩疯了....另外一部原因是总感觉文章写到一定地步之后,我有点不知道写什么了,去年主要更新的是Spring
源码系列
的文章
JAVA程序
·
2024-01-24 18:35
Vue 3.2
源码系列
(Vue.js的设计与实现)01-命令式VS声明式
我通过看完这本书后造成的一部分总结。选择挑选出重要的部分先来介绍一些基本的概念命令式与声明式运行时与编译器副作用一.声明式和命令式命令式与声明式的概念在前端框架的设计中经常会出现,那么究竟什么是命令式、什么是声明式呢?这一咖,我们就主要来明确这两个概念:命令式比如现在领导叫你实现一个大屏展示的数据1.你现在需要用到vue2.需要用到springboot3.需要去考虑一些echarts的参数...在
kangkang-
·
2024-01-21 23:51
Vue.js源码分析
vue.js
前端
javascript
利用C++读取图片数据内存,一键智能识别技术!
另外官方例程默认的输出是
leveldb
格式
Python编程导师
·
2024-01-21 02:37
Android 12.0
源码系列
之IMS(二)InputManager
Android12.0
源码系列
之IMS(二)InputManager本篇涉及到的主要代码:frameworks\native\services\inputflingerframeworks\base\services
bubbleben
·
2024-01-20 18:49
Android
12.0源码系列
android
framework
从
leveldb
学编码技巧(3)
leveldb
中的大部分文件都是用一种类似日志的方式来写数据的,比如和memtable一一对应的log文件,以及manifest文件。他们的特点是:文件内容都是一条条记录,每条记录都有特定的格式。
wangjie_yy
·
2024-01-20 00:15
MAC安装和卸载redis
安装卸载查询可安装的版本查询版本号brewsearchredis:olafwang@OLAFWANG-MB0etc%brewsearchredis==>Formulaehiredisredis✔redis-
leveldb
redis
xiaolyuh
·
2024-01-19 17:42
netty
源码系列
---服务端启动
1、示例代码这是netty源码中官方提供的测试代码publicfinalclassEchoServer{staticfinalbooleanSSL=System.getProperty("ssl")!=null;staticfinalintPORT=Integer.parseInt(System.getProperty("port","8007"));publicstaticvoidmain(St
性感的大表哥
·
2024-01-19 16:31
Netty
netty
大白话解析
LevelDB
: VersionEdit
文章目录VersionEditVersionEdit::EncodeTo(std::string*dst)VersionEdit::DecodeFrom(constSlice&src)VersionEdit
LevelDB
Howard0o0
·
2024-01-18 06:06
大白话解析LevelDB
数据库
c++
大白话解析
LevelDB
: VersionSet
文章目录VersionSetVersionSet接口概览VersionSet中各个接口的实现VersionSet::LogAndApply(VersionEdit*edit,port::Mutex*mu)VersionSet::Builder的实现VersionSet::Builder的构造VersionSet::Builder::Apply(VersionEdit*edit)VersionSet
Howard0o0
·
2024-01-18 06:06
大白话解析LevelDB
数据库
c++
大白话讲解
LevelDB
0: 目录
大白话讲解
LevelDB
大白话解析
LevelDB
1:把Key-Value写入MemTable大白话解析
LevelDB
2:MemTable落盘为SST文件
Howard0o0
·
2024-01-18 06:06
大白话解析LevelDB
c++
数据库
LevelDB
中各种文件的作用
文章目录
LevelDB
中各种文件的作用SSTWALMANIFESTCURRENTLOCKLOG
LevelDB
中各种文件的作用在
LevelDB
中,有以下几种类型的文件:SST(SortedStringTable
Howard0o0
·
2024-01-18 06:05
大白话解析LevelDB
c++
数据库
大白话解析
LevelDB
: TableBuilder
文章目录TableBuilder`TableBuilder`的使用姿势SST的格式`TableBuilder`的代码实现`TableBuilder`的构造函数TableBuilder::Add(constSlice&key,constSlice&value)TableBuilder::WriteBlockTableBuilder::WriteRawBlockTableBuilder::Flush(
Howard0o0
·
2024-01-18 06:35
大白话解析LevelDB
数据库
c++
大白话解析
LevelDB
: WritableFile 接口
文章目录WritableFileWritableFile的构造PosixWritableFilePosixWritableFile的构造PosixWritableFile::Append(constSlice&data)PosixWritableFile::FlushBuffer()PosixWritableFile::WriteUnbuffered(constchar*data,size_tsi
Howard0o0
·
2024-01-18 06:35
大白话解析LevelDB
c++
数据库
大白话解析
LevelDB
: Env
文章目录
leveldb
::Env跨平台运行环境的封装Env接口概览POSIX环境下的Env的实现POSIX下的Env::Default()的实现SingletonEnv的实现前置知识:placementnew
Howard0o0
·
2024-01-18 06:35
大白话解析LevelDB
数据库
c++
大白话解析
LevelDB
:数据格式
文章目录
LevelDB
中的数据格式KeyUserKeyInternalKeyLookupKeyWriteBatchSSTDataBlockIndexBlockMetaBlock(FilterBlock)
Howard0o0
·
2024-01-18 06:05
大白话解析LevelDB
缓存
c++
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他