存档

‘队列’ 分类的存档
页: 1 2 后页

关于新开源系统的进展说明

2009年11月13日

系统采用GOOGLE CODE提供下载服务。开源协议待定,会参考大家的投票结果。

http://code.google.com/p/sina-sqs/   分布式队列 (兼容 Amazon SQS)
http://code.google.com/p/sina-sdd/    分布式 key-vaule系统 (仿 Amazon Dynamo 设计实现)
http://code.google.com/p/sina-csf       通用服务器框架
协议确定后代码不日上传,敬请期待。

请投票

————————————————————————————

即将开源的系统你觉得采用何种协议

  • new BSD license (52.0%, 54 Votes)
  • Apache License (24.0%, 25 Votes)
  • GPLV3 (14.0%, 14 Votes)
  • GPLV2 (7.0%, 7 Votes)
  • 其他,请再评论上写上具体内容 (3.0%, 3 Votes)

Total Voters: 103

Loading ... Loading ...

wangqi 云计算, 分布式系统, 存储, 开发平台, 开源, 投票, 队列

系统开发部内部交流-MemcacheDB的扩展应用

2009年3月2日

本文通过整理系统开发部一次内部交流的资料,总结了一下SPACE产品开发初期形成的一些MemcacheDB的衍生应用。业务需求是千变万化的,我们需要灵活的运用这些基础设施,简单高效的达到我们的目标。

以下是PPT资料:

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

以下是针对 MemcacheDB-Queue的技术实现的一些文字简介:
memcachedb-queue 设计与实现

0,基于memcachedb的代码,memcachedb为单进程单线程程序,所以全局变量不须任何锁操作。

1,增加两个全局变量:head和tail,类型为unsigned long。
用于表示头节点和尾节点所对应的key值。

2,精简memcache协议,只支持add和get两个命令,add表示入队列,get表示出队列。
此时add和get的key参数和expire参数已经无实际意义,用途仅为协议兼容。

3,增加一个init_queue函数,用于初始化head和tail的值,默认从db中取得,如果没有,则都为0。

4,增加一个save_queue函数,并通过atexit注册,在程序退出时负责将head和tail的值保存到db中。

5,add的实现伪代码:
key=tail;
save_to_db(key,value);
tail++;

6,get的实现伪代码:
key=head;
get_from_db(key,&value);
del_db(key);
head++;

具体实现参见 memcachedb-queue.c
目前经过几天的测试,基本实现目标。
计划用于纸条箱的发纸条队列,还有其他的一些模型类似“生产者/消费者”的程序。

本次交流已经年代久远,其中很多观点和技术以现在的眼光来看,已经显得有些落伍,我目前正在筹划新的一版队列系统的设计与实现,队列是很有用的基础组件之一,值得深入的研究。完成之后,会在博客上与大家分享,敬请期待!

mengguang 存储, 系统, 队列

页: 1 2 后页
页: 1 2 后页