<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SmallBottle-CGWLMX的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xiaomucgwlmx</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaomucgwlmx]]></copyright><item><title><![CDATA[海量数据处理方法论总结]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/115663055</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/115663055</guid><author>xiaomucgwlmx</author><pubDate>Tue, 13 Apr 2021 13:26:15 +0800</pubDate><description><![CDATA[目录



第一部分、十道海量数据处理

1、海量日志数据，提取出某日访问百度次数最多的那个IP。

2、搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来，每个查询串的长度为1-255字节

3、有一个1G大小的一个文件，里面每一行是一个词，词的大小不超过16字节，内存限制大小是1M。返回频数最高的100个词。

4、有10个文件，每个文件1G，每个文件的每一行存放的都是用户的query，每个文件的query都可能重复。要求你按照query的频度排序。

5、 给定a、b两个文件，各存放50.]]></description><category></category></item><item><title><![CDATA[MySQL源码分析-启动初始化&连接与线程管理]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/109591511</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/109591511</guid><author>xiaomucgwlmx</author><pubDate>Wed, 11 Nov 2020 11:09:10 +0800</pubDate><description><![CDATA[目录

0. 背景

1. MySQL初始化

初始化的内容

MySQL中的线程

全量源码

源码函数调用链

0. 背景

参加公司早读会分享，打算





1.MySQL初始化

源码学习个人习惯从最开始的各种准备初始化展开深入，mysql也一样，我们从mysql的启动初始化一直到终止阶段分析逻辑。一下是mysql初始化的简单小结，详细的源码栈在后续接着分析。

1.1 初始化的内容

参数配置解析：
	分别从/etc/my.conf, /etc/mysql/my.conf, SYSCONFD..]]></description><category></category></item><item><title><![CDATA[C++17新特性知识点汇总]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/108851826</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/108851826</guid><author>xiaomucgwlmx</author><pubDate>Mon, 28 Sep 2020 16:24:04 +0800</pubDate><description><![CDATA[C++17的入选特性有

非类型模板参数的 auto

   模板参数分为两种，一种是类型模板参数，也是我们用得最多的一种：


template &lt;typename T, typename U&gt;
auto add(T t, U u) {
    return t+u;
}

里面的T和U都是类型模板参数。另一种是非类型模板参数，它可以让不同的字面量成为模板的参数：


template &lt;typename T, int BufSize&gt;
class buffer_t ...]]></description><category></category></item><item><title><![CDATA[C++14新特性知识点汇总]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/108755719</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/108755719</guid><author>xiaomucgwlmx</author><pubDate>Wed, 23 Sep 2020 16:26:47 +0800</pubDate><description><![CDATA[函数返回值类型推导

C++14对函数返回类型推导规则做了优化，先看一段代码：


#include &lt;iostream&gt;

using namespace std;

auto func(int i) {
    return i;
}

int main() {
    cout &lt;&lt; func(4) &lt;&lt; endl;
    return 0;
}


使用C++11编译：


~/test$ g++ test.cc -std=c++11
test.cc:5:16:]]></description><category></category></item><item><title><![CDATA[MySQL源码分析--一条简单SQL的加锁分析]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/108590259</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/108590259</guid><author>xiaomucgwlmx</author><pubDate>Mon, 14 Sep 2020 23:09:54 +0800</pubDate><description><![CDATA[一、问题引入

看如下一条sql语句：

#tableT(idint,namevarchar(20)) deletefromTwhereid=10；

MySQL在执行的过程中，是如何加锁呢？

再看下面这条语句：

select*fromTwhereid=10；

那这条语句呢？其实这其中包含太多知识点了。要回答这两个问题，首先需要了解一些知识。



二、相关知识回顾



2.1 多版本并发控制

在MySQL默认存储引擎InnoDB中，实现的是基...]]></description><category></category></item><item><title><![CDATA[数据结构堆(Heap)详解-堆的建立、插入、删除、最大堆、最小堆、堆排序等]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103522410</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103522410</guid><author>xiaomucgwlmx</author><pubDate>Fri, 13 Dec 2019 11:08:23 +0800</pubDate><description><![CDATA[基本概念：

1、完全二叉树：若二叉树的深度为h，则除第h层外，其他层的结点全部达到最大值，且第h层的所有结点都集中在左子树。

2、满二叉树：满二叉树是一种特殊的的完全二叉树，所有层的结点都是最大值。

什么是堆？

堆（英语：heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质：


	堆中某个节点的值总是不大于或不小于其父节点的值；
	...]]></description><category></category></item><item><title><![CDATA[WebRTC学习进阶之路 --- 十七、源码分析之WebRTC的数据流水线详解&模块机制核心ProcessThread与ProcessThreadImpl]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103417862</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103417862</guid><author>xiaomucgwlmx</author><pubDate>Sat, 07 Dec 2019 18:37:36 +0800</pubDate><description><![CDATA[WebRTC学习进阶之路系列总目录：https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103204274

对于实时音视频应用来讲，媒体数据从采集到渲染，在数据流水线上依次完成一系列处理。流水线由不同的功能模块组成，彼此分工协作：数据采集模块负责从摄像头/麦克风采集音视频数据，编解码模块负责对数据进行编解码，RTP模块负责数据打包和解包。数据流水...]]></description><category></category></item><item><title><![CDATA[算法LeetCode解题(C++)-20. 两个数组的交集(难度：简单)]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103355757</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103355757</guid><author>xiaomucgwlmx</author><pubDate>Mon, 02 Dec 2019 19:50:23 +0800</pubDate><description><![CDATA[做IT行业，不管是测试、开发、运维等等，或简单或复杂的算法是必不可少的，也是大家面试工作中的必要环节，这个专栏开始和大家一起来研究著名的LeetCode，里边有上千种最常见的算法，面试工作出现几率很高，值得掌握研究，每次完成博客更新我会同步更新我的个人Github上的代码，每个算法都可以直接运行调试以供掌握，GitHub地址：https://github.com/cuiguangwei/LeetC...]]></description><category></category></item><item><title><![CDATA[Shell脚本拷贝多级目录文件(具体名称/.h/.lib/.dll等)到指定目录]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103345302</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103345302</guid><author>xiaomucgwlmx</author><pubDate>Mon, 02 Dec 2019 11:14:58 +0800</pubDate><description><![CDATA[多级目录指定文件类型的拷贝经常用到，比如我们要封装一个功能库的时候，需要给调用方打包依赖的.h、.lib和.dll等；

拷贝多级目录下的.h文件


echo off

:: 定义源目录
set sourcePath=E:\fileA
::定义目标路径
set resulePath=E:\fileB
xcopy %sourcePath%\*.h %resulePath%\  /s /e /c /...]]></description><category></category></item><item><title><![CDATA[WebRTC学习进阶之路 --- 十六、源码分析之最核心的内容PeerConnection]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103321436</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103321436</guid><author>xiaomucgwlmx</author><pubDate>Sun, 01 Dec 2019 11:29:53 +0800</pubDate><description><![CDATA[WebRTC学习进阶之路系列总目录：https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103204274

本文我们来看WebRTC的核心通信模块PeerConnection,来看下酒精是如何为通信多方建立连接，提供通信机制的。

一、核心类整体介绍

看过前边文章的应该都已经知道，WebRTC的源码中api中的都是给应用层提供的内容，具体的实现...]]></description><category></category></item><item><title><![CDATA[WebRTC学习进阶之路 --- 十五、源码分析之WebRTC中的线程详解-MessageQueueManager&MessageQueue&Message&MessageHandler]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103300975</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103300975</guid><author>xiaomucgwlmx</author><pubDate>Fri, 29 Nov 2019 21:22:28 +0800</pubDate><description><![CDATA[WebRTC学习进阶之路系列总目录：https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103204274

本文将介绍消息的管理类(MessageQueueManager)、消息循环中的消息(Message)、消息中的数据(MessageData)、消息队列(MessageQueue)以及处理消息的Handler(MessageHandler)的...]]></description><category></category></item><item><title><![CDATA[WebRTC学习进阶之路 --- 十四、源码分析之WebRTC中的线程详解-ThreadManager&Thread]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103287398</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103287398</guid><author>xiaomucgwlmx</author><pubDate>Thu, 28 Nov 2019 15:26:56 +0800</pubDate><description><![CDATA[WebRTC学习进阶之路系列总目录：https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103204274

前言

WebRTC源码中的很多注释是很赞的，看源码的时候多加阅读注释有助于更好的理解。
WebRTC实现了跨平台(Windows，MacOS，Linux，IOS，Android)的线程类rtc::Thread，WebRTC内部的netwo...]]></description><category></category></item><item><title><![CDATA[WebRTC学习进阶之路 --- 零、WebRTC系列文章简述和目录结构]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103204274</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103204274</guid><author>xiaomucgwlmx</author><pubDate>Thu, 28 Nov 2019 13:49:28 +0800</pubDate><description><![CDATA[搞了五年C++开发，出于个人发展和目前市场需求趋势(各种音视频相关崛起，同时伴随着5G时代到来)和未来至少十年的发展空间考虑，决定接下来投身大部分精力学习和研究WebRTC。之前零零散散写了一点相关文章，整体来说不成系统，以下是结合各方开源的/收费的/牛逼的/实战的等等渠道总结的一系列学习进阶修炼之路，不断总结吸纳更新以至完善。

目录：

一、 WebRTC学习进阶之路 ---...]]></description><category></category></item><item><title><![CDATA[WebRTC学习进阶之路 --- 十三、分析源码音视频互动peerconnection-client+server实例]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103199930</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103199930</guid><author>xiaomucgwlmx</author><pubDate>Wed, 27 Nov 2019 14:48:30 +0800</pubDate><description><![CDATA[WebRTC学习进阶之路系列总目录：https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103204274

学习一个框架最好的入手点之一就是首先学会如何方便快捷的使用它达到我们想要的效果，然后再去逐步分析每一个过程的具体实现细节，这样思路会更加清晰一些。WebRTC为我们提供一个非常完整凝练的音视频互动案例作为入手分析点，下边我们来详细分析下这个...]]></description><category></category></item><item><title><![CDATA[WebRTC学习进阶之路 --- 八、信令服务器]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103230047</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103230047</guid><author>xiaomucgwlmx</author><pubDate>Sun, 24 Nov 2019 22:38:10 +0800</pubDate><description><![CDATA[WebRTC学习进阶之路系列总目录：https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103204274

什么是信令

信令是协调通信的过程。为了使WebRTC应用程序能够建立一个“通话”，其客户需要交换以下信息：

 # 会话控制消息用于打开或关闭通信

 # 错误消息

 # 媒体元数据，如编...]]></description><category></category></item><item><title><![CDATA[WebRTC学习进阶之路 --- 七、WebRTC核心之SDP详解、媒体协商]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103225720</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103225720</guid><author>xiaomucgwlmx</author><pubDate>Sun, 24 Nov 2019 22:13:31 +0800</pubDate><description><![CDATA[WebRTC学习进阶之路系列总目录：https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103204274

一、什么是SDP

    SDP(Session Description Protocol)描述会话协议，它只是一种信息格式的描述标准，本身不属于传输协议，但是可以被其他传输协议用来交换必要的信息，用于两个会话实体之间的媒体协商。...]]></description><category></category></item><item><title><![CDATA[WebRTC学习进阶之路 --- 六、Web服务器原理、服务器基础编程知识]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103225229</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103225229</guid><author>xiaomucgwlmx</author><pubDate>Sun, 24 Nov 2019 16:24:36 +0800</pubDate><description><![CDATA[WebRTC学习进阶之路系列总目录：https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103204274

一、服务器基础知识

Linux系统下的信号
	信号的处理方式：忽略、捕获、默认处理
	都有哪些信号：man 7 signal查看系统中有哪些信号
几个重要信号：

SIGPIPE：管道中止，当写入无人读取的管道时产生该信号，默认终止进程
...]]></description><category></category></item><item><title><![CDATA[WebRTC学习进阶之路 --- 五、WebRTC网络知识详解(三)(最全流媒体协议(RTP/RTCP/RTSP/RTMP/MMS/HLS/HTTP/ HTTP-FLV(HDL)/SDP)]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103222678</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103222678</guid><author>xiaomucgwlmx</author><pubDate>Sun, 24 Nov 2019 11:30:31 +0800</pubDate><description><![CDATA[WebRTC学习进阶之路系列总目录：https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103204274

RTP：实时传输协议（Real-time Transport Protocol）

   RTP是一种基于包的传输协议，它用来传输实时数据。在网络上传输数据包的延迟和误差是不可避免的，对此RTP包头包含时间戳、丢失保护、载荷标识、...]]></description><category></category></item><item><title><![CDATA[WebRTC学习进阶之路 --- 四、WebRTC网络知识详解(二)(加解密/SSL/OpenSSL/TLS/DTLS/SRTP)]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103221910</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103221910</guid><author>xiaomucgwlmx</author><pubDate>Sun, 24 Nov 2019 11:19:43 +0800</pubDate><description><![CDATA[DTLS主要用于数据的安全传输，

WebRTC学习进阶之路系列总目录：https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103204274

一、加解密

简介

   加密技术包括两个元素：算法和密钥。算法是将普通的信息或者可以理解的信息与一串数字（密钥）结合，产生不可理解的密文的步骤，密钥是用来对数据进行编码和解密的一种算法。在安全...]]></description><category></category></item><item><title><![CDATA[WebRTC学习进阶之路 --- 三、WebRTC网络知识详解(一)(P2P/STUN/TURN/ICE)]]></title><link>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103217870</link><guid>https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103217870</guid><author>xiaomucgwlmx</author><pubDate>Sat, 23 Nov 2019 22:22:27 +0800</pubDate><description><![CDATA[WebRTC学习进阶之路系列总目录：https://blog.youkuaiyun.com/xiaomucgwlmx/article/details/103204274

在介绍这些基本知识之前我们要清楚WebRTC的目的以及根本要解决的问题是什么。WebRTC首要要解决的问题是两个浏览器之间如何进行音视频的实时互动，对于底层来说就是两个端点之间如何进行高效的网络传输。下边我们来一项一项的详细介绍这些内容。
...]]></description><category></category></item></channel></rss>