草庐IT

multi_buffer

全部标签

muduo源码分析之Buffer

这一次我们来分析下muduo中Buffer的作用,我们知道,当我们客户端向服务器发送数据时候,服务器就会读取我们发送的数据,然后进行一系列处理,然后再发送到其他地方,在这里我们想象一下最简单的EchoServer服务器,客户端建立一个连接,以后服务器和客户端之间的通信都是通过这个connfd发送和接受数据,于是每一个connfd都应该有一个自己buffer,当我们发送数据太快,服务器发送的太慢,则服务器会将待发送的数据这个buffer中,所以这就是这个类的作用。我们先看下buffer的结构是什么:我们这里主要针对connfd这个对应的channel进行分析,首先上图是buffer的初始状态,前

muduo源码分析之Buffer

这一次我们来分析下muduo中Buffer的作用,我们知道,当我们客户端向服务器发送数据时候,服务器就会读取我们发送的数据,然后进行一系列处理,然后再发送到其他地方,在这里我们想象一下最简单的EchoServer服务器,客户端建立一个连接,以后服务器和客户端之间的通信都是通过这个connfd发送和接受数据,于是每一个connfd都应该有一个自己buffer,当我们发送数据太快,服务器发送的太慢,则服务器会将待发送的数据这个buffer中,所以这就是这个类的作用。我们先看下buffer的结构是什么:我们这里主要针对connfd这个对应的channel进行分析,首先上图是buffer的初始状态,前

我不认为PG的Double Buffering是更优秀的解决方案

关于PG在Sharedbuffers上的DOUBLEBUFFERING设计,一直是争议极多的。有一些搞PG的朋友认为这是PG充分利用OSCACHE的一种特殊设计,是PG数据库设计中比较优秀的地方。还有一些朋友则认为这是一种过时的设计,与当前数据库技术的发展潮流所相违背的。前些天有几个朋友谈到这个问题,希望我写篇位置表达下我的观点。以我这些年做数据库优化的经验来看,DOUBLEBUFFERING的设计如果算是一种技术上的进步,在这一点上我一直是不太认同的。众所周知,现在几乎所有的现代数据库产品都是用AIO/DIO等方式来访问底层存储系统,只有PG目前还通过BUFFER/CACHE来读取物理文件。

我不认为PG的Double Buffering是更优秀的解决方案

关于PG在Sharedbuffers上的DOUBLEBUFFERING设计,一直是争议极多的。有一些搞PG的朋友认为这是PG充分利用OSCACHE的一种特殊设计,是PG数据库设计中比较优秀的地方。还有一些朋友则认为这是一种过时的设计,与当前数据库技术的发展潮流所相违背的。前些天有几个朋友谈到这个问题,希望我写篇位置表达下我的观点。以我这些年做数据库优化的经验来看,DOUBLEBUFFERING的设计如果算是一种技术上的进步,在这一点上我一直是不太认同的。众所周知,现在几乎所有的现代数据库产品都是用AIO/DIO等方式来访问底层存储系统,只有PG目前还通过BUFFER/CACHE来读取物理文件。

弄明白DOUBLE BUFFERING对PG数据库的运维与优化有什么意义

​昨天的案例讲了因为PG的DOUBLEBUFFERING导致的SQL执行忽快忽慢的问题,有些朋友在问是不是Oracle之外的很多数据库都是用类似的方式读取文件,这种DoubleBuffering技术是不是很落后,是不是必须加以改进。实际上,只要是使用文件系统,并且在读数据时没有采用DIO的数据库都会存在DOUBLEBUFFERING的问题,早期的Oracle也存在类似问题。上图比较清晰的说明了DOUBLEBUFFERING问题,对于写的情况,因为先写入CACHE,再由OS把CACHE写入磁盘,中间会有一些性能损失,不过对于现代的数据库来说,只有REDO/WAL是需要强一致性写入的,数据文件的写

弄明白DOUBLE BUFFERING对PG数据库的运维与优化有什么意义

​昨天的案例讲了因为PG的DOUBLEBUFFERING导致的SQL执行忽快忽慢的问题,有些朋友在问是不是Oracle之外的很多数据库都是用类似的方式读取文件,这种DoubleBuffering技术是不是很落后,是不是必须加以改进。实际上,只要是使用文件系统,并且在读数据时没有采用DIO的数据库都会存在DOUBLEBUFFERING的问题,早期的Oracle也存在类似问题。上图比较清晰的说明了DOUBLEBUFFERING问题,对于写的情况,因为先写入CACHE,再由OS把CACHE写入磁盘,中间会有一些性能损失,不过对于现代的数据库来说,只有REDO/WAL是需要强一致性写入的,数据文件的写

2015TPAMI(IMI多维倒排索引)-The Inverted Multi-Index

2012CVPR是本论文的会议版本。本文是乘积量化技术(PQ)最典型的索引方式。1INTRODUCTION乘积量化技术在查询时,需要找到query对应Voronicell或者和周边cell的点,如果数据量比较大,Cell也比较大的话,那么返回的点就会很多,需要花在Refine上的时间也会更多。因此一个迫切的要求是设计更为细粒度的分区,即voroonicell面积更小。一个最直接的方式是把codewords的个数提升一些,但是这同时意味着索引构建时间(学习时间)也更长。一些索引方法也可以引入进来,比如kd-tree,treecodebooks等,但是经常会降低查询准确性。本文提出的方法:多维倒排

2015TPAMI(IMI多维倒排索引)-The Inverted Multi-Index

2012CVPR是本论文的会议版本。本文是乘积量化技术(PQ)最典型的索引方式。1INTRODUCTION乘积量化技术在查询时,需要找到query对应Voronicell或者和周边cell的点,如果数据量比较大,Cell也比较大的话,那么返回的点就会很多,需要花在Refine上的时间也会更多。因此一个迫切的要求是设计更为细粒度的分区,即voroonicell面积更小。一个最直接的方式是把codewords的个数提升一些,但是这同时意味着索引构建时间(学习时间)也更长。一些索引方法也可以引入进来,比如kd-tree,treecodebooks等,但是经常会降低查询准确性。本文提出的方法:多维倒排

Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting

摘要多步(尺度)预测通常包含一个复杂的输入组合——包括静态(即时不变)协变量、已知的未来输入,以及其他仅在过去观察到的外生时间序列——没有任何关于它们如何与目标相互作用的先验信息。几种深度学习方法已经被提出,但它们通常是“黑盒”模型,并不能阐明它们如何使用实际场景中出现的全部输入。在本文中,我们介绍了时间融合变压器(TFT)——一种新的基于注意的架构,它结合了高性能的多步预测和对时间动态的可解释的洞察力。为了学习不同尺度上的时间关系,TFT使用循环层进行局部处理,并使用可解释的自我注意层进行长期依赖。TFT利用专门的组件来选择相关的特性和一系列的门控层来抑制不必要的组件,从而在广泛的场景中实现

Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting

摘要多步(尺度)预测通常包含一个复杂的输入组合——包括静态(即时不变)协变量、已知的未来输入,以及其他仅在过去观察到的外生时间序列——没有任何关于它们如何与目标相互作用的先验信息。几种深度学习方法已经被提出,但它们通常是“黑盒”模型,并不能阐明它们如何使用实际场景中出现的全部输入。在本文中,我们介绍了时间融合变压器(TFT)——一种新的基于注意的架构,它结合了高性能的多步预测和对时间动态的可解释的洞察力。为了学习不同尺度上的时间关系,TFT使用循环层进行局部处理,并使用可解释的自我注意层进行长期依赖。TFT利用专门的组件来选择相关的特性和一系列的门控层来抑制不必要的组件,从而在广泛的场景中实现