当前位置:文档之家› 网页搜索核心模块架构重构

网页搜索核心模块架构重构

网页搜索核心模块重构2014.6~至今

网页搜索部& 工程效率部

冯上马波

C 模块-位置Web 服务器

上游模块…

召回控制器

C

召回控制器Query 分析搜索模块

搜索模块搜索模块搜索模块摘要

模块C

?多产品支持

?网页搜索

?移动搜索

?知道/贴吧/文库

?开发密集

?每周上线10-20个功能

?最近1.5年有206人贡献过代码

内容简介

项目背景

阶段性成果

我们如何做设计层面、编码层面、工具层面

项目背景

模块接连出现上线回滚一个月6次代码复杂难以维护复杂度高

系统性错误难以排查内存、指针、core

项目阶段性成果

Query分析交互部分全部OO化

面向对象的设计,接口清晰,职责明确

搜索控制器交互状态机重新设计

逻辑清晰化,复杂度降低,内存下降,性能提高

单元测试覆盖率提升、代码复杂度下降类平均大小降低25%,平均圈复杂度下降10%

清除无用代码2.6W+ lines

我们如何做

指导思想小步快跑、演进式设计、SOLID原则实现细节设计层面、编码层面、工具层面

设计层面

架构:混乱/messy →清晰/clear and focused 初级OO/basic OO →设计模式/design pattern

架构:混乱/messy 清晰/clear and focused

PackParse QueryControl QueryControl 不再参与词性分析交互与词性分析交互解析词性分析结果构造词性分析请求根据当前召回状态筛选要执行的query_type

QaResponseParser makeDaRequest_strategy()QaRequestBuilder get_normal_query_type get_next_query_type parseDaResponse_strategy()Queryanalyze.cpp

QueryAnalyzer

总控逻辑通过A 平台发送请求通过B 平台发送请求AsyncSubmitterA

AsyncSubmitterB

AsyncSubmitter

RequestBuilder ResponseParser 词性分析请求控制框架

PackParser 退出与词性分析交互

ResultFetcher

search

-Cac******irer*-Ca******ta*-QueryTy********ata*-Req*****Array -_*******en_cache -Pack****ager -char buf[]-lost_bs_arr_t -_search*****ueryType -_nee***archCac****vel -_sendAn*********neBc -sen********ertOneDBArr -_sendA********ostDB …………后端查询Proxy

缓存查询Proxy StrategyQueue -search Normal Specific1Specific2

getResults::recall info

-RecallInfo*_m_recall_array[]check_*****_old_strategy check_db_****mask_*****sults Upd**********es_num modify_***results_layout merge_and_save_***_result processAfterRecall

-RecallInfo*_m_recall_array[]check_*****_old_strategy

check_db_****mask_*****sults Upd**********es_num modify_***results_layout merge_and_save_***_result XXCallback::on_success

-RecallInfo*_m_recall_array[]

check_*****_old_strategy

check_db_****

mask_*****sults

Upd**********es_num modify_***results_layout merge_and_save_***_result RecallInfo

-finish

Queue TypeResult RecallInfo

ResultFetcher RecallInfo

初级OO/basic OO 设计模式/design pattern

Template Method StrategyQueue

parse_response

QueryHighRisk

QueryHighRisk

QueryHighRisk

SpecialQueryB

SpecialQueryA

parse_response

AnotherStrategy find_query parse_response StrategyQueue find_query parse_response SomeStrategy find_query parse_response SomeStrategy find_query parse_response ElseStrategy find_query parse_response QueryDiyukuozhan find_query parse_da_response ElseStrategy find_query parse_response QueryDiyukuozhan find_query parse_da_response QueryDiyukuozhan find_query parse_da_response QueryDiyukuozhan find_query parse_da_response AnotherStrategy find_query parse_response

StrategyQueue parse_response SomeStrategy parse_response ElseStrategy parse_response AnotherStrategy parse_response QueryFinder find_query

NormalFinder find_query AnotherFinder find_query OtherFinder find_query

Bridge

编码层面

长函数/long method →抽取方法/extract method 控制结构重复/duplication →工具类/utilities 构造单测数据→使用辅助工具/UT fixture

长函数/long method 抽取方法/extract method

(新)可重构制造系统_

可重构制造系统(RMS)研究现状及发 展趋势 可重构制造系统(RMS,Reconfigurable Manufacturin g System)是指为能适应市场的需求变化,按系统规划的要求,以重排、重复利用、革新组元或子系统的方式,快速调整制造过程、制造功能和制造生产能力的一类新型可变制造系统。它是基于现有的或可获得的新机床设备和其它组元的、可动态组态的新一代制造系统。一般一条可重构制造系统相当于几条传统的制造系统。 RMS,Reconfigurable Manufacturing System)是指为能适应市场的需求变化,按系统规划的要求,以重排、重复利用、革新组元或子系统的方式,快速调整制造过程、制造功能和制造生产能力的一类新型可变制造系统。它是基于现有的或可获得的新机床设备和其它组元的、可动态组态的新一代制造系统。一般一条可重构制造系统相当于几条传统的制造系统。 1 发展现状概述 可重构制造系统是继承20年代的自动化流水线、50年代的NC机床、60年代的FMS和80年代的CIMS之后,由国外一些实施先进制造的企业首先创造的又一类新型可变制造系统。其

目的在于:大大缩短适应产品品种与产量变化的制造系统的规划、设计和建造时间及新产品的上市时间,大幅度地压缩系统建造的投资、降低生产成本、保证质量、合理利用资源、提高企业的市场竞争力和利润率。它涉及:先进的制造战略、营销、新产品创新与改进的设计与开发、系统工程与分析、随机动态规划与决策论、质量工程、系统可靠性和运行跟踪与诊断、计算机技术、自治与协同控制、硬软件接口与协议技术、经济可承受性、系统集成管理和生产运作管理等多学科、多种技术的交叉融合。 20年代的自动化流水线、50年代的NC机床、60年代的FMS 和80年代的CIMS之后,由国外一些实施先进制造的企业首先创造的又一类新型可变制造系统。其目的在于:大大缩短适应产品品种与产量变化的制造系统的规划、设计和建造时间及新产品的上市时间,大幅度地压缩系统建造的投资、降低生产成本、保证质量、合理利用资源、提高企业的市场竞争力和利润率。它涉及:先进的制造战略、营销、新产品创新与改进的设计与开发、系统工程与分析、随机动态规划与决策论、质量工程、系统可靠性和运行跟踪与诊断、计算机技术、自治与协同控制、硬软件接口与协议技术、经济可承受性、系统集成管理和生产运作管理等多学科、多种技术的交叉融合。 RMS是适应今天和明天先进制造发展的新一代技术群体中一种重要而适用的技术,对我国制造企业增强竞争力有重要意义。它与传统的制造系统规划、设计和建造的区别在于:企业可

可重构制作系统及关键技术分析

可重构制造系统及关键技术分析(图) 来源:机电在线发布时间:2008-4-22 15:30:19 导读:美国国家研究院经对世界40位专家咨询后,于1998年提出的《2020年制造业 挑战预测》中把可重构制造系统列为2020年前制造业面临的十大关键技术之首,国内外 学者付出了大量的精力和时间对其进行研究,但是到目前为止,可重构制造系统的理论研 究虽已取得了一定的进展,但整个研究工作还没有形成完整的体系,可重构制造系统的原 型尚未制造出来。可以预期,随着研究的深入和各项相关技术的发展,制造系统将会产生 质的飞跃,可重构制造系统必将在许许多多企业得到推广应用。 面对市场的千变万化,如何使制造系统快速而经济地响应市场需求的变化,是对当今 制造业的一个巨大挑战。传统的机械自动化生产线具有批量生产的效益,但面对市场的变 化不能快速响应;而柔性制造系统虽能缩短产品的试制和生产周期,但投资巨大,回收周期长。因此,迫切需要建立一种既具有规模生产的效益,又能快速适应动态多变的制造环境,并能充分利用现有制造资源的新型制造模式。对此,新近提出的可重构制造系统是适应这 一需求的一条有效途径。 可重构制造系统是指能够通过对制造系统结构及其组成单元进行快速重组或更新,及 时调整制造系统的功能和生产能力,以迅速响应市场变化及其他需求的一种制造系统。其 核心技术是系统的可重构性,即利用对制造设备及其模块或组件的重排、更替、剪裁、嵌 套和革新等手段对系统进行重新组态、更新过程、变换功能或改变系统的输出(产品与产量)。由于系统的这种可重构性,大大提高了系统的功能柔性和灵捷性。利用系统的可重构性, 可以不断地调整系统的制造过程、制造功能及制造能力,及时、高效地响应市场的变化。 因此,可重构性是制造系统具有可持续变化、快速响应能力所必不可少的重要特性,研究、开发和应用制造系统及其单元的可重构性是未来制造的重要关键技术。

4_可重构计算机体系结构

万方数据

万方数据

万方数据

可重构计算机体系结构 作者:王昭顺, 王沁, 曲英杰 作者单位:北京科技大学信息工程学院 刊名: 北京科技大学学报 英文刊名:JOURNAL OF UNIVERSITY OF SCIENCE AND TECHNOLOGY BEIJING 年,卷(期):2001,23(4) 被引用次数:15次 参考文献(3条) 1.黄海鹰;黄华可重构计算机[期刊论文]-微处理机 1999(02) 2.罗金平;杜贵然;周兴铭计算机体系结构的新发展:通用重构计算技术[期刊论文]-计算机工程 1999(09) 3.佟冬;胡铭曾;方滨兴可重构计算和可重构计算机技术 1998(04) 引证文献(15条) 1.毛兴权基于Impulse-C的可重构编程技术研究[期刊论文]-电脑知识与技术 2009(4) 2.韩大晗.崔慧娟.唐昆.刘大力一款可编程语音处理器的设计与应用[期刊论文]-计算机工程 2007(12) 3.韩大晗.崔慧娟.唐昆.刘大力可编程语音压缩专用处理器设计[期刊论文]-清华大学学报(自然科学版) 2007(1) 4.李昂人工神经网络数字VLSI并行实现的几个关键问题研究[学位论文]博士 2007 5.韩大晗.崔慧娟.唐昆.刘大力一款专用可编程语音压缩芯片的设计[期刊论文]-电子技术应用 2006(9) 6.韩大晗.崔慧娟.唐昆.刘大力嵌入式超长指令语音压缩处理器的VLSI实现[期刊论文]-微计算机应用 2006(5) 7.韩大晗.崔慧娟.唐昆一款专用可编程语音压缩芯片的设计[期刊论文]-电声技术 2006(6) 8.陈宏建.陈崚.秦玲.徐晓华.屠莉带有宽总线网络的可重构计算模型上的并行归并排序算法[期刊论文]-计算机工程与科学 2005(5) 9.陈宏建.陈崚.罗家奇RAPWBN模型上的快速高效并行排序算法[期刊论文]-计算机工程 2005(6) 10.陈宏建.陈崚.沈洁带有宽总线网络的可重构计算模型上的并行排序算法[期刊论文]-小型微型计算机系统2005(3) 11.陈宏建.陈崚.沈洁带有宽总线网络的可重构计算模型上的并行排序算法[期刊论文]-小型微型计算机系统2005(3) 12.杨光可重组逻辑体系结构及其指令系统的设计[学位论文]硕士 2005 13.陈宏建.陈崚.秦玲.徐晓华.屠莉带有宽总线网络可重构计算模型上的快速并行排序算法[期刊论文]-计算机工程与应用 2004(19) 14.陈宏建.陈崚.李开荣.陈莉莉RAPWBN的矩阵乘法并行算法[期刊论文]-计算机工程 2004(23) 15.方强嵌入式可重构远程测控系统的研究与设计[学位论文]硕士 2004 本文链接:https://www.doczj.com/doc/4614768282.html,/Periodical_bjkjdxxb200104027.aspx

动态可重构基本理论

论文阅读理论方法总结 Yongfu feng 一.FPGA动态可重构基础理论 严格来讲,系统重构的概念可分为静念系统重构和动态系统重构。静态系统重构是指目标系统的逻辑功能静态重载,即FPGA芯片功能在外部逻辑的控制下,通过存贮于存贮器中不同的目标系统数据重新下载,而实现芯片逻辑功能的改变。也就是指系统中PLD逻辑的静态重载,在系统空闲期间通过各种方式进行在线编程,而不是在其他部分动态运行时重载。 1.1动态可重构概念及原理 动态重构系统概念的提出早于FPGA动态可重构技术的提出。动态重构系统指对于时序变化的数字逻辑系统,其时序逻辑的发生,不是通过调用芯片内不同区域、不同逻辑资源来组合而成的,而可通过对具有专门缓存逻辑资源的FPGA,进行局部的和全局的芯片逻辑的动态重构而快速实现。也就是指在系统实时运行当中对FPGA的逻辑功能实时地进行动态配置,能够只对其内部需要修改的逻辑单元进行重新配置,没有被修改的逻辑单元将不受影响,正常工作。一般由传统处理器执行主程序,特定的任务赋给以FPGA为基础的协处理器以加速它们的执行。事实上,在大部分处理时间内,只有相对较小的一部分用来计算内部任务,而硬件可以显著加速执行的时间。在重构的过程中,根据需要,任务可以交换进入协处理器进行处理。 所谓FPGA动态可重构技术,是指基于静态存储器(SRAM)编程和专门结FPGA,在一定的控制逻辑的驱动下,不仅能实现系统重新配置电路功能,还能对芯片逻辑功能实现系统的高速动态变换。大多数FPGA都是基于SRAM查找表结构,它们一般只适用于静态重构,向SRAM一次下载全部配置数据而设定FPGA的逻辑

功能。根据FPGA的、配置方式等不同,全部重构时间为几毫秒到几秒不等。过去大家普遍进行重构研究的FPGA主要有,Xilinx的XC6200系列、以及Atmel 的AT6000等。它们也是基于SRAM结构,但是SRAM的各单元能够单独访问配置,分重构。它们的功能互不影响,因而具有部分重构的特征。这样做的优点显但也会付出增大硬件电路规模和功耗的代价。要最终实现电子系统的完全实构,应采用结构上具有动态部分重构功能的FPGA器件,如现在Xilinx的Virtex—II系列。 从动态可重构的特征可以引出一种新的设计思想: 1,以小规模硬件逻辑资源来实现大规模系统时序功能,将传统设计的空间分布的硬件逻辑,分为器件外部特征不变,而内部逻时间上交替变换,并共同在时问空间上构成系统整体逻辑功能。 FPGA动态可重构技术主要特征是将整体按功能或按时序分解为不同的组合,并根据实际需要,分时对芯片进行动态重构,以较少的硬件资源,去实现较大的时序系统整体功能。图1给出了一种典型的FPGA动态可重构原理示意图。从图1中可以看出,在外部逻辑的控制下,可以实时动态地对芯片逻辑实现全部重构或局部重构,通过控制布局、布线的资源,来实现系统的动态重构。 图1.1典型的FPGA动态可重构原理图 要使FPGA有效地实现实时系统动态重构, FPGA结构上必须满足以下要

相关主题
文本预览
相关文档 最新文档