分布式系统中sequence num的生成

标签: Linux开发 | 发表时间:2010-07-06 11:36 | 作者:方刚 hikerlive
出处:http://rdc.taobao.com/blog/cs

 当前有很多分布式系统都采用了不同方法来生成squence num,其中UUID是比较费力气和费空间的方法.在分配squence num时候,其实为了达到数据的分布和均衡效果,是应该把squence num分配给client。现在介绍两种其他生成squence num的方法:

1、通过config server(这个是单独的管理元数据的服务器,不同系统叫法不同,有的叫master  server,有的叫root server)来协调生成。

    首先该需要生成的squence num的字段需要注册到config server ,然后client需要使用该字段时候,进行insert操作,需要去向config server 去申请,每次申请一定的步长(比如申请1-100)。当client用完了这个步长,就需要再去申请。

   这个方法优点是统一管理,比较简单,一般不会失败。但缺点是,当client把一个步长用完后,去申请新的步长,config server不能down,不适合在正常运转中,可以没有config server,系统继续良好运转的条件。

2、通过data server自己的管理

    就是在squence num也像表里一个字段,client抢占的来更新,就是说比如有三个data server ,可以把1-100定义好分配给S1, 101-200分配给S2,201-300分配给S3,然后多个client比如去抢占S1,就把1-100分配给其中一台机器,其他的就是失败的,下次再来向S1申请,就是申请301-400给client.

    这样的方法优点是可以当作普通的表的字段来处理,但缺点是扩展难,需要解决单点问题

相关 [分布 系统 sequence] 推荐:

分布式系统中sequence num的生成

- hikerlive - 淘宝核心系统团队博客
 当前有很多分布式系统都采用了不同方法来生成squence num,其中UUID是比较费力气和费空间的方法.在分配squence num时候,其实为了达到数据的分布和均衡效果,是应该把squence num分配给client. 现在介绍两种其他生成squence num的方法:. 1、通过config server(这个是单独的管理元数据的服务器,不同系统叫法不同,有的叫master  server,有的叫root server)来协调生成.

12c 使用sequence作为列默认值

- - 惜分飞
官方文档创建表语句部分说明. 在12c中,表支持默认列为sequence值,而且不用使用传统的触发器来实现该功能. 12c创建表使用默认sequence测试过程. SQL> create table t_xifenfei 2 ( 3 id number GENERATED ALWAYS as identity ( 4 start with 1 5 increment by 1 6 ), 7 name varchar2(200) 8 ); Table created.

RAC环境下的sequence详解(原创)

- - ITeye博客
在RAC环境中,序列的Cache问题可能会对性能有着决定性的影响,缺省的序列Cache值为20,这对RAC环境远远不够. 如果存在序列号使用的竞争,就可能在数据库中看到明显的队列等待:. 在RAC情况下,可以将使用频繁的序列Cache值增加到10000,或者更高到50000,这些值在客户的环境中都有采用.

HTML字符实体(Character Entities),转义字符串(Escape Sequence) 为什么要用转义字符串?

- - CSDN博客推荐文章
HTML字符实体(Character Entities),转义字符串(Escape Sequence). HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用. 这些符号是不显示在我们最终看到的网页里的,那如果我们希望在网页中显示这些符号,该怎么办呢. 这就要说到HTML转义字符串(Escape Sequence)了.

分布式缓存系统 Xixibase

- Le - 开源中国社区最新软件
Xixibase是一个高性能,跨平台的分布式缓存系统. Xixibase server 采用 C++ 实现,底层网络库采用的是Boost Asio. Xixibase 主要特点: 1. 实现'Local Cache'功能, 当客户端打开'Local Cache'选项, 客户端可以将数据同时存储在Server 端和本地,并且保证本地数据和Server 端的数据的一致性.

分布式检索系统 ElasticSearch

- - 丕子
ElasticSearch最近发展不错,github等都用它,可以关注I下. ElasticSearch是分布式,REST风格,搜索和分析系统. 具有实时数据,实时分析,分布式,高可用性,多租户,全文搜索,面向文档,冲突管理,自由模式,rest风格API,每个操作的持久性,Apache 2的开源许可证,基于Apache Lucene之上的特点.

分布式消息系统:Kafka

- - 标点符
Kafka是分布式发布-订阅消息系统. 它最初由LinkedIn公司开发,之后成为Apache项目的一部分. Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务. 在大数据系统中,常常会碰到一个问题,整个大数据是由各个子系统组成,数据需要在各个子系统中高性能,低延迟的不停流转. 传统的企业消息系统并不是非常适合大规模的数据处理.

分布式系统介绍-PNUTS

- - CSDN博客推荐文章
PNUTS是Yahoo!的分布式数据库系统,支持地域上分布的大规模并发操作. 它根据主键的范围区间或者其哈希值的范围区间将表拆分为表单元(Tablet),多个表单元存储在一个服务器上. 一个表单元控制器根据服务器的负载情况,进行表单元的迁移和拆分. 每条记录的数据都没有固定的模式(采用JSON格式的文本).

Ganglia:分布式监控系统

- - CSDN博客移动开发推荐文章
1         环境安装配置. 1.1      依赖软件下载. Ganglia是伯克利开发的一个集群监控软件. 可以监视和显示集群中的节点的各种状态信息,比如如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈现. 而ganglia又依赖于一个web服务器用来显示集群状态,用rrdtool来存储数据和生成曲线图,需要xml解析因此需要expat,配置文件解析需要libconfuse.

kafka分布式消息系统

- - CSDN博客云计算推荐文章
Kafka[1]是linkedin用于日志处理的分布式消息队列,linkedin的日志数据容量大,但对可靠性要求不高,其日志数据主要包括用户行为(登录、浏览、点击、分享、喜欢)以及系统运行日志(CPU、内存、磁盘、网络、系统及进程状态). 当前很多的消息队列服务提供可靠交付保证,并默认是即时消费(不适合离线).