乐观锁和悲观锁

2016-1-27 diaba 数据库

锁( locking ) 业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算 处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中 (可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机 制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓 的 “ 锁 ” ,即给我们选定的目标数据上锁,使其无法被其他程序修改。 Hibernate 支持两种锁机制:即通常所说的 “ 悲观锁( Pessimistic Locking ) ” 和 “ 乐观锁( Op...

阅读全文>>

标签: 乐观锁 悲观锁

评论(0) 浏览(2612)

多看看吧,啥也不说

2016-1-26 diaba 随笔记录

1、时到,花自开。----你只要努力了,花迟早会盛开的。  2、别轻易转行。----转行的风险很大,若无大决心、大魄力,最好不要轻率为之。  3、不只为了糊口,还要有抱负。----你要想清楚,在这个行业中,我要成为什么样的人。  4、不要独享荣耀。----独享荣耀,有一天就会独吞苦果。  5、用耐心把冷板凳坐热。----冷板凳都坐过了,还有什么好怕的呢?  6、留一点空间给你的主管。----当主管的也需要安全感。  7、不要有"怀才不遇"的想法。----怀才不遇多半是自己造成的。  8、天下没有"好赚"的钱。-...

阅读全文>>

评论(0) 浏览(2142)

B树(B-树)、B+树、B*树

2016-1-25 diaba 数据结构

B树        即二叉搜索树:        1.所有非叶子结点至多拥有两个儿子(Left和Right);        2.所有结点存储一个关键字;        3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;   &nbs...

阅读全文>>

标签:

评论(0) 浏览(2736)

Mysql存储引擎MyISAM和InnoDB对比

2016-1-25 diaba Mysql

mysql的MyISAM和InnoDB两个存储引擎的索引实现方式: MyISAM引擎使用B+ Tree作为索引结构,叶节点存放的是数据记录的地址。 MyISAM引擎的辅助索引(二级索引)和主索引在结构上没有区别,只是辅助索引的key可以重复,叶节点上存放的也是数据记录的地址。 MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。 InnoDB中表数据本身就是按B+ Tree组织的一个索引结构,叶节点存放的就不是数据记录的地址,而是完整的数据记录。所以InnoDB这种存储方式,又称为聚集索引,使得按主键的...

阅读全文>>

标签: myiasm innodb

评论(1) 浏览(3129)

三种基本存储引擎

2016-1-25 diaba Mysql

哈希存储引擎     是哈希表的持久化实现,支持增删改及随机读取操作,但是不支持顺序扫描,对应的存储系统为key-value存储系统。对于key-value的插入及查询,哈希表的复杂度都是O(1),明显比树的操作O(n)要快,如果不需要有序的遍历数据,那么哈希表就是your Mr.Right。 B树存储引擎     是B树的持久化实现。不仅支持单条记录的增删查改操作,还支持顺序扫描(B+树的叶子节点之间的指针),对应的存储系统就是关数据库。 LSM树(Log-Structured Merge Tree)...

阅读全文>>

标签: 存储引擎

评论(0) 浏览(3645)

JVM内存区域的划分

2016-1-20 diaba Java

    java程序通过JVM(java虚拟机)来执行的,JVM包含:加载字节码的Class Loader、执行java程序的执行引擎、存储程序执行过程中用到的数据和相关信息的运行时数据区。     平时说的java内存管理就是对运行时数据区的管理,包含分配和回收内存空间。下面详细说明运行时数据区的区域划分。     运行时数据区包含:程序计数器、方法区、java堆、java栈、本地方法栈。     1.程序计数器 程序计数器(Pr...

阅读全文>>

标签: jvm结构

评论(0) 浏览(2669)

Linux环境安装Kafka消息队列系统

2016-1-11 diaba Kafka

原文:http://czj4451.iteye.com/blog/2041096 1. 简介  kafka (官网地址:http://kafka.apache.org)是一款分布式消息发布和订阅的系统,具有高性能和高吞吐率。    i. 消息的发布(publish)称作producer,消息的订阅(subscribe)称作consumer,中间的存储阵列称作broker。  ii. 多个broker协同合作,producer、consumer和broker三者之间通过zookeeper来协调请求和转发。 ...

阅读全文>>

标签: kafka

评论(0) 浏览(3016)

分布式系统保证数据一致性的事务机制

2016-1-7 diaba 分布式

分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制 1.分布式事务XA XA是分布式事务的规范,定义了事务管理器和资源管理器之间的接口。XA接口是双向的,在事务管理器和资源管理器之间形成通信桥梁。事务管理器控制着全局事务,管理事务的生命周期,协调资源。资源管理器负责控制和管理实际资源(e.g. 数据库或JMS队列) 2.JTA 定义了java事务规范,具体实现由供应商负责提供 3.两阶段提交 a)准备阶段  b)提交阶段  两阶段保证分布式事务原子性,要么全做,要么全部做。 准备阶段 事务管理器(事务协调者)给...

阅读全文>>

标签: 分布式一致性

评论(0) 浏览(3289)

分布式数据存储-数据sharding实现

2016-1-6 diaba 分布式

在DAO层、ORM框架层、JDBC API层、DAO与JDBC之间的spring数据访问层、应用与数据库之间代理层实现数据库sharding优缺点分析: 1.DAO层     优点:不受ORM框架制约,实现起来比较简单、易于根据业务特点进行灵活定制、无需解析SQL和路由规则匹配性能会稍微好些     缺点:技术有一定门槛,工作量比依靠框架要大(用框架有学习成本),不通用,只能在特定系统中使用 2.ORM框架层     两个方向:在实现O-R Map...

阅读全文>>

标签: sharding

评论(0) 浏览(3335)

Redis—常见参数配置

2016-1-6 diaba Nosql

Redis的以下常见参数设置都是通过对redis.conf文件进行修改来完成的。  本文主要介绍了设置访问密码、主从配置、设置数据和日志目录、以及参数调优等方面。    一. 权限设置:   1. 修改redis.conf文件: Shell代码 requirepass passstring   2. 客户端登录,需要先进行授权操作,提供密码即可。 Shell代码 auth...

阅读全文>>

标签: 配置 调优

评论(1) 浏览(3766)

Redis设计与实现——RDB和AOF持久化区别

2016-1-6 diaba Nosql

原文:http://blog.csdn.net/jackpk/article/details/30073097 aof,rdb是两种 redis持久化的机制。用于crash后,redis的恢复。 rdb的特性如下: Code: fork一个进程,遍历hash table,利用copy on write,把整个db dump保存下来。 save, shutdown, slave 命令会触发这个操作。 粒度比较大,如果save, shutdown, slave 之前crash了,则中间的操作没办法恢复。 ao...

阅读全文>>

标签: RDB AOF

评论(0) 浏览(2691)

Redis设计与实现——常用命令

2016-1-6 diaba Nosql

    Redis提供了丰富的命令,允许我们连接客户端对其进行直接操作.这里简单介绍一下作为常用的一些命令,包括对字符串、列表、集合、有序集合、哈希表的操作,以及一些其他常用命令。 【 基本操作】 1. 添加记录:通常用于设置字符串(string)类型,或者整数类型;如果key已经存在,则覆盖其对应的值。 Shell代码   set name Jam...

阅读全文>>

标签: redis 命令

评论(0) 浏览(1934)

Java文件压缩操作

2016-1-5 diaba 基础

原文:http://hello-nick-xu.iteye.com/blog/2002613      在web开发过程中,进行文件的压缩传输是一种常见的需求。比如一种场景:用户需要下载定时生成的报表,我们需要先对报表文件进行压以方便用户的下载,并减少文件的存储空间。      事实上,JDK已经提供了文件压缩/解压缩的支持,可以生成zip/gzip的压缩格式,并且支持支持“校验和”以检查压缩文件的完整性。通常会使用CRC(循环冗余校验)算法进行校验。      遗憾的是,JDK...

阅读全文>>

标签: java文件压缩

评论(0) 浏览(3448)

Java加密解密下篇【包括MD5、BASE64、DES、RSA等算法】

2016-1-5 diaba 基础

原文:http://hello-nick-xu.iteye.com/blog/2103781 在上一篇博客中已经简要的介绍了MD5、BASE64、DES、RSA等算法在Java中的具体应用。现在可以考虑对这些代码封装成一个工具类EncryptUtil,然后再补充一下Commons Codec对BASE64的扩展支持!   <一>. EncryptUtil工具类:  1. 使用commons-logging记录异常日志。  2. 提取常量字段、公共字段。  3...

阅读全文>>

标签: 加密 解密

评论(0) 浏览(3150)

Java加密解密上篇【包括MD5、BASE64、DES、RSA等算法】

2016-1-5 diaba 基础

原文 http://hello-nick-xu.iteye.com/blog/2103775  搞Java的攻城狮应该比较欣喜若狂的,不仅Sun公司的JDK提供了庞大的类库,而且还有众多的开源组织和个人不断地丰富着Java的生态系统。没错的,诸如MD5、BASE64、DES、RSA等经典加密解密算法,JDK都有提供专门的API来封装相关操作。程序猿只需要了解算法的思想,以及学习如何使用API即可。当然,针对BASE64算法,JDK仅仅提供了非常标准的实现,在某些场景下无法满足应用需求。在最后一部分,将学习Apache提供的Commons C...

阅读全文>>

标签: 加密 解密

评论(0) 浏览(2833)

MySQL 数据库引擎

2016-1-4 diaba Mysql

    MySQL有以下几种引擎:ISAM、MyISAM、HEAP、InnoDB和Berkley(BDB)。     注意:不同的版本支持的引擎是有差异的。当然,也能使用MySQL++来创建自己的数据库引擎,具体操作可以参照MySQL++ API帮助来实现。     下面逐一叙述这5种引擎各自的特性:     ISAM     ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被...

阅读全文>>

标签: mysql 数据库引擎

评论(0) 浏览(2599)

2016年

2016-1-2 diaba 随笔记录

2016年开始,希望一切安好!

阅读全文>>

标签: 2016

评论(0) 浏览(2596)

Powered by emlog 京ICP备15045175号-1 Copyright © 2022