mysql InnoDB是事务安全的存储引擎,设计上借鉴了很多Oracle的架构思想,一般而言,在OLTP应用中,InnoDB应该作为核心应用表的首先存储引擎。InnoDB是由第三方的Innobase Oy公司开发,现已被oracle收购,创始人是Heikki Tuuri,芬兰赫尔辛基人,和著名的Linux创始人Linus是校友。InnoDB体系架构上面是InnoDB的一个简图
mybatis 原理 MyBatis是目前非常流行的ORM框架,它的功能很强大,然而其实现却比较简单、优雅。本文主要讲述MyBatis的架构设计思路,并且讨论MyBatis的几个核心部件,然后结合一个select查询实例,深入代码,来探究MyBatis的实现。一、MyBatis的框架设计 注:上图很大程度上参考了iteye 上的chenjc_it 所写的博文原理分析之二:框架整体设
fork出的子进程和父进程 一、fork后的父子进程由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新进程(子进程)的进程 id。将子进程id返回给父进程的理由是:因为一个进程的子进程可以多于一个,没有一个函数使一个进程可以获得其所有子进程的进程id。对子进程来说,之所以fork返回0给它,是因为它随时可以调用
jit即时编译 WeiboGoogle+用电子邮件发送本页面JIT 是 just in time 的缩写, 也就是即时编译编译器。使用即时编译器技术,能够加速 Java 程序的执行速度。下面,就对该编译器技术做个简单的讲解。首先,我们大家都知道,通常通过 javac 将程序源代码编译,转换成 java 字节码,JVM 通过解释字节码将其翻译成对应的机器指令,逐条读入
bio aio nio 转载请注明出处:http://blog.csdn.net/anxpp/article/details/51512200,谢谢! 本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解。 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端。 代码的所有说明,都直接作为注释,嵌入到代码中,看代码时就
redis存储结构 Base 2.8.7Redis是一个包含了很多Key-Value对的大字典,这个字典支持的Value非常丰富,可以为字符串、哈希表、列表、集合和有序集,基于这些类型丰富的value,扩展出了功能强大的操作,例如hmset、lpush、sadd等字典字典是Redis最基础的数据结构,一个字典即一个DB,Redis支持多DBRedis字典采用Hash表实现,针对碰撞问题,其采用的方
美团推荐系统 沈国阳:美团推荐系统整体框架与关键工作http://www.csdn.net/article/2015-08-13/2825455摘要:美团推荐与个性化团队技术经理沈国阳来到CSDN在线视频分享平台,为我们深度解析美团本地生活服务推荐的工作经验,并与群友进行互动交流。沈国阳重点介绍了美团推荐系统的架构和特色,以及在排序层面的主要工作。8月11日晚20
git detached 解决 HEAD DETACHED push origin失败问题先说HEADHEAD是一个头指针,通常情况下指向不同的分支,每个分支对应一个commit(准确的说,每个分支对应多个commit,但是只有一个顶层的commit,而commit之间是简单的线性关系。)git checkout 其实是修改HEAD文件的内容,让它指向不同的分支。下面是一个一般的情况:HEAD
mllib 假设检验 Spark中组件Mllib的学习之基础概念篇 1解释 参考【4】的博文讲的比较清楚了,只是里面有些错误。 定义卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,卡方值越大,越不符合;卡方值越小,偏差越小,越趋于符合,若两个值完全相等时,卡方值就为0,表明理论值完全符合。(1)提出原假设: H0:总体X的
Scala 强大的集合数据操作示例 Scala是数据挖掘算法领域最有力的编程语言之一,语言本身是面向函数,这也符合了数据挖掘算法的常用场景:在原始数据集上应用一系列的变换,语言本身也对集合操作提供了众多强大的函数,本文将以List类型为例子,介绍常见的集合变换操作。一、常用操作符(操作符其实也是函数)++ ++[B](that: GenTraversableOnce[B]): List[B] 从列表的尾部添加另外一个
log 输出日志 logback系列之一:输出日志到控制台 logback系列之二:输出日志到文件 logback系列之三:输出日志到文件(滚动) logback系列之四:输出日志到不同文件 为了方便查看和归档: 不同包的日志可能要放到不同的文件中,如service层和dao层的日志; 不同日志级别:调试、信息、警告和错误等也要分文件输出。 一、根据包输出,通过logger的
spring boot注解及启动过程 转自http://blog.csdn.net/isea533/article/details/50278205点击打开链接Spring Boot 入门spring Boot是Spring社区较新的一个项目。该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进行入门体验,让Java开发也能够实现Ruby on Rails那样的生
SpringBoot 启动解析 前面几章我们见识了SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会吃亏。所以这次博主就跟你们一起一步步揭开SpringBoot的神秘面纱,让它不在神秘。正文我们开发任何一个Spring Boot项目,都会用到如下的启动类@SpringBootApplicationpublic class A
RabbitMQ和kafka从几个角度简单的对比 在应用场景方面,RabbitMQ,遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上。kafka是Linkedin于2010年12月份开源的消息发布订阅系统,它主要用于处理活跃的流式数据,大数据量的数据处理上。1)在架构模型方面,RabbitMQ遵循AMQP协议,RabbitMQ的broker由Exchange,Bind
linux 零拷贝 零拷贝技术的相关背景知识传统的 Linux 操作系统的标准 I/O 接口是基于数据拷贝操作的,即 I/O 操作会导致数据在操作系统内核地址空间的缓冲区和应用程序地址空间定义的缓冲区之间进行传输,这样做最大的好处是可以减少实际的物理磁盘 I/O 操作。但是数据传输过程中的数据拷贝操作却导致了极大的 CPU 开销,限制了操作系统有效进行数据传输操作的能力。简单一点来说,零拷贝就是一种避
分布式消息系统:Kafka Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。在大数据系统中,常常会碰到一个问题,整个大数据是由各个子系统组成,数据需要在各个子系统中高性能,低延迟的不停流转。传统的企业消息系统并不是非常适合大规模的数据处理。为了已在同时搞定在线应用(消
kafka 理解 Apache Kafka与传统消息系统相比,有以下不同:它被设计为一个分布式系统,易于向外扩展;它同时为发布和订阅提供高吞吐量;它支持多订阅者,当失败时能自动平衡消费者;它将消息持久化到磁盘,因此可用于批量消费,例如ETL,以及实时应用程序。本文我将重点介绍Apache Kafka的架构、特性和特点,帮助我们理解Kafka为何比传统消息服务更好。
kafka 理解 问题导读:1.zookeeper在kafka的作用是什么?2.kafka中几乎不允许对消息进行“随机读写”的原因是什么?3.kafka集群consumer和producer状态信息是如何保存的?4.partitions设计的目的的根本原因是什么? 一、入门 1、简介 Kafka is a distributed,partitioned
http协议深入理解 1. 基础概念篇1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中