- 浏览: 2253277 次
- 性别:
- 来自: 北京
最新评论
-
yidongnan:
跟 spring boot 配合的例子可以使用这个库https ...
GRPC原理解析 -
kyo472083100:
写得很好,感谢楼主解释得很清晰
Mongodb中Mapreduce特性与原理 -
lanhz:
对于三个节点:1、2、3,如果2向1广播投给2(即2自己),1 ...
Zookeeper选举过程描述与状态迁移 -
Bll:
厉害了
GRPC原理解析 -
QING____:
xiatiandebaofengyu 写道有个问题:发布者在发 ...
Redis编程实践【pub/sub】
文章列表
一.对象查找
在对对象回收之前,需要首先查找出亟待回收的对象,在JVM中,采取"根检索"算法来查找"死亡"的对象;这个算法的基本思想是通过一系列名为"GC Roots"的对象作为起始点,从这些节点开始向下搜 ...
GFS论文整理(四)
- 博客分类:
- BigTable
Data Integrity(数据完整性):
每个chunkserver使用checksumming(校验和)来检测存储数据的损坏.GFS分布式环境往往有数百台机器数千个硬盘,磁盘故障是一个很普通的事情,这往往会导致在读取或者写入时数据的存坏或者丢失.我们能够从其他chunk replicas中恢复这些损坏的数据.但是如果通过跨chunkserver的方式去检测这些损坏的数据,是不现实的.此外,副本数据有些出入或许是正常的:GFS mutation的语义,
GFS论文整理(三)
- 博客分类:
- BigTable
Snapshot:
snapshot(快照)操作瞬间为文件或者目录树(即source)做一个copy,最小化对正在进行的变更操作的打断。我们的用户使用快照功能来快速创建数据集庞大的分支副本(经常是副本的复制,递归地),或者在尝试应用数据修改之前对当前状态设置checkpoint,这样简单地提交或者回滚。
像AFS,我们使用标准的copy-on-write技术来实现snapshot。当master收到snapshot请求后,它首先撤销需要被snapshot的文件中所有chunks上的所有的outstanding leases(??未交付的lease,大概意思可能是未被 ...
GFS论文整理(二)
- 博客分类:
- BigTable
Operation Log:
operation log记录了比较重要的metadata数据修改,它是GFS的核心。它不仅记录metadata的修改记录,也充当了定义并发操作逻辑时间线的角色。Files和chunks,以及它们的versions,都是唯一的,并且是通过它们创建时的logic times来确定的。
因为operation log很重要,我们必须可靠的存储它,在metadata修改持久化之前对客户端是不可见的,否则我们可能丢失整个文件系统或者最近的client操作即使chunkserver正常。因此,我们在多个remote机器上(相对
GFS论文整理(一)
- 博客分类:
- BigTable
摘要:
我们设计并实现了GFS:一个高扩展性,适用于数据密集型应用的分布式文件系统。运行在廉价的商用服务器上,它提供了容错能力,它能够在大量客户端请求时提供较好的整体性能。
当享用众多具有同样上述目的的分布式文件系统时,我们的设计驱动力来对应用的工作量和技术环境,无论是当前还是预期,也折射出与早期的文件系统的背离。这些引导我们重新检测传统选择或者探索一个不同的设计方式。
这种文件系统比较成功的满足了我们的存储需要,它作为一个数据的存储和处理平台被广泛的应用在google,作为研究和开发大数据集合数据。最大的分布式数据能够提供成千上万TB的数据存储,存储在无数个硬盘 ...
四、容错和诊断
4.1 高可靠性
4.1.1 快速恢复
不管如何终止服务,MASTER和数据块服务器都会在几秒钟内恢复状态和运行。实际上,我们不对正常终止和不正常终止进行区分, 服务器进程都会被切断而终止。客户机和其他的服务器会经历一个小小的中断,然后它们的特定请求超时,重新连接重启的服务器,重新请求。
4.1.2 数据块备份
如上文所讨论的,每个数据块都会被备份到放到不同机架上的不同服务器上。对不同的名字空间,用户可以设置不同的备份级别。在数据块服务器掉线或是数据被破坏时,MASTER会按照需要来复制数据块。
4
二、系统交互
(1)租约(lease)和修改顺序:
(2)数据流
我们的目标是充分利用每个机器的网络带宽,避免网络瓶颈和延迟.
为了有效的利用网络,我们将数据流和控制流分离。数据是以流水线的方式在 ...
Google文件系统GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。
一、设计概览
...
BigTable论文学习总结
- 博客分类:
- BigTable
一.bigtable是一个分布式存储系统,可以用来管理PB级别的结构化数据,且可以分布在大量的商业服务器上。
二.bigtable的目标是:广泛适用性,扩展性,高性能,高可用性。bigtable其类似一个数据库系统,和普通RDBMS数据库具有很多相同的策略,但是bigtable并不支持关联数据模型(bigtable是数据关系松散的),相反,它向客户端提供简单的/动态控制/模式自由的数据模型。可以通过row key和column name索引。客户端可以将任意字符串/字节数据存储与bigtable。Bigtable schema参数可以让客户端动态的控制数据是存储在memory中还是disk ...
JAVA序列化/反序列化与单例
- 博客分类:
- JAVA
单例设计类:
package com.test.singleton;
import java.io.IOException;
import java.io.ObjectStreamException;
import java.io.Serializable;
public class SingleTon implements Serializable{
/**
*
*/
private static final long serialVersionUID = 768457893059530646L;
priv ...
高效MYSQL性能优化--小结
- 博客分类:
- MYSQL
总结自<高效mysql性能优化>:
第一章:5分钟DBA
一.鉴定性能问题:
1) 查找慢SQL语句:
>show full processlist
可以得到当前mysql所有连接中正在运行的操作,此指令将会输出当前运行的所有sql列表以及其耗时信息:
id:42
User:***
Host:****
Command:QUERY
Time:3
Info:select * from table
2) 查询计划(QEP):
可以通过Explain语句查看SELECT语句执行的情况.
提示:Alter操作,将会阻塞当 ...
Mysql中varchar和text小记
- 博客分类:
- MYSQL
Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"n",则它的值就是"n"而 ...
java api中Semaphore(信号量),用于控制有限资源的并发访问。API也非常好理解,不过有几个需要注意的地方:
Semaphore是纯粹的应用级控制“锁”,使用简单的volitale变量作为信号量信息,通过acquire、release、reduce等显式的可以修改此信号量数字。
它并没有维护任何锁,也不是控制reentrant的,它不会维护信号和thread的关系。
Semaphore的初始值可以为0,甚至可以为负数。对于acquire调用(信号down),它只会比较现在信号值与0的大小关系,如果<=0那么将不能获得授权。
对于release(信号up),只是简 ...
前言:这是一次艰苦的旅行...
一.ExecutorService:
它也是一个接口,它扩展自Executor接口,Executor接口更像一个抽象的命令模式,仅有一个方法:execute(runnable);Executor接口简单,但是很重要,重要在这种设计的模式上。。
ExecutorService在Executor的基础上增加了“service”特性的方法:
shutdown()、shutdownNow():都是关闭当前service服务,释放Executor的所有资源(参见实现类);它所触发的动作就是取消队列中任务的执行。shutdown是一种“友好”的关闭,它将不 ...
Executors是一个工具类,提供了大量的静态方法,方便我们在线程池中使用。
static Callable<Object> callable(Runnable task):将runnable接口实例转换成Callable接口实例.
static ExecutorService newCacheThreadPool():创建一个“按需创建”的线程池,此前创建的线程可用时将重用它们。对于执行那些短期异步任务的程序而言,这些线程池通常可以提高程序的性能;在调用execute方法时(提交任务),如果此时没有线程可用,将会创建一个新的线程来执行此任务;终止并从缓存中移除那些已经 ...