自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (4)
  • 收藏
  • 关注

原创 Rabbitmq

rabbitmq是一个消息通信的开源工具。本文自问自答,回答一些使用和理解上的难点。 提出大概10个左右的问题,1.Connection和Channel的区别?程序要使用rabbitmq,要先创建一个到rabbitmq的连接,指定ip,端口,vhost,验证用户和密码,以及相关的设置,比如timeout时间、心跳时间,以及最大的channel数目。连接,对于RabbitMQ而言,其实

2017-08-06 20:32:04 630

原创 mysql一些使用点的探讨

注:MySQL是一个支持插件式存储引擎的数据库系统,下文探讨的针对的存储引擎都是innodb的。1.大数据的删除,比如一亿行数据的表中删除或者更新一千万行数据?mysql提供了几种数据删除的方法,有truncate,drop和delete。 1.truncate和不带where子句的delete、以及drop都会删除表内的数据。 2.drop、truncate都是DDL语句(数据定义语言)

2017-06-05 17:20:26 1490

原创 web杂谈

前言:本人作为一个前端小白,梳理一下这段时间开发前端一个页面的过程,希望对自己起到备忘并思考的作用,希望我的经验对于别人也有一点帮助的作用。由于本文碎碎念的部分过长,导致本文过长。还请读者见谅。—更新中(更新周期大概还会持续一个月)前端框架现如今,前端框架也越来越多了,比如ember,angular,以及这里要说到的vuejs.。下面的内容首先要介绍vue.js的原理。Vue.js ?原理vue

2017-04-23 16:44:44 2993

原创 规划问题求解的理论---线性代数

概述谈到规划问题的时候,我们不得不谈到线性代数的内容。大学的时候,同学们应该都上过一门课—《线性代数》,这门课当时让人非常的反感,因为全是证明和定理,学起来毫无趣味。 “没有比线性代数更加基础的了,虽然事实上一代又一代的教授和图书编写者们通过荒谬的矩阵计算将线性代数的简单特性变得非常的模糊”。 但是如果说能从一个新的有趣的角度让你对这些知识重新装在脑袋里,而且还不会忘记,你会不会乐意接受? 通

2017-01-16 19:18:33 1709

原创 ElasticSearch

首先问一个问题,数据是一个什么样的概念? 比如我这里有一个csv文件,有65万行数据,每行数据包括20多个字段;这是一个庞大的数据量,大概占用了150兆的磁盘空间,如果我用wps将它加载到内存中,大概也需要这么多的内存。如果你的内存剩余量不够大,可能就没法打开这个文件了;就算内存足够大,这也是内存的一大块了。那么在这么大的数据或者大十倍的数据中查询某一个数据,你要怎么做呢?Elasticsearc

2016-12-22 20:43:03 1031

原创 规则引擎 clara-rules

本文的主题是规则引擎,主要内容包括规则引擎的实现算法 rete算法,clojure开源的规则引擎clara-rules对规则的处理方式和特点,以及clojure edn文件格式处理等内容。那么什么是规则引擎呢?规则引擎 规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则

2016-11-01 17:38:46 4127 1

原创 线性规划和约束满足问题的思考

本文写给对线性规划和约束满足问题的使用有困惑的朋友,如果你曾经在这方面存在一些疑问,这篇文章对你来说就再适合不过了,如果有对线性规划的解法感兴趣,那么也推荐你看一看我的思考~ *注:之前一直以为约束满足问题和线性规划问题是一样的,才发现其实不是这样的,仔细想想我之前的理解原来存在着那么大的误会。虽然也不能说他们完全不一样,因为基本上模型一样,具体的算法却是不一样的。为什么呢,因为这两类问题的目标不

2016-09-18 11:19:41 24125 2

原创 clojure 项目构建 boot

我们知道,c和c++程序是使用makefile来构建的;java程序使用ant,maven等构建;那么基于java的函数式编程clojure要怎么构建大型应用程序的呢?当然,也可以基于maven,本文主要先讲述clojure基于Leiningen的构建方式,然后会着重讲述clojure基于boot的构建方式。构建程序相关的基本概念构建是一个统称,包括我们写完代码之后到代码发布之前越来越多的东西;

2016-08-14 11:32:59 2505 2

原创 Camel 和rabbitmq 集成处理

*前言:本文可能像口水文,因为写作本文的时候很多东西都没有理透,都是边写边理解,只当是写给自己看的吧,并且把这些点点滴滴的思想串成一条线。camel 核心 camel是一个基于规则路由和处理的引擎,提供企业集成模式的Java对象的实现,通过应用程序接口或称为陈述式的Java领域特定语言(DSL)来配置路由和处理的规则。(引擎,只要你充分理解它,并且按照它的规则来,它就可以帮你达到相应的目的。)

2016-08-02 20:59:24 5415

原创 连接数据库 in clojure ---korma

注:本文本周内会一周更新,如果自己速度太慢的话,本文下周可能还会继续更新。先扔上两个链接:http://sqlkorma.com/和https://github.com/korma/Korma/blob/master/src/korma 本文会先从korma/db的角度入手讲起,最后才讲具体的用法。首先什么是连接池? In software engineering, a connection

2016-07-20 09:53:37 1652

原创 理解clojure语法(2)

注:本文长期更新 本文梳理一些clojure的常用知识点,惯用法?maybe 1.#'表示取得变量对象本身,var-quote (#')#'x ⇒ (var x)这是#的一个reader宏,作用是: get Var object instead of the value of a symbol (var-quote),. The reader macro #’x expands to (

2016-07-08 20:10:52 5573 1

原创 理解clojure语法(1)

然后counter被绑定到匿名函数`#(swap! tick inc)`的地址。当counter绑定完之后,每次调用counter :`(counter)` 解释器就会找到counter ,也就是匿名函数的那个地址,然后调用它,就相当于执行了匿名函数 `#(swap! tick inc)`,也就是给tick的值加1

2016-05-04 21:58:42 2339

原创 web页面拖放效果的实现

本文主要分析dnd.js拖放操作的实现 1.概述:dnd.js主要提供了两个对象给我们使用,一个Drag,一个Drop。可以认为一个是用来拖动的元素,另外一个是用来放下的区域,实际上也确实是这么用的。 2.主要的使用方法: 创建一个拖动元素 new Drag…,和一个拖放区域 new Drop,然后在回调函数里面实现你想要的逻辑,重要的是回调函数。随着拖放动作的进行,这包括一系列的拖放动作,

2018-01-12 11:51:22 11361 1

翻译 如果你想开发自己的软件产品

关于作者:一个企业家、web开发人员。最先开始创建了Lionite,一个web开发商店,现在我是BinPress的CTO,一个源码发现和源码市场的平台。快速总结:如果你喜欢这个当自己老板的主意(我当然喜欢),你可以抓住机会创建属于你自己的产品——一个你可以完全掌握创建她的方向的产品,你不需要和别人有任何的妥协,并且你完全沉浸于创建她的快乐,而不是像工作时的按时付费的那种感觉。这可以是一个Web

2018-01-09 17:09:22 2263

原创 工具1--rundeck

本文介绍rundeck.

2016-12-21 11:33:30 1118

原创 工具类

恩! 这就是学一款工具系列文章:)) 这个系列文章可能会包括一系列短小的文章,这类文章和我前面写的文章类型都不太一样,主要是介绍一些工具;以前写的都是分析类和原理类的文章,可是我也渐渐的认识到工具有多么重要,在工作和生活中对我们是多么的有用。 1.rundeck是一款运维工具,可以帮助自动化任务和jobs。 2.这次介绍一款日志工具 [Elastic search] … 3.运维工具sup

2016-12-21 10:43:54 704

翻译 spark编程指南

本文翻译文章 http://spark.apache.org/docs/latest/programming-guide.html 可以通过很多支持的API去操作RDD 也还需要浪费很多笔墨来组织这一块的操作,因为这一块实在是非常的重要。 RDDs support two types of operations: transformations, which create a new dat

2016-11-29 22:28:13 890

原创 JNI技术---clojure 调用C++库的方法

本文目的:加深理解—to JNI and clojure。JNI概述JNI,是Java Native Interface的缩写,中文为Java本地调用。 JavaTM Native Interface (JNI) is a standard programming interface for writing Java native methods and embedding the JavaTM

2016-09-17 12:17:04 1219

原创 Clojure二分查找

在内存大量数据查找的情况下,改进clojure.set查找函数select,只是简单的改进,从遍历到二分查找,却可以带来性能上的很大改进

2016-07-08 18:36:35 892

原创 用SDN的方法管理存储流量(在io融合网络中)

本文基本思想来自[论文](http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6825102) ,介绍了一种类似于SDN openflow的方法,并将它应用于[fcoe](http://blog.csdn.net/yin_wuzhe/article/details/40888093)网络中。这种控制流的方法可以和openflow为协议的s

2015-05-06 14:21:10 1682

原创 linux内核DCB子系统

note: 这是使用Markdown编辑器对我的前面写的一个同名的博客的再排版。问题1 :网络设备是怎么利用linux内核的DCB子系统,来达到融合网络流量的各种各样的QoS需求的? 问题2:融合网卡或者存储流量是否也可以使用到DCB子系统,他们是怎样工作的? 本文将对上面这两个问题进行解答;本文首先大体介绍了DCB机制和它的使用环境;然后介绍一个使用DCB的应用程序lldpad的例子

2015-05-03 20:41:01 1675

原创 unix平均负载average load计算方法

average load?表示系统在一段时间内的平均进程个数,也就是表示系统的繁忙程度。average load和CPU利用率不一样,更加能够表示系统的繁忙程度,下面将就系统的average load的计算和相关进行简单介绍。查看方法在linux系统下使用uptime命令,或者查看/proc/loadavg都可以看到系统负载average load。使用uptime命令会显示系统分别在过去的1分钟

2015-05-03 19:42:52 3216

原创 链接过程

符号和符号表在ld等链接器的上下文中,有三种不同的符号。每一个可重定位目标模块m都有一个符号表,它包含m所定义的和引用的符号的信息。由m所定义的并且能够被其他模块所引用的全局符号。就是非静态的c函数和被定义为不带c static属性的全局变量。在其他模块定义并被模块m引用的全局符号。...

2015-04-07 11:16:59 941

原创 linux进程管理(C语言)

理解进程控制的原理对于理解和修改fio project非常的重要。"fio is an I/O tool meant to be used both for benchmark and stress/hardware verification."

2015-03-08 21:31:34 1830

原创 linux内核DCB子系统

网络设备是怎么利用linux内核的DCB子系统,来达到融合网络流量的各种各样的QoS需求的?融合网卡或者存储流量是否也可以使用到DCB子系统的,他们是怎样工作的?本文将对上面这两个问题进行解答;本文首先大体介绍了DCB机制和它的使用环境;然后介绍一个使用DCB的应用程序lldpad的例子;再然后介绍一个DCB子系统中重要的数据结构;最后介绍DCB内核模块和驱动的具体实现。

2015-01-14 21:05:37 4403

原创 内核Netlink接口剖析

当开发linux内核特性的时候,将必要的详细信息暴露给用户空间的程序是一个比较好的习惯,因为这增强了内核的扩展性。通常来说,软件开发者必须面对这样一个任务:寻找一种好的方法使得用户空间和内核空间进行交互。

2015-01-14 18:49:25 2884

原创 虚拟网络的无损保证-zOVN

现在数据中心的网络主要被两股趋势所主导:一个是为了无损的二层fabrics,基于增强的以太网和Infiniband,通过从性能和效能方面得到好处;另外一方面,是基于软件定义网络的灵活性,这使得重叠的虚拟网络成为可能(SDN是重叠的虚拟网络的动力)。现在的问题是这两方面存在一些冲突,物理的Fabrics通过流控制机制(Flow_based Control)来防止丢包,而虚拟网络(没有流控制机制)却是会丢包的。所以,这个文章提出了一种零丢失的重叠虚拟网络,这个原型叫做zOVN。

2015-01-03 21:05:35 2289

原创 xen的网络设备机制-I/O环

对于网络设备是这样的,Xen给虚拟机提供了虚拟网桥,每一个Domain都有一个或者多个虚拟接口VIFs逻辑上连接到了虚拟网桥,一个VIF看起来就像是一个物理网络接口卡NIC一样,但是有两个buffer描述符环,一个是接收的,另外一个是发送的。这两个方向都有各自的rule形式,如果满足的话,相应的动作就会实施(就相当于物理网卡可能会执行的过滤功能那样)。

2014-12-27 12:49:49 2595

原创 sysfs文件系统

sysfs是一种代表内核对象的机制,内核对象的属性和内核对象相互之间的关系。从sysfs的目的来看,是把原本在procfs中的,关于设备的部分独立出来,以“设备层次结构”的形式呈现。它提供了两个组件,一个内核编程接口来把这些item通过sysfs暴露出来;另外一个组件是用户接口,来view和操作这些item(对应着相应的内核对象)。从内核的角度来看,sysfs是作为一个基础架构的核心组件,所以接口很简单,要执行的任务也很简单。

2014-11-29 17:03:45 2039

原创 SDCC:可软件定义的存储三——just-in-time caching in an enterprise storage system

协调flash和san,来达到很好的优化的目的。sdcc server通过给client做出caching决定。而client则负责管理局部的数据cache空间,细粒度的监控workload,然后将数据从SAN搬运到DAS,从而达到更短的读请求相应时间。

2014-11-21 16:20:23 1205

原创 可软件定义的存储逻辑二——Energy适应性的分布式存储系统

提出了一个灵活的、可扩展的分布式存储系统,给它取名字flexStore。这个分布式存储系统可以非常好的适应数据中心中不停变化的能源,给去重的虚拟机磁盘IO存取带来很好的性能。这些研究人员研究并提出了一种智能的控制来对付数据中心供电的限制,因为有可能存储阵列的节点密度增加了,也有可能绿色能源和传统能源混合一起给数据中心供电。

2014-11-21 11:19:46 1722

原创 可软件定义的存储逻辑——Efficient and agile storage management in software defined environments

这篇论文和IOFlow相比较,更加地注重软件定义存储的框架(利用已有的框架来创建新的框架,然后使用已有的协议),而不是像IOFlow那样注重通信的协议。并且这个框架还是软件定义环境的框架,而不仅仅是存储的框架,不过全文注重说了存储(更有挑战性)。特别地,关于可软件定义的存储逻辑,从这里可以管中窥豹。

2014-11-14 11:21:55 2042

原创 IOFlow——从微软的角度看Software Defined Storage

在现在的数据中心中,应用程序到存储设备的I/O路径都特别长,其中包括很多的层次或者说是stages,具体是怎样的可以点击这里,而且这些层次之间的接口还是不透明的(就像隧道),这使得要enforce一个end-to-end的policy (比如对于不同的tenant,需要不同的存储带宽,比如热数据和冷数据,比如存储服务的不同等级的客户)很难(相对于软件定义网络的控制逻辑而言,因为网络包的头部很好处理)。相对于SDN的OpenFlow,这里设计了IOFlow,在hypervisor阶段和storage serv

2014-11-07 14:16:22 2469

原创 存储子系统剖析——从存储子系统角度看FCoE模块

如果一个用户空间中的应用程序(假设是用c语言编写的)要读取存放在remote scsi磁盘上面的某个文件,那么这个应用程序就需要使用c库的程序,然后调用内核提供的系统调用read(),系统调用会访问VFS,也就是虚拟文件系统,那么虚拟文件系统是什么呢?虚拟文件系统其实是文件系统的抽象层(复用代码的设计思想?),然后由VFS 选择那个正确的文件系统,因为甚至有的文件系统就是网络文件系统呢。然后到了真正的文件系统,文件系统是一个组织文件在磁盘上面存放的管理系统,由文件系统找到文件对应的块。再然后到了块设备层。文

2014-11-07 11:07:06 2374

原创 Netmap to VALE—— 从高性能网络框架到高性能虚拟网络交换机

Netmap to VALE从高性能网络框架到高性能虚拟网络交换机由于项目需要,我常常思考一个高性能的虚拟交换机应该怎么做。像我在前面也提到过,对于全虚拟化和半虚拟化,需要分配给虚拟机一个虚拟网络接口,这些就需要一个虚拟交换机(可以和hypervisor一同使用),将虚拟网络接口的数据包最终从物理接口转发出去。来源项目netmap做了一个高性能网络框架,并且同样使用这个原理走完成了高性

2014-10-31 15:38:31 4069 2

原创 I/O虚拟化

我们假设现在大部分的计算机服务都迁移到了虚拟化环境中(其实是事实),带来的主要好处是资源共享并减少开销。虚拟机也是需要访问外围设备的,比如磁盘和网络。即使在非虚拟化环境中访问网络也是很有挑战性的技术(应用程序使用系统调用),所以到了虚拟机这一层面,访问网络,要达到硬件的速度很困难。所以要怎么处理虚拟化I/O呢?主要有三种方法来虚拟化I/O,分别是全虚拟化,半虚拟化以及Direct I/O accsss。他们在处理guest和hypervisor通信以及hypervisor和host架构上分别采用了不同的处理

2014-10-31 14:27:27 4030

原创 FCoE模块设计与实现

0 FCOE协议介绍    太网光纤通道(FCoE)将FC帧映射并封装到以太网帧中,从而使得光纤通道存储流量能在太网上传输,加上FCoE交换机的支持,将以太网上IP数据和FC数据等其它数据流整合到统一网络链路,构成一个融合网络。1背景FCoE技术的背景:海量数据存储1.1存储技术与海量数据存储本地存储:直接连接存储(Direct Attached Storage,DAS),直接

2013-07-17 12:13:27 1415

原创 grub-install的方法

在linux系统下面安装了windows系统之后,计算机开机默认进入的是windows系统,怎么才能修改grub,使得能够选择进入哪个系统呢?1.通过光盘或硬盘进入linux系统2.修改linux系统的grub,添加进入windows的项输入以下命令mount  /dev/sda11mount --bind /dev /mnt/devmount --bind /proc /

2012-12-24 11:53:57 3122

原创 超级调用实现原理

1.为什么要超级调用?    在Xen虚拟机系统中,对于特权操作,虚拟机操作系统通过软中断Trap到Xen VMM中,通过超级调用来实现某些特权指令和敏感指令。超级调用就类似于操作系统的系统调用,只是系统调用在操纵系统中实现,而超级调用在虚拟机管理器VMM中实现,是更底层的实现。所以叫超级调用。2.有哪些超级调用的形式?    超级调用使用0x82的中断号,参数通过寄存器传递。超级调用

2012-12-18 20:36:00 2512

LL1语法制导翻译

赋值语句自上而下翻译系统的设计与实现 设有如下文法: S → A A → V:=E E → E + T | T T → T * F | F F → (E) | digit V → i 采用LL(1)分析法对所定义的赋值语句进行语法分析,并在语法分析过程中将所输入的赋值语句翻译为四元式。

2012-11-12

编译原理课程设计——自上而下

设有如下文法: S → A A → V:=E E → E + T | T T → T * F | F F → (E) | digit V → i 采用自上而下进行语法分析,并进行语义分析后翻译为四元式输出。

2012-11-08

免安装Apache服务器

适应于动态网页规划的,集Apache、PHP和SQL数据库于一体的系统一体化设置安装软件

2011-12-31

空空如也

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

TA关注的人

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