自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 什么是可串行化MVCC

随着数据库应用的不断发展,数据规模逐渐升级,为了提高效率,往往会将多个事务并发的执行。而多个事务并发可能会同时存取同一数据,产生数据不一致的情况:读“脏”数据,不可重复读等。所以数据库管理系统(Database Management System,DBMS)必须提供并发控制机制,使得并发的事务在冲突的时候被串行化执行。这种调度称为可串行化调度。 通过时间戳的调度规则通过比较时间戳来判定读写请求是否被允许。与封锁相比,时间戳规则采取一种乐观的方式,假设事务所有操作都是可串行的,只有操作确实导致了非可串行化行

2020-11-25 18:27:23 921

原创 分布式协议学习——一文彻底理解共识算法之Basic Paxos

什么是Paxos算法一致性就是数据保持一致,在分布式系统中,理解为多个节点中数据值的一致。而一致性又分为以下两种强一致性弱一致性Paxos算法就是著名的强一致性算法。它有一个假设前提,在分布式系统中进程间通信会出现延迟、丢失、重复等现象,但是不会出现传错的现象。而Paxos就是为了保证在这样的系统中进程间基于消息传递就某个值达成一致。其实在过去很长一段时间,Paxos算法可以说是分布式共识的代名词,当前最常用的一批共识算法,比如,Fast Paxos算法,Cheap Paxos算法,R

2020-11-06 16:47:21 692 4

原创 通过反汇编来理解restrict关键字

一次面试后对retrict关键字的理解一次难忘的面试经历什么是restrict功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入一次难忘的面试经历多年前,一次鹅厂实习生的面试题,题目的代码片段很简单,如下: 1 #includ

2020-10-20 23:16:29 115

原创 数据库专题——深入理解count(*)为什么这么慢

一文搞懂count(*count(*)的实现方式功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入之前在开发一个交易平台过程中,有遇到过需要计算交易记录总数。可能很多人会和我当初想得一样一条select count(*) from

2020-09-15 10:56:48 2071 4

原创 一文搞懂如何使用封锁来实现并发控制

前言随着数据库应用的不断发展,数据规模逐渐升级,为了提高效率。往往会将多个事务并发的执行。而多个事务并发可能会同时存取同一数据,产生数据不一致的情况。比如“脏”读,不可重复读等。所以数据库管理系统(简称DBMS),必须提供并发控制机制。使得并发的事务在冲突时串行化执行。这种调度称为可串行化调度。并发控制主要有两种方式,封锁和时间戳。我们先来讨论用封锁的方式来保证事务并发控制中的一致性问题。封锁方式是基于各种锁来进行并发控制。在封锁机制中,当多个事务同时访问同一数据时,应对其进行封锁请求的授予或等待。而加

2020-07-24 10:51:59 1818 4

原创 一文详解DeepID-Net

一文了解DeepID-NetDeepID-Net简介框架流程简介Bounding Box RejectionDeepID-Net 网络结构功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入DeepID-Net简介 DeepID-N

2020-06-12 11:11:48 256

原创 RS纠删码性能分析实战
原力计划

性能分析运行环境CPU: Intel® Xeon® CPU E5-2603 0 @ 1.80GHz内存:2049316 kBLinux版本:25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/LinuxReed_Sol_Van基于原始范德蒙矩阵的rs纠删码,生成矩阵由范德蒙矩阵构造,将原...

2020-03-12 14:09:22 855

原创 基于容器的虚拟化资源调度系统的架构设计

前言 考虑到底层平台必须支撑上层的多种服务,如媒体流服务、深度学习计算框架等,如果采用传统的基于MapReduce分布式计算框架必将带来扩展性差、资源利用率低、无法支持多种框架的问题。上层的每个服务组件的实现均是一个分布式子系统,如果单独实现,必然造成各组件之间完全孤立维护与管理。设计思路 为了解决这个问题,解决方案则是考虑将各个服务组件的资源管理与作业控制进行分离,并且加入基于Docker...

2020-02-21 20:48:36 1820

原创 数据库专题 一文理解如何选择普通索引和唯一索引

不同场景下的选择网上已经有很多关于唯一索引和普通索引的区别,这里就不详细阐述了,接下来我们深入讨论如何根据不同业务场景,应该选择普通索引还是唯一索引。比如维护一个社保管理系统,每个社保人员都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。如果该系统需要按照身份证号查询姓名,就会执行这样的SQL语句:select name from suser where id_card...

2019-11-18 20:04:41 651 3

原创 数据库专题-一文理解InnoDB为什么常用B+树做索引

在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是 512 字节,而文件系统(例如 XFS/EXT4)他的最小单元是块,一个块的大小是 4K。而对于 InnoDB 存储引擎也有自己的最小储存单元——页(Page),一个页的大小是 16K。InnoDB 的所有数据文件(后缀为 .ibd 的文件),他的大小始终都是 16384(16K)的整数倍。当然,在MariaDB中页的大小也是可以设置的...

2019-10-10 22:41:39 1947 5

原创 目标检测算法R-CNN详解

R-CNN介绍R-CNN框架介绍Graph-Based Image Segmentation方法介绍Selective Search方法介绍Bounding Box Regression介绍R-CNN框架介绍R-CNN框架出自UC Berkeley发表在CVPR 2014年的论文Rich feature hierarchies for accurate object detection and...

2019-09-11 16:34:18 489

原创 通过电商商城数据集测试OverFeat提取特征点质量

测试OverFeat特征点质量测试环境测试数据测试方法测试结果及分析使用OverFeat提取特征点两张图片的匹配数据集在OverFeat提点+暴力匹配测试结果测试环境主机名配置test75Intel® Xeon® 1.80GHz, 8核,16线程,内存 8G, 硬盘 200G测试数据为了测试OverFeat提取特征点的质量,采用从XX商城爬取的箱包、作为测试数据库...

2019-08-28 10:19:20 504

原创 一文理解受限玻尔兹曼机(RBM)

一文理解受限玻尔兹曼机(RBM)限制性玻尔兹曼机(RBM)原理RBM简单模型RBM能量函数和概率分布求极大似然对比散度算法RBM用途分布式RBM可能遇到的问题限制性玻尔兹曼机(RBM)原理限制性玻尔兹曼机在玻尔兹曼机基础上进一步加一些约束,取消了v,h变量内部的联系,即不存在可见单元与可见单元的链接,也不存在隐含单元与隐含单元的链接,如下图所示:RBM简单模型简单 RBM 模型的参数描述...

2019-08-19 10:34:13 1194 1

原创 一文了解caffe框架

caffe 框架介绍什么是caffeCafee的特点CNN框架:AlexNet数据层(data_layer)数据传递(blob)卷积层(convolution)受限线性单元(RELU)池化层(POOLING)局部响应归一化层(LRN)全连接层(INNER_PRODUCT)Dropout层输出(分类)层(softmax)什么是caffeCaffe 全称:Convolution Architect...

2019-08-13 16:10:38 9506 6

原创 一文读懂GoogLeNet神经网络

什么是GoogLeNetGoogLeNet特点优化网络质量的生物学原理GoogLeNet网络结构的动机GoogLeNet架构细节Inception模块和普通卷积结构的差异辅助分类器GoogLeNet网络架构GoogLeNet训练以及样本预处理GoogLeNet测试以及测试样本处理五、GoogLeNet检测+分类MultiBox方法SelectiveSearch方法提出一种全新的深度网络架构:In...

2019-08-01 10:52:47 2214 11

原创 C++ Boost智能指针的使用总结

boost库智能指针使用详解概述scope_ptr特点用法scope_array特点用法shared_ptr特点weak_ptrintrusive_ptr概述C++没有提供类似JAVA的垃圾回收机制,因此boost通过智能指针用来管理内存避免一些问题。C++继承 C 高效灵活地指针,但是同样带了了很多问题:1.内存泄露2.野指针3.越界访问虽然STL提供了auto_ptr,但是由于不能...

2019-07-17 23:11:22 1116

原创 sql 外键约束实例

sql外键约束实例结论在oracle 中的测试在MySQL中的测试结论当一个表A的列a为另一个表B的列b的外键时如果A的列a中删除的值在B的b列中存在,执行被禁止如果B的列b中插入的值在A中的a列中没有,执行被禁止在oracle 中的测试1.创建table cc 其中ID 是主键2.在主键上插入数据,并测试主键唯一性3.创建表 ccpre4.建立外键约束,把ccpre中...

2019-07-11 09:48:45 663 1

原创 MySQL不同隔离级别并发测试分析

MySQL不同隔离级别并发测试分析背景事务基于锁的并发控制MVCC测试方法用例与分析测试结果用例分析总结背景事务事务是数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务的出现主要有两个目的,一是提供数据库操作失败时的恢复方法,而是当多个应用程序同时访问数据库时,对其进行隔离,以防止相互干扰。事务具有原子性、一致性、隔离性、持久性四种特性,也就是所谓的ACID特性。在多个应用...

2019-07-05 11:22:33 3500 1

原创 数据挖掘算法———常用关联算法总结

常用关联算法总结关联算法Apriori 算法关联算法关联规则挖掘算法就是从事务数据库,关系数据库或其他信息存储中的大量数据的项集之间发现频繁出现的模式、关联和相关性。关联算法在科学数据分析、雷达信号分选、分类设计、捆绑销售、生物信息学、医疗诊断及网页挖掘等领域成果颇丰。典型的关联算法包括Aprior 算法、FP-G(Frequent pattern Growth,频繁模式增长树)算法、Fre...

2019-06-26 23:50:01 12173

原创 数据挖掘算法——常用分类算法总结

常用分类算法总结分类算法总结NBC算法LR算法SVM算法ID3算法C4.5 算法C5.0算法KNN 算法ANN 算法分类算法总结分类是在一群已经知道类别标号的样本中,训练一种分类器,让其能够对某种未知的样本进行分类。分类算法属于一种有监督的学习。分类算法的分类过程就是建立一种分类模型来描述预定的数据集或概念集,通过分析由属性描述的数据库元组来构造模型。分类的目的就是使用分类对新的数据集进行划分...

2019-06-17 10:55:22 45434 8

原创 数据挖掘——常用聚类算法总结

概述数据挖掘常又被称为价值发现或者是数据勘探,一般是指从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的,人们事先不知道的、但又是潜在有用的信息和知识的过程。它是一种大量数据的高级处理方式。常用的数据挖掘算法分为四大类:聚类、分类、关联以及推荐算法。另外还有一个预处理:降维算法聚类算法聚类是在一群未知类别标号的样本上,用某种算法将他们分成若干类别,这是一种无监督学...

2019-06-04 15:50:39 5173 6

原创 常用分布式计算任务调度算法

随着大规模并行分布处理系统,特别是网络工作站集群的广泛应用。如何采取有效的调度策略来平衡各节点的负载,从而提高整个系统资源的利用率,已成为人们的研究热点。集群具有可扩展性、 高可用性、高性能、高性价比等优点,作为存储区域网的存储设备具有天生的优势。随着PC机的发展,硬盘的价格越来越低,其存储容量越来越大,每台PC机也可配置多块硬盘,且可扩充能力极高,作为集群中的节点管理也相当方便,并具有一定的...

2019-05-10 10:12:38 11684 2

原创 通过参数-fno-elide-constructors关闭g++的编译优化

前两天在做讲课资料的时候遇到一个比较坑的问题。一般来说调用拷贝构造函数分三种情况1.当用类一个对象去初始化另一个对象时。2.如果函数形参是类对象。3.如果函数返回值是类对象,函数执行完成返回调用时。道理很简单,我写了个很简单的例子在fun函数中会返回一个class A的对象,那么编译器会在栈上构造一个临时对象,构造临时对象的方法则是调用拷贝构造函数结果运行后,如下...

2019-04-06 00:43:36 2483

原创 Bigtable论文笔记

Bigtable作为一个分布式存储平台,能够可靠的扩展存储PB级的数据,并分布到上千台服务器上。适合多种应用,从需要高吞吐量的批处理工作到延时敏感的实时性服务(Bigtable是如何达到这些目的的?在架构上是如何体现的?),具有良好的可伸缩性、高效性、高可用性、高性能(如何达到这些目的?如何设计的?)。一致性、可靠性的问题,论文中没有提到(如何做到这些?依靠底层GFS,还是依靠上层应用的设计?...

2019-03-25 22:38:13 19045

原创 flex&bison之注册表解析

flex&bison简介flex是GNU开发的一个实用工具,它主要用于对语言进行词法分析。使用flex,我们不需要使用像C/C++,Java这样的语言从设计状态机开始编写词法分析器,而只需要按照flex自己的语法编写分词规则文件,然后使用flex编译该文件,flex会根据规则文件生成C/C++源文件,这个源文件中包含了状态机的代码,简化了编写词法分析器的工作。flex的前身...

2019-03-17 21:27:38 1536

原创 使用Automake和Autoconf 生成Makefile 实例

工具简介GNU Autoconf 及 Automake 这两个软件就是帮助程序开发者轻松产生Makefile 。用户只要使用 “./configure”, “make”, “make install” 就可以把程序安裝到系统中。整个automake构建过程如下所示: Autoscan扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件...

2019-03-10 22:38:10 4601

原创 C++ 编译器什么时候会帮助创建拷贝构造函数

前提:当用户没有创建拷贝构造函数1.Memberwise初始化 逐个给成员变量赋值,这是最常见的拷贝方式。2.Bitwise Copy属性 当Class具有Bitwise Copy属性时,直接用memcpy内存拷贝,此时编译器不会合成拷贝构造函数。总之,只要Class不具备Bitwise Copy属性,编译器就会合成拷贝构造函数。没有Bitwise Co...

2019-03-06 11:53:25 2509

原创 常见结构化存储系统架构

什么是结构化存储系统结构化数据一般指存储在数据库中,具有一定逻辑结构和物理结构的数据,最为常见的是存储在关系数据库中的数据;非结构化数据:一般指结构化数据以外的数据,这些数据不存储在数据库中,而是以各种类型的文本形式存放,其中Web上的一些数据(内嵌于HTML或XML标记中)又具有一定的逻辑结构和物理结构,被称为半结构数据。目前比较成熟的结构化存储系统有Cassandra、Bigtable...

2019-03-01 22:39:24 5277

原创 C++ 虚函数表及多态内部原理详解(三)

(三)多重继承(无虚函数覆盖)下面我们再看看多重继承的情况 对于子类实例中的虚函数表,是下面这个样子: 从图上我们可以看到1)每个父类都有自己的虚表。2) 子类的成员函数被放到了第一个父类的表...

2019-02-26 21:48:02 4954

原创 C++ 虚函数表及多态内部原理详解(二)

实在不好意思,这几天有事没有及时更新。下面继续(二)一般继承(有虚函数覆盖)如果子类中有虚函数重载了父类的虚函数,会是一个什么样子?假设,我们有下面这样的一个继承关系。如图所示: 在这个类的设计中,只覆盖了父类的一个函数:f()。那么,对于派生类的实例,其虚...

2019-02-26 21:33:29 2986

原创 C++ 虚函数表及多态内部原理详解(一)

C++中 的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术 可以让父类的指针有“多种形态”,这是一种泛型技术。虚函数表每个含有虚函数的类都有一个虚函数表(Virtual Table)来实现的。简称为V-Table。C++的编译器应该是保证虚函数表的指针存在于对象实例中最前面的位置(这是为了保证...

2019-02-24 00:24:14 4663 1

原创 Hadoop MapReduce框架介绍

  Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。软件框架如下图所示:  Client:用户编写的Mapreduce程序通过Client端提交给JobTracker端;Client还提供一些查看作业运行状态的接口JobTr...

2019-02-21 22:24:45 2407

原创 分布式计算任务调度算法总结

一、影响分布式系统性能的因素主要有这些因素影响着分布式系统的性能:网络延迟、数据通信效能、计算节点处理能力、任务的分割、无法预算处理时间、任务的颠簸等等。我们在寻求分布式计算调度算法时,就是有针对性的以解决这些问题为目的,从各个角度,不同侧面,利用一种或者集中方法结合起来的形式,从而达到最优解,使得系统效率相对最高。二、几种基本的调度算法获得网络负载均衡有几个基本的方法。这些方法可以结合使...

2019-02-20 17:08:55 11176

原创 MySQL 存储引擎 (SphinxSE)安装详解

sphinxSE是一个mysql存储引擎,它可以编译进入mysql server之中,但必须版本是5.x(5.0.22或者5.0.x更高版本,5.1.12或者更高但5.1.x),在这里我采用的是5.1.55,Sphinx版本是coreseek-3.2.14,注意5.0.x的安装方式不一样,虽然是一个搜索引擎但是SphinxSE本身不存储数据,它是一个内置的客户端,允许mysql服务器与Sphinx...

2019-02-19 18:23:08 4243

原创 FUSE架构详解

整体架构及流程fuse为多线程并发模型,每个worker线程都在读取/dev/fuse中的请求,这样就保证线程之间的同步,当读取到一个请求之后,线程就开始处理该请求,但如果监听线程为0,则继续创建新的线程进行监听,处理完请求之后,如果线程的数量超过限制(10个),就退出该线程。整个框架如下: worker线程通过请求派发函数fuse_ll_process派发请求之后,根据opcod...

2019-02-18 09:40:34 11385

原创 B树的插入、删除操作详解

背景在大规模数据存储中,在实现索引查询这样一个实际背景下,二叉查找树结点存储的元素数量是有限的,这样导致二叉查找树结构由于树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下,那么如何减少树的深度(当然是不能减少查询的数据量),一个基本的想法就是:采用多叉树结构,B树也就应运而生。B树的定义一棵m阶的B树满足下列条件∶每个结点至多有m棵子树。  除根结点外,其它每个分支...

2019-02-17 13:35:09 10140 3

原创 Hadoop MapReduce验证分析

1、输入文件输入文件为一个1.2GB的文本文件,通过wc命令可以验证文本文件的行数,和总的单词个数。运行命令:hadoop jar /root/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /input/output行数为26048904单词个数为:...

2019-02-16 20:33:32 5313

原创 阿里校招软件开发岗位实习生面试经验分享

 本人曾参加过阿里校招面试,并顺利通过。现将当时的一些面试经验同大家分享。1、简历准备1.1 要求:简洁至上,突出项目,实习经历,获奖经历等1.2 参考模板教育背景 实习经历 项目经历(项目描述 + 个人职责 ) 所获奖励 个人技能整个简历页数最好控制在1 至 2 页 内比较好的Latex 模板网站推荐: http://www.latexstudio.net/a...

2019-02-16 20:21:58 4646

原创 Hadoop2.2 在Linux下的配置详解

1、环境准备1.1  java环境准备由于hadoop需要运行在java环境下,所以,java环境是必须的,需要安装jdk,最好不要用linux上自带的openjdk,需要用oracle官网提供的jdk才行。下载jdk网址为: http://www.oracle.com/technetwork/java/javase/downloads/index.html安装方法请自行参阅官...

2019-02-16 20:02:46 4275 2

原创 C++中Bitwise Copy带来的问题实例讲解

在对象拷贝过程中,如果没有显示定义默认拷贝构造函数和默认赋值构造函数,编译器会提供相应的缺省函数,该函数是"按位"进行拷贝或者赋值。对于只含有POD成员数据的简单类,bitwise copy方式绰绰有余。但是倘若类比较复杂,类成员中包含有指针、引用、虚函数时会出现错误。    以类A为例,类A定义如下图所示        假设创建对象a1,a2,a2通过a1拷贝,要是未定义默认拷贝构造...

2019-02-16 11:48:42 3794

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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