最新 | 最热门 | 最高评价

+0  SSDB采用了多线程模型

Tag: C语言编程 | SSDB
ideawu 发于 2013年07月02日 19:30 | 点击: 2647 | 展开摘要
自从SSDB 1.5.2版本起, SSDB默认使用了多线程, 将所有写操作放在一个单独的线程中, 这样可以避免写操作阻塞读操作.

在之前的版本, SSDB的网络模块采用基于epoll IO多路复用的单线程模型, 这种模型非常快速. 不过, 由于LevelDB的特性, 当写操作过快的时候, 合并(Compaction)线程无法及时地完成所有合并, 导致Level-0文件越积越多, 最终强制阻塞所有写操作.

SSDB新版本采用了多线程模型, 可以避免写操作阻塞读操作. 但是,

查看全文: http://www.udpwork.com/item/10136.html

+0  SSDB 增加了 Compaction 限速功能

Tag: C语言编程 | SSDB | LevelDB
ideawu 发于 2013年06月15日 14:14 | 点击: 2210 | 展开摘要
最新的 SSDB 1.5.0 增加了 Compaction(合并) 限速功能, 避免 LevelDB 在合并的过程中写满磁盘, 导致 SSDB 无法快速的响应请求的情况. 遇到类似问题的 SSDB 用户, 建议你立即升级. 如果你升级之后仍然使用原有的 ssdb.conf 配置文件, 请在 leveldb 一节配置中加入下面一行:

compaction_speed: 100

注意缩进. 这表示限速为 100MB/s, 你可以根据你的磁盘性能调整这个数值.

事实上, 所

查看全文: http://www.udpwork.com/item/10019.html

+0  不同SSD盘组合搜索引擎单机性能测试

Tag: 性能优化 | 搜索引擎 | SSD | 引擎性能 | 软RAID
钓雪 发于 2013年06月09日 09:39 | 点击: 2295 | 展开摘要
一、测试机器

Linux huawei_C5.co3 2.6.32-220.23.2.ali927.el5.x86_64 #1 SMP Mon Jan 28 14:57:06 CST 2013 x86_64 x86_64 x86_64 GNU/Linux

MemTotal:       49520300kB

Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz  * 24

注:测试相关机型:

A7机型:CPU 6核 * 4,主频1.9GH

查看全文: http://www.udpwork.com/item/9990.html

+0  LevelDB 写操作出现停顿的问题分析

Tag: C语言编程 | SSDB | LevelDB
ideawu 发于 2013年05月06日 13:51 | 点击: 7355 | 展开摘要
我写了一个简单的循环程序往 LevelDB 写数据进行测试, 发现偶尔会出现停顿的情况, 单个写操作可能会耗时超过1秒. 这种慢请求是非常致命的, 因为在高并发的 Web 应用中, 1秒钟影响到的用户是成百上千个.

经过分析, 发现 LevelDB 实现了写限速机制, 当 Level-0 的 sst 文件数超过一定数量时开始限速, 再超过一定数量时, 直接主动的阻塞写操作, 直到 Compaction 线程减少了 Level-0 的 sst 文件数量减少到阀值以下.

这几

查看全文: http://www.udpwork.com/item/9776.html

+0  SSDB 双主(多主)同步模式现在 beta

Tag: C语言编程 | SSDB | KeyValue | LevelDB
ideawu 发于 2013年05月02日 11:09 | 点击: 2344 | 展开摘要
经过半个用的开发和测试, SSDB 发布了新版本 1.4.0. 这个版本最大的改进是重新设计了主从同步机制, 数据同步更安全, 另外还支持双主(多主)同步模式. 目前, 单主模式的主从同步功能是稳定的, 而双主(多主)模式从 experiment 升级到 beta 阶段.

此次的更新包括:

主从同步机制重新设计, 双主(多主)模式进入 beta 阶段

info 命令返回更多的统计信息, 包括每个命令的请求次数和消耗时间和等待时间

升级为 LevelDB 1.9.0

查看全文: http://www.udpwork.com/item/9753.html

+0  SSDB 使用 jemalloc

Tag: C语言编程 | Linux | SSDB | LevelDB
ideawu 发于 2013年04月23日 13:11 | 点击: 2535 | 展开摘要
SSDB 目前已经进展到 1.3.x 版本, 在使用过程中, 程序一直非常稳定, 内存占用也很合理, 即使在一个40G数据在应用中, 内存占用也稳定在1G左右.

最近, SSDB 被应用到了一个极端的环境, 这是一个图片相关的应用, 给 SSDB 造成的压力就是:

单条数据较大. 一般的应用也就几K级别的单条数据, 但图片处理一般在1M级别

并发数较多, 达20K+

这给 SSDB 和操作系统都带来了明显的压力:

整个系统的磁盘 IO write 达 400MB/s

查看全文: http://www.udpwork.com/item/9705.html

+0  LevelDB 会丢数据吗?

Tag: C语言编程 | SSDB | LevelDB
ideawu 发于 2013年04月02日 20:30 | 点击: 2402 | 展开摘要
Google 公司开源的 LevelDB KV 存储引擎是一个非常不错的东西, 支持 zset 数据结构的 SSDB 存储服务器便是使用 LevelDB 作为存储引擎. SSDB 的目的是用来替代 Redis, 作为大数据量存储的服务器. 为什么要在 LevelDB 上面做封装呢? 因为传统的 KV 存储天生不适合存储集合数据, 但实际业务几乎都要求处理集合数据.

LevelDB 将数据写到磁盘上以保证持久化, 但一个重要的问题是, LevelDB 会丢数据吗? 如果程序意

查看全文: http://www.udpwork.com/item/9586.html

+0  ext4会对机械硬盘做trim吗

Tag: 操作系统 | ext4 | SSD
RobinDong 发于 2013年04月01日 15:56 | 点击: 2395 | 展开摘要
今天@子团来问ext4对trim支持相关的问题:trim的语义是将设备某一部分的内容全置为0,如果ext4下层是机械硬盘,ext4也会给它发trim,频繁的将硬盘上的数据置0吗?

我翻了一会儿rhel 2.6.32-279 kernel的代码,找到了jbd2完成时调用trim的地方:

static void release_blocks_on_commit(journal_t *journal, transaction_t *txn)
{

查看全文: http://www.udpwork.com/item/10049.html

+0  SSDB数据库的大规模应用

Tag: SSDB | KeyValue | LevelDB
ideawu 发于 2013年03月22日 11:26 | 点击: 2669 | 展开摘要
SSDB是一个开源的高性能数据库服务器, 使用Google LevelDB作为存储引擎, 支持T级别的数据, 同时支持类似Redis中的zset和hash等数据结构, 在同时需求高性能和大数据的条件下, 作为Redis的替代方案.

分布式

因为SSDB的最初目的是替代Redis, 所以SSDB会经常和Redis进行比较. 我们知道, Redis是经常的”主-从”架构, 虽然可以得到负载均衡以及数据跨地域备份的功能, 但无法实现高可用性. 考虑这种情

查看全文: http://www.udpwork.com/item/9507.html

+1  高性能并发网络服务器设计与实现

Tag: P2P/Network | SSDB | 高性能Web架构
ideawu 发于 2013年03月21日 19:56 | 点击: 3352 | 展开摘要
我在公司介绍的”高性能并发网络服务器设计与实现”PPT.

高性能并发网络服务器设计与实现 from ideawu

看不着的朋友可以从这里下载: http://vdisk.weibo.com/s/v59p3

Related posts:
SSDB数据库的大规模应用

使用 Ideawu.P2P.Core.AccountManager 登录服务中心

高性能并发Web服务器实现核心内幕

SSDB 现在已经支持 Java 语言了!

文件共享协议

查看全文: http://www.udpwork.com/item/9500.html

+0  SSDB存储服务器的最近进展

Tag: SSDB | LevelDB
ideawu 发于 2013年03月08日 16:10 | 点击: 1940 | 展开摘要
春节期间的半个多月, 因为我休假, 所以SSDB没有任何更新. 但是, 我们生产环境中的SSDB实例是一直在跑着的, 数据量每天都增加千万条. 服务器一直运行稳定, 不需要任何维护工作.

上周, 在经历一次机房网络故障之后, SSDB的主从同步出现了问题, 同步复制中断了. 在这次故障中, SSDB Master的心跳机制(noop包)检测到了网络故障, 然后关闭了socket. 但是, 由于之前并没有实现Slave的心跳机制, 所以Slave一直阻塞在了socket的re

查看全文: http://www.udpwork.com/item/9413.html

+0  网络协议设计思想与SSDB网络协议

Tag: IT技术和评论 | SSDB
ideawu 发于 2013年01月28日 13:33 | 点击: 2080 | 展开摘要
网络协议可以分为文本协议和二进制协议, 而对于基于报文的协议可分为定长报文协议和变长报文协议. 而现实业务中的网络协议基本都是基于报文的协议.

从应用层网络协议的设计发展来看, 二进制协议和定长报文协议极为罕见. 在变长报文协议中, 有两种实现方式: 结束标记和长度字段. 下面以最流行的 HTTP 来进行举例分析.

HTTP 是文本协议, 变长报文协议, 带长度字段的报文协议. HTTP 带有多个 Key-Value 对组成的首部, 用连续的两个 CRLF 分隔首部和报体

查看全文: http://www.udpwork.com/item/9175.html
|<<<2345678>>>| 一共8页, 91条记录