分类: 数据库 |
分类: 数据库 |
顺序和随机怎么比?
一般来说,顺序访问用吞吐量(Throughput)做度量指标,而随机访问用每秒执行的请求数(IOPS)做度量指标,按说是没啥可比性的。但是如果没有可比性,我在实际编程的时候应该怎么选?难道因为没得比就随便选了?这显然不可能,因此还是要比的。但是怎么比?
以一个数据库系统来说,索引用B树或者LSM-tree
分类: linux进程线程控制 |
(1)线程的创建、撤销和切换等,都需要内核直接实现,即内核了解每一个作为可调度实体的线程。
(2)这些线程可以在全系统内进行资源的竞争。
(3)内核空间内为每一个内核支持线程设置了一个线程控制块(TCB),内核根据该控制块,感知线程的存在,并进行控制。
标签:
股票 |
分类: 网络及socket |
标签:
it |
分类: 数据库 |
分类: 网络及socket |
http://www.xianren.org/uploads/2012/05/zhuabao.jpg
从图3-14可以看到ACK=7743,len=0;而4832的seq=9887,故中间有数据包丢失,所以211.144.69.242(设定为A)向10.10.80.54(设定为B)发送TCP Previous segment lost,说明数据丢失。4843行显示B向A发送数据包,告诉A包丢失之前(即4841)的ACK信息。图3-15又出现了数据包丢失。(图3-16)4852行则显示TCP通信的状态TCP Fast Retransmission,表示快速重传。
标签:
it |
分类: 网络及socket |
EINTR:
阻塞的操作被取消阻塞的调用打断。如设置了发送接收超时,就会遇到这种错误。
只能针对阻塞模式的socket。读,写阻塞的socket时,-1返回,错误号为INTR。另外,如果出现EINTR即errno为4,错误描述
Interrupted system
call,操作也应该继续。如果recv的返回值为0,那表明连接已经断开,接收操作也应该结束。
ETIMEOUT:
1、操作超时。一般设置了发送接收超时,遇到网络繁忙的情况,就会遇到这种错误。
2、服务器做了读数据做了超时限制,读时发生了超时。
3、错误被描述为“connect time out”,即“连接超时”,这种情况一般发生在服务器主机崩溃。此时客户 TCP
将在一定时间内(依具体实现)持续重发数据分节,试图从服务 TCP 获得一个 ACK
分节。当最终放弃尝试后(此时服务器未重新启动),内核将会向客户进程返回 ETIMEDOUT
错误。如果某个中间路由器判定该服务器主机已经不可达,则一般会响应“destination
unreachable”-“目的地不可达”的ICMP消息,相应的客户进程返回的错误是 EHOSTUNREACH
或ENETUNREACH。当服务器重新启动后,由于 TCP 状态丢失,之前所有的连接
标签:
it |
分类: C基础 |
http://blog.csdn.net/rstevens/article/details/3839877
数组
概念
到目前为止我们已经介绍了两类有序集合:GSList 和
GList。它们非常相似,因为都依赖于指针来从一个元素链接到下一个条目,或者,在 GList
中,链接到前一个条目。不过,有另外一类不使用链接的有序集合;它的功能与 C 数组多少有些类似。
它叫做 GArray,提供一个具备索引的单一类型的有序集合,能够为了容纳新条目而增加大小。
相对于链表,数组有什么优势?一方面,索引访问。也就是说,如果想获得数组中的第十五个元素,只需要调用一个能够在常数时间内获取它的函数;不需要手工地遍历到那个位置,那将是一个
O(n) 操作。数组知道自己的大小,所以查询其大小是一个 O(1) 操作而不是 O(n) 操作。
基本操作
这里是向数组添加和删除数据的一些主要方法:
//ex-garray-1.c
#include
int main(int argc, char** argv) {
标签:
it |
分类: 数据库 |
标签:
it |
分类: 数据结构及算法 |
在算法设计中经常需要通过递归方程估计算法的时间复杂度T(n),本文针对形如T(n)=aT(n/b)+f(n)的递归方程进行讨论,以期望找出通用的递归方程的求解方式。