标签归档:访问局部性

明日股市五大猜想:贸易反击一触即发资金博弈强势股

  两市低开震荡调整,各大指数全线收跌。盘面来看,海南、页岩气、农业、次新等局部活跃,科技股普调回调。两市共49股涨停,局部性赚钱效应仍在;总成交4830亿,量能略有萎缩。

  中国驻美大使崔天凯2日在接受中国国际电视台采访时表示,中国决定对部分自美进口产品加征关税,是对美国232调查的回应。目前,美方还未公布301调查对华加征关税产品的清单。一旦公布,中方将坚决予以回击。

  此外,据美国海军官方网站宣布,“罗斯福”号航母为旗舰的第九航母打击大队目前已经离开新加坡,并于北京时间4月3日进入南海海域。而根据此前的消息,中国海军在南海举行大规模军事演习,有包括“辽宁”舰在内的40多艘舰艇参加。(问诊股票后期走势,可以到爱股票app中给高手留言)

  在上周出现缓和迹象之后,本周中美之间的贸易争端有继续升级的迹象,中国的反击措施一触即发!

  从今天市场表现看,昨晚批量特停妖股,但并未浇灭资金制造连板的热情,围绕强势股的疯狂投机,短期难以彻底扑灭。赚钱效应主要集中在强势人气品种,资金也会围绕其积极博弈。

  今天指数如约给出低开且幅度够大,看深成指日线天均线示弱后,今天低开幅度够大还刚好站在黄色8天均线之上没有破位,短线的形态是好的,大概率明天开盘只要还在黄色8天均线之上,则无论反包阳还是下影线都可短线做多,而小概率如果明天开盘在黄色8天均线之下,则无论冲高回落还是下探阴都要减仓为宜。

  内外利空打压下,股指展开全面性调整,大盘跳空低开震荡,但并未跌破3100整数关口,政策底的味道较为明显,明天是小长假前最后一天,预计大盘横盘震荡平稳过渡概率大。

  国家政策大力扶持,国产替代进程有望提速,这是支撑芯片走强的中长期逻辑。主力资金深度介入,后续仍将反复活跃,个股可关注深南电路(002916)、上海新阳(300236)、国科微(300672)等。

基于瞬时访问信息的动态页迁移机制

  页迁移是分布共享存储系统中动态开发数据局部性的一种优化策略,但体系结构相关性及时空开销限制了它在实际系统中的应用.本文立足于CC-NUMA系统和 具有单地址空间映象…

  你可以通过身份认证进行实名认证,认证成功后本次下载的费用将由您所在的图书馆支付

  百度学术集成海量学术资源,融合人工智能、深度学习、大数据分析等技术,为科研工作者提供全面快捷的学术服务。在这里我们保持学习的态度,不忘初心,砥砺前行。

性能优化简记四(C语言

  在现代处理器架构中,为了加快CPU的读取数据速度,CPU采用了多级缓存机制。CPU访问缓存花费的时间要远远小于访问内存的花费的时间。利用程序空间局部性的性质,简单解释就是,如果程序当前操作内存区域A,那么有很大的概率程序后面还会操作区域A。CPU把最近用过的数据暂存在缓存中,后面需要时,直接在缓存中读取即可。

  上面显示有三级cache,其中index0和index1都属于cache 1,一个是I-cache(指令缓存,存储指令),一个是D-cache(数据缓存,存储数据)。可以通过下面的命令查看等级:

  缓存是由cache line为最小单位组成的,每次从下级缓存中读取整个cache line。缓存行为2的整数幂个连续字节,一般为32-256个字节。最常见cache line的长度一般为64字节。在linux中可以通过下面的命令查看cache line的长度。

  对于热点区域,可以cache line对齐,来减少cache 读取的次数。如下面的图一,数据长度小于cache line,但是在空间上占用两块cache line。一个cache line的后半部分,一个cache line的前半部分,想要完整的读取该数据需要两次读取。

  通过内存调整,使数据只占用一行cache line,则只需要读取一次即可。

  如何移动数据使数据占用一个cache line呢?以cache line的长度为64为例,cache line从内存中读取时,是以64(也就是cache line的长度)的倍数的地址起,连续读取cache line长度,如首地址为0,64,128等,不会从1,2等地址开始读取64字节。 所以只要数据起始内存地址也是64的倍数,则占用的cache line数量保证最小。

  如何使内存首地址按给定大小对齐呢?一般有两个方法,第一个是使用函数aligned_alloc,类似malloc,可以使用man查看函数说明如下:

  属于C11的stdlib.h库。第一个参数是首地址对齐参数,第二个是申请内存大小,说明上要求是第一个参数大小的倍数,但在实际中不是倍数也能正常运行。aligned_alloc(128, 64)说明申请64字节的大小,首地址按照128的倍数对齐。

  如果对上面的方法不放心,还可以手动对齐。原理是先申请一块大的内存,然后手动保证首地址对齐。

authoruri:(52de2b85658a04d1) 杨学军) 国防科学技术大学计算机学院

  国防科学技术大学计算机学院《计算机学报》蒋艳凰,杨学军,易会战.卫星遥感图像并行几何校正算法研究[J]. 计算机学报.2004(07)蒋艳凰;杨学军;易会战.卫星遥感图像…

  国防科学技术大学计算机学院国防科技大学学报国防科技大学学报周海芳,刘光明,郑明玲,杨学军. 遥感图像自动配准的串行与并行策略研究[J].国防科技大学学报 2004.doi…

  国防科学技术大学计算机学院计算机工程与科学周海芳,陈虎,杨学军. 嵌入式系统软硬件联合设计方法研究[J].计算机工程与科学 2001.doi:10.3969/j.issn.1007-130X…

  国防科学技术大学计算机学院《软件学报》易会战,陈娟,杨学军. 基于语法树的实时动态电压调节低功耗算法[J].{H}软件学报,2005,(10):1726-1734.易会战,陈娟,杨学军…

  国防科学技术大学计算机学院《软件学报》易会战,杨学军. 有效的低功耗编译优化方法:部件使用局部化[J].软件学报 2004.有效的低功耗编译优化方法:部件使用局部化[J…

  国防科学技术大学计算机学院《计算机学报》所光,杨学军,SUO Guang,YANG Xue-Jun. 面向多线程多道程序的加权共享Cache划分[J].计算机学报 2008.doi:10.3321/j…

  国防科学技术大学计算机学院计算机工程与科学杨学军.并行计算六十年.计算机工程与科学.2012.1-10杨学军.并行计算六十年[J]. 计算机工程与科学.2012(08)杨学军…

  国防科学技术大学计算机学院计算机工程与科学胡湘华,杨学军. 传感网节点调度方法综述[J].计算机工程与科学,2008,(03):93-96.胡湘华;杨学军.传感网节点调度方法综述…

  国防科学技术大学计算机学院杨学军国防科学技术大学计算机学院计算机工程与科学计算机工程与科学周海芳,易会战,杨学军,ZHOU Hai-fang,YI Hui-zhan,YANG Xue-jun…

  国防科学技术大学计算机学院并行与分布处理国家重点实验室徐新海国防科学技术大学并行与分布处理国家重点实验室《计算机学报》林一松,杨学军,唐滔,王桂彬,徐新海…

  百度学术集成海量学术资源,融合人工智能、深度学习、大数据分析等技术,为科研工作者提供全面快捷的学术服务。在这里我们保持学习的态度,不忘初心,砥砺前行。

王建军在省委中心组理论务虚会上强调

  7月15日至16日,以全面深入学习和实践习新时代中国特色社会主义思想为主题,省委召开中心组理论务虚会,省委书记、省长王建军主持会议并讲话。他强调,要高举领袖思想伟大旗帜,进一步兴起学习和实践习新时代中国特色社会主义思想的新高潮,更加坚定自觉地用领袖思想武装头脑、指导实践、推动工作,全面落实“四个扎扎实实”重大要求,深入实施“五四战略”,奋力推进新青海建设不断开新局谱新篇。

  4月初,省委常委会就进一步全面深入学习贯彻习新时代中国特色社会主义思想和党的十九大精神做出安排部署,要求省级各班子、省级领导干部领题调研,为全省各级机关和党员干部作出表率。全省迅速掀起学习实践习新时代中国特色社会主义思想的“大学习、大调研”新高潮,并在实践中不断引向深入。会上,多杰热旦、刘宁、王予波、张光荣分别代表省委常委会、省人大常委会党组、省政府党组、省政协党组发言。14名省级领导同志围绕各自分管的工作作了重点发言。王建军一一作了点评。3个多月来,省级领导干部集中时间和精力,主要领导率先垂范,省级领导以上率下,着眼于重大问题研究,立足班子工作实际,结合各自分管工作,深入基层、深入群众带头开展调研,形成了36篇高质量的调研报告。

  王建军在总结讲话中指出,大家在研讨交流中初步形成6个方面的共识,是这次大学习大调研取得的理论和实践成果,要谋以为用,研以致用。对青海发展的指导思想有了共识。必须高举习新时代中国特色社会主义思想伟大旗帜,“8个明确”和“14个坚持”是领袖思想的精神实质,也是青海发展的指导思想。我们要进一步增强“四个意识”,坚定“四个自信”,坚决维护习总书记的核心地位,坚决维护党中央权威和集中统一领导,自觉在思想上政治上行动上同以习同志为核心的党中央保持高度一致。高举领袖思想这面旗帜,我们就能团结带领全省各族群众向着决胜全面小康、实现中华民族伟大复兴的中国梦奋勇前进。对青海发展的阶段性特征有了共识。青海处在社会主义初级阶段的较低层次,发展不足、不充分仍然是青海的主要矛盾,经济和生态及社会之间、城乡区域之间、供给和需求之间不平衡,经济发展、人才支撑、创新驱动、市场发育、投资效益、动能转换等不充分。这既是基本省情,也是我们想问题、办事情、做决策的基点。对青海发展的战略有了共识。“五四战略”是党的十九大精神在青海落地生根的切入点,是党中央、习总书记和历届省委对青海工作要求定位与时俱进的再深化,要再细化、再实化、深入实施,力争结出实践的硕果。对青海发展的路径有了共识。就是“一优两高”,即在坚持生态保护优先的前提下,实现高质量发展、创造高品质生活。这是习总书记出的题,我们要答好卷。对青海发展的布局有了共识。要站在“五位一体”总体布局和“四个全面”战略布局的高度,以全新的视野深化对执政规律、社会主义建设规律、人类社会发展规律的认识,聚精会神来谋划事关青海发展的方向、目标、动力、保障、支撑等重大问题。对青海发展的保障有了共识。要不断推进新时代全面从严治党向纵深发展。“四个伟大”中,起决定性作用的是党的建设新的伟大工程。新时代党的组织工作路线,把组织体系建设作为重中之重。我们要坚持组织路线为政治路线服务,全面贯彻新时代新担当新作为的要求,选好干部、配好班子、用好人才,培养好青年才俊,为建设新青海提供坚强保证。

  王建军指出,要把这次丰硕的调研成果转化为省委的科学决策,转化为实践成果和发展成果。涉及建设性的调研成果要进一步梳理研究,更好推进地方战略向融入国家战略转变;涉及全局性的调研成果要分轻重缓急,推动工作落实;涉及局部性的调研成果要形成问题清单、责任清单和任务分解表,抓好跟踪落实。

  两天来,与会同志读原著、学原文、悟原理,认真学习了党的十九大报告、《习谈治国理政》第二卷、纪实文学《梁家河》。大家在研讨交流中一致认为,通过调查研究和学习研讨,深化了认识,提高了站位,接受了教育,碰撞了思想,凝聚了智慧,增强了信心。大家表示,要切实把习新时代中国特色社会主义思想学深悟透、融会贯通、真信笃行,扎实做好学习调研成果的转化工作,以新时代新担当新作为推动新青海建设取得新成就。

  省委常委,省政协主席,省人大常委会副主任、省政府副省长、省政协党员副主席,省法院院长、省检察院检察长出席会议。(罗藏)

随机IOPS全面超越腾讯云CSG存储网关高性能缓存技术详解

  CSG存储网关是基于腾讯云高性能、高可靠性的对象存储系统COS对外提供iSCSI、NFS和CIFS/SMB访问协议。作为一种混合云方案, 帮助用户不用修改本地应用就可以把数据上传到COS。网关可以部署在用户IDC也可以部署在腾讯云上,产品形态如下所示。

  网关和COS之间需要走外网来通讯,外网网络存在延时高、抖动和丢包等问题,而且还会占用客户大量带宽。

  实际场景下,我们发现用户经常访问的数据只是一小部分热点数据,存在局部性特点,所以如果能在网关上加一层缓存且缓存命中率足够高的话,理论上网关就可以达到接近本地磁盘的读性能,也可以减少对带宽占用。

  缓存的大小受容量的限制只能保存一部分热点数据, 需要根据场景选择合适的缓存算法。评价缓存系统好坏一般通过命中率和延时两个指标,缓存算法一般都是在两者间权衡。影响命中率的关键就是缓存替换算法,而延时主要跟并发锁设计有关。一般缓存系统采用一把大的全局锁,对于CSG采用本地磁盘作为存储介质的系统,普通的SATA盘延时差不多10ms左右,如果采用全局锁最多只有100qps/s, 所以需要对锁进行优化。

  业界普遍的做法是采用缓存替换算法是LRU,例如Linux内核page cache、 memcached等。典型的实现方式是hashtable + 双链 + 全局锁的方式,但是这种实现存在两大问题:

  牺牲LRU特性,即减少节点移动到head的次数, 从而降低全局锁的竞争,但是可能会造成热点数据被淘汰

  每个子链表一把全局锁,maintainer 线程根上述比例维持链表长度时要加全局锁

  节点访问时只需要加节点锁同时标记为active 并不移动解决了锁冲突问题,而且分三个子链表配合制定的访问策略解决了局部性差的场景。但是只是由maintainer 线程根据 active 表示来判断是否移动到 head, 过度的牺牲LRU特性会造成热点数据被淘汰导致命中率低。

  也是采用分两个子链表解决了局部性差的场景, 但是依然采用的是全局锁没有对锁做优化。

  memecached 和page cache的实现针对局部性差的场景都是采用拆分链表的方式。针对全局锁的问题memecached 中虽然采用了节点锁,但是过度的牺牲LRU特性会造成缓存命中率低。

  CSG在实现的参考了这两个方案的优缺点,希望能够在并发性能的和缓存的命中率之间到达平衡, 具体实现如下:

  hashtable每个bucket一把锁保护节点和索引,一把全局锁保护LRU链表

  链表由midpoint指针分为hot 和cold两个子链表,默认的节点数比例是 2:1

  CSG也是通过midpoint把LRU链表划分为hot 和cold两个子链表来解决局部性差场景。锁的优化采用的是段锁+全局锁,对节点的访问是先加段锁访问数据,移动节点时才加全局锁,把全局锁的临界区控制到了最小范围。这样即保证了LRU特性提升了缓存命中率而且锁冲突也不严重, 实际测试4线程加全局锁修改链表可以达到50w+/s的并发满足了需求。

  如上图所示我们实现的段锁hashtable是对每一个bucket一把锁,对hash到同一个bucekt的key加同一锁,多线程并发锁冲突小并发高。hash冲突时采用的链式冲突处理, 当load_factor 1.0时会自动进行resize,保证key和 bucket锁得比例小于1:1。

  对比发现即使单线线程下是unordered_map的两倍以上, key越多锁冲突越少并发性能也越好。

  数据对比在局部性比较好的场景随机范围80G,CSG的延时比国外知名云商低10%左右。局部性比较差的场景随机范围500G, CSG 读随机IOPS是竞品3倍。

巢湖因高温现局部性蓝藻水华 日打捞约2万吨

  2018年8月5日,合肥,工人驾驶打捞蓝藻船,采用水上移动式藻水分离磁捕技术清除蓝藻。受连日高温影响,巢湖出现局部性水华。 7月29日,湖心区和西北岸出现局部性蓝藻水华,水华面积约121.38平方千米,占巢湖水域面积的15.9%。

  { info: { setname: 巢湖因高温现局部性蓝藻水华 日打捞约2万吨, imgsum: 4, lmodify: 2018-08-06 08:16:06, prevue: 2018年8月5日,合肥,工人驾驶打捞蓝藻船,采用水上移动式藻水分离磁捕技术清除蓝藻。受连日高温影响,巢湖出现局部性水华。 7月29日,湖心区和西北岸出现局部性蓝藻水华,水华面积约121.38平方千米,占巢湖水域面积的15.9%。, channelid: , reporter: , source: 视觉中国, dutyeditor: 何雨芳_NN5632, prev: { setname: , simg: , seturl: }, next: { setname: 受台风\云雀\外围影响 江西九江街道成河, simg: 年8月5日,合肥,工人们在合肥巢湖派河口湖面打捞蓝藻。工人配备专业机械化打捞设备,采用水上移动式藻水分离磁捕技术,提高打捞处理效率。记者8月1日从省环保厅获悉,新一期巢湖蓝藻应急防控遥感监测结果显示,受连日高温影响,巢湖出现局部性水华。 7月29日,湖心区和西北岸出现局部性蓝藻水华,水华面积约121.38平方千米,占巢湖水域面积的15.9%。, newsurl: # }, { id: DOGTODCB00AN0001NOS, img: 监测结果显示,7月28日,湖心区和北岸出现蓝藻水华,水华面积约61.88平方千米,占巢湖水域面积的8.1%,水华规模为“零星性水华”。 7月29日,湖心区和西北岸出现蓝藻水华,水华面积约121.38平方千米,占巢湖水域面积的15.9%,水华规模为“局部性水华”。, newsurl: # }, { id: DOGTODCC00AN0001NOS, img: 根据藻情发展,合肥市及时启动相应级别的蓝藻水华防控预警,做好蓝藻水华监测、应急打捞、物资保障等工作。环湖各县(市)区组建蓝藻打捞队伍,配备专业机械化打捞设备,部分县区采用水上移动式藻水分离磁捕技术,进一步提高打捞处理效率。, newsurl: # }, { id: DOGTODCD00AN0001NOS, img: 目前,巢湖岸边,已有塘西河、派河口、长临河、中庙四座藻水分离站实施机械化蓝藻打捞。藻水分离项目负责人表示,当前各藻水分离站正开足马力运行,日平均打捞藻浆合计2万吨,处理后的藻泥运往污泥处置中心。, newsurl: # } ] }

Linux之虚拟服务器LVS搭建

  原理:负载均衡器和RS都使用同一个IP对外服务。但只有DR对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致)并将请求分发给这台RS。这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端。由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域,也可以简单的理解为在同一台交换机上。

  原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址即可。期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器。

  缺点:扩展性差。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器处,导致负载均衡器变慢以至于整个链路变慢。

  原理:隧道模式就是,把客户端发来的数据包,封装一个新的IP头标记(仅目的IP)发给RS,RS收到后,先把数据包的头解开,还原数据包,处理后直接返回给客户端,不需要再经过负载均衡器。注意,由于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持IPTUNNEL协议。因此,在RS的内核中,必须编译支持IPTUNNEL这个选项。

  优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。

  缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持“IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

  调度器通过“轮循”调度算法将外部请求按顺序轮流分配到集群中的真实机器上,它均等的对待每一台服务器,而不管服务器实际的连接数和系统负载。

  调度器通过“加权轮循”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器能处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态的调整其权值。

  “目标地址散列”调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

  “源地址散列”调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找到对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

  调度器通过“最少链接”调度算法动态的将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用“最少连接”调度算法可以较好的均衡负载。

  在集群系统中的服务器性能差异较大的情况下,调度器采用“加权最少连接”调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态的调整其权值。

  无需排队。如果有台Real Server的连接数等于0就直接分配过去,不需要再进行SED运算。

  “基于局部性的最少连接”调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少连接”的原则选出一个可用的服务器,将请求发送到该服务器。

  “带复制的基于局部性最少连接”调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最少连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发到该服务器;若服务器超载,则按“最少连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。

  说明:由于缺乏实际requests,无法模拟其它动态调度算法的效果,暂时记录到这里。

是什么影响了数据库索引选型?

  主存储器(简称主存或内存)包括存取体、各种逻辑部件及控制电路等。存储体由许多存储单元组成,每个存储单元又包含若干个存储元件,每个存储元件能寄存一位二进制代码“0”或“1”。这样,一个存储单元可以存储一串二进制代码,这串二进制代码称为

  MAR(Memory Address Register)是存储器地址寄存器,用来存放欲访问的存储单元的地址,其位数对应存储单元的个数(若MAR为10位,则有210=1024个存储单元,记为1k)。

  MDR(Memory Data Register)是存储器数据寄存器,用于存放从存储体某单元取出的代码或准备往某存储单元存入的代码,其位数与存储字长相等。

  如果把存储体看做是一栋大楼,那么每个存储单元可以看成这栋大楼里的每个房间,每个存储元可以看做房间里的一张床位,床位有人相当于“1”,无人相当于“0”。每个房间都需要一个房间号,便于我们找到房间的位置。同样,可以赋予每个存储单元一个编号,称为存储单元的地址号。

  主存的工作方式就是按照存储单元的地址号来实现对存储字各位的存(写入)、取(读出)。

  现代主存的结构和存取原理比较复杂,这里抛却具体差别,抽象出一个十分简单的存取模型来说明主存的工作原理。

  当系统需要读取主存时,首先由CPU将该字的地址送到MAR,经地址总线送至主存,然后发出读命令。主存接到读命令后,根据地址定位到指定存储单元,然后将此存储单元数据放到数据总线上,供其它部件读取。

  写主存的过程类似,若要向主存存入一个信息字时,首先CPU将该字要存入的主存单元的地址经MAR送到地址总线,并将信息字送入MDR,然后向主存发出写命令,主存接到写命令后,便将数据总线上的信息写入到对应地址总线指出的主存单元中。

  画外音:实际上主存存取的过程并没有这么简单,还需要经过经过地址译码(逻辑地址—>

  物理地址)等过程。

  我们知道,索引本身也很大,不可能全部存储在内存中(根节点常驻内存),一般以文件形式存储在磁盘上。那么问题来了,索引检索需要磁盘I/O操作。与内存不同,磁盘I/O存在机械运动耗费,相对于内存存取,I/O存取的消耗要高几个数量级。

  一个磁盘由大小相同且同轴的圆形盘片组成,磁盘可以转动(各个磁盘必须同步转动)。在磁盘的一侧有磁头支架,磁头支架固定了一组磁头,每个磁头负责存取一个磁盘的内容。磁头不能转动,但是可以沿磁盘半径方向运动(实际是斜切向运动),每个磁头同一时刻也必须是同轴的,即从正上方向下看,所有磁头任何时候都是重叠的。

  盘片被划分成一系列同心环,圆心是盘片中心,每个同心环叫做一个磁道,所有半径相同的磁道组成一个柱面。磁道被沿半径线划分成一个个小的段,每个段叫做一个扇区,每个扇区是磁盘的最小存储单元。

  当需要从磁盘读取数据时,系统会将数据逻辑地址传给磁盘,磁盘的控制电路按照寻址逻辑将逻辑地址翻译成物理地址,即确定要读的数据在哪个磁道,哪个扇区。

  由于存储介质的特性,磁盘本身存取就比主存慢很多,再加上机械运动耗费,磁盘的存取速度往往是主存的几百万分之一,因此为了提高效率,要尽量减少磁盘I/O。为了达到这个目的,磁盘往往不是严格按需读取,而是每次都会预读,即使只需要一个字节,磁盘也会从这个位置开始,顺序向后读取一定长度的数据放入内存。这样做的理论依据是计算机科学中著名的局部性原理:

  局部性原理: CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。

  时间局部性(Temporal Locality):如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。

  空间局部性(Spatial Locality):在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。

  由于磁盘顺序读取的效率很高(不需要寻道时间,只需很少的旋转时间),因此对于具有局部性的程序来说,预读可以提高I/O效率。

  预读的长度一般为页(page)的整倍数。页是计算机管理存储器的逻辑块,硬件及操作系统往往将主存和磁盘存储区分割为连续的大小相等的块,每个存储块称为一页(在许多操作系统中,页的大小通常为4k),主存和磁盘以页为单位交换数据。当程序要读取的数据不在主存中时,会触发一个缺页异常,此时系统会向磁盘发出读盘信号,磁盘会找到数据的起始位置并向后连续读取一页或几页载入内存中,然后异常返回,程序继续运行。

  之前提到过,SQL优化的一个重要原则是减少磁盘I/O次数,磁盘I/O次数也是评价索引结构的优劣的指标之一。

  根据B-Tree的定义,可知检索一次最多需要访问h(B-Tree的高度)个节点。数据库系统的设计者巧妙利用了磁盘预读原理,将一个节点的大小设为等于一个页,这样每个节点只需要一次I/O就可以完全载入。但是逻辑上存储在一个页里并不代表物理上也存储在一个页里,为了达到这个目的,每次新建节点时,直接申请一个页的空间,这样就保证一个节点物理上也存储在一个页里,加之计算机存储分配都是按页对齐的,就实现了一个节点只需一次I/O。

  B-Tree中一次检索最多需要h-1次I/O,因为根节点会常驻内存。复杂度为O(logdN)。一般实际应用中,出度d是非常大的数字,通常超过100,因此h非常小(通常不超过3)。所以B-Tree作为索引结构效率是非常高的。这也是为什么数据库不选用红黑树作为索引(数据结构)的原因,一是因为红黑树的高度h要大的多;二是红黑树节点在物理上可能是单独存储的,无法利用局部性原理。复杂度为O(h),效率明显比B-Tree差的多。

  上B+Tree更适合索引。究其原因,一是因为B+Tree内节点去掉了data域,因此可以拥有更大的出度,拥有更好的性能;二是因为所有叶子节点形成有序链表,便于范围查询;所有的查找最终都会到叶子节点,从而保证了查询性能的稳定。

中国资金“扭曲”亚洲房地产?学者:作用只是局部性的

  【环球时报报道 记者 赵觉珵 本报驻新加坡特约记者 辛斌】在低利率大环境下,商业房地产去年依然是国际投资者最为青睐的领域之一。专注于资本市场商业房地产的独立调查公司“真实资本分析”(RCA)12日发布的报告显示,2017年亚太区商业房地产的成交额达到破纪录的1575亿美元,主要受到香港、新加坡及韩国等地活跃的交易所带动。

  路透社援引RCA的报告称,香港商业房地产市场去年表现突出,交易量比去年同期增长39%,达209亿美元,连续第二年创新高。RCA亚太区分析高级总监佩特拉布拉兹科娃称,土地稀缺、本地买家资金充裕以及来自中国内地的资金涌入,将香港的商业房地产成交量和价格均推向纪录高位。RCA的数据显示,新加坡商业房地产购买量去年也创出10年新高,同比增长约50%,达到150亿美元。

  对于亚太房地产的火热,一些分析人士将主要原因归于中国内地资本的涌入。《日本经济新闻》12日更是以“亚洲房地产被中国资金扭曲”为题报道称,除了城市地区人口流入和基础设施建设等因素,中国资金对房地产行情过热起到推波助澜的作用,甚至导致马来西亚吉隆坡等地出现空置率上升等供应过剩的“扭曲现象”。对此,中国社科院城市与竞争力研究中心研究员邹琳华12日接受《环球时报》记者采访时表示,中国内地与亚洲其他国家和地区房地产市场确实都显示出上涨趋势,但并不能证明这是中国资本的输出效应。“在中国香港等热点地区、热点城市,中国内地买家确实对房价有一定推动作用,但只是局部性的”。

  事实上,对于中国企业在海外进行房地产投资,中国监管部门也在进行限制。11日,中国国家发改委发布《境外投资敏感行业目录(2018年版)》,房地产、酒店等被明确列入敏感行业。美国《华尔街日报》称,这是中国首次以目录形式加强对境外投资行业的监管。邹琳华表示,中国政府出台此项目录,将对中国企业海外的房地产项目投资有较强的限制作用。▲