`
晨星★~雨泪
  • 浏览: 448162 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

技术测试:你是oltp应用开发方面的高手吗?

阅读更多

技术测试:你是oltp应用开发方面的高手吗?

51099在线学习网发布 文章来源:网络收集 发布时间:2006-05-25

 

这里是一篇技术测试的文章,希望所有那些自称的和被人吹捧的技术高手来看一看,做做我们的几个测试,看看你属于那种层次的高手?

以下测试是针对oltp开发而言的,对于做算法和桌面程序的,不是我这里要讨论的对象。

好了,第一个考题:你能否做一个统计系统,功能上和易数差不多,能够通过页面嵌入方式记录一个网站的显示次数,来访分析,时段分析,日期分析等等。怎么,这就被难住了,那你算哪门子高手?啊哈,这位说了,这些都easy,手到擒来,很好,很好,看来在实现功能上,你具有了高手的基本能力,不过且慢,如果你认为可以实现这些功能就能自称做个易数统计出来,未免也太小瞧了技术这碗饭的分量,实现这些功能,就中国而言,至少有6位数的程序员可以作到,而设计这么一套系统(仅从功能考虑),也至少有5位数的程序员可以作到,明白吗?你不过是这里面平平常常的一个而已了,要高兴还早呢。

第二个考题:呵呵,其实还是做这些功能,不过加个条件,我只给你一台PC Server(单/双PIII 733 512M Ecc内存 18G SCSI硬盘),你要支撑300万/天的请求调用。琢磨琢磨吧。
简简单单的一个cgi 数据库,那是肯定死翘翘了,怎么办?
第一,你要建立三层体系模型,后台数据库必须通过中间应用层和前台CGI分开。
第二,合理分配使用共享内存空间,并合理通过IPC信号量防止内存区的读写冲突和死锁。
第三,必要时改写web server原代码以获得效率最优化,比如改写apache server的http_log.c程序并重新编译。
如果你对建立这么一套系统的整体架构非常清楚,那么恭喜,你可以在一个比较不错的网络公司做一个CTO了,中国能够清晰搭建这样系统的人,不过4位数而已(当然,能够在这样系统里进行编码工作的,肯定还是有5位数以上的,毕竟左右都是c语言而已)。
知道为什么层出不穷那么多统计系统,虽然功能花哨,但是最后都撑不过易数,基本功不扎实,光靠功能花哨,那是没前途的。

在这个领域做的比较好的,好耶,网易,adsunion,腾讯,太极链等几家而已。
那些所谓广告交换没什么技术瓶颈的人,自己做一套大并访系统出来再说话。

第三个考题,还是这些功能,(我够贫的是吧)我要你一天能记录下3000万次浏览日志,不但要统计,还要完整记录,以供随时查验,当然主机环境提升一下,处理数据的主机用集群,但是核心数据库还是用一台电脑的,这次用sun的小型机,比如RS6000什么的;还有这次再加个条件,数据损失不能超过 0.01%。
这个已经不再象建立一个网站了,到象是大型电信的计费中心。你能胜任吗?
这时候要求对整体操作系统,对C语言,对数据库核心都必须有深入骨髓的理解,甚至于,对于数据的导入导出和一些日志的数据库记录,你已经不能再用sql去写了!要利用数据库产品的核心接口按照其数据存储格式直接进行文件或设备块的读写操作!对于一些负载非常大而性能要求又非常高的系统,甚至你需要建立一套独立的数据库体系和数据结构体系。这不是玩笑,因为我领教过这样的系统。
在中国,能搭建这样平台的高手,最多3位数而已。主要集中在电信计费领域,如亚信这样的企业。

第四个考题,这次每天的请求不是3000万了,而是3万万,我没说胡话,3万万!不过你的工作变了,我不要你再做后面的数据处理,我只让你做一个前端报文转发处理,这次我很苛刻,给你一台PII的PC服务器,256M Ecc内存,而数据损失要求则绝对不能超过0.0001%,你的工作很简单,对来往的请求进行简单识别并转发到合适的应用服务器处理。
你用web server转发?别开玩笑了!这时候,你已经别无选择,用汇编自己写一套报文处理程序,作为看守进程驻入内存并挂在接收报文的端口上,你对效率的理解,应当已经超出了对操作系统的认识,对编程语言的认识,而直接达到对CPU指令集的认识程度上,是的,你必须清楚自己的每一条汇编指令是不是已经达到最小的 CPU指令占用。必须能计算出分解和处理一条报文的流程需要多少CPU指令循环,是不是已经针对CPU的指令集达到了最大优化,当然,你还必须很熟悉 TCP/IP协议对每一种报文的格式定义和规范,不过这和汇编指令的效率优化而言,到不显得有多高深了。
我们经常说CISCO是硬件产品服务商,错了!他们的利润主要就来自于这样的算法!!中国联想、华为等等都想强占这块肥肉的市场,但是在高端领域(其实并不是硬件高端,而是算法高端!),我们还是彻底的空白。
庆幸的是,我知道国内有人在做这样的事情了,当宽带不可避免的成为主流的时候,这种算法的强度和要求,会成为攫取利润的最好途径。
中国在这方面能达到标准的,又有几个人呢?

出了这四个考题,没别的意思,我刚大学毕业的时候,也是自视甚高,因为当时的感觉是,和专业课的计算机作业相比(我是力学专业的,动不动要求编程解一个偏微分方程的收敛解,来分析什么旋流场的速度、温度等的分布),做wewebb开发简直毫无算法可言。再加上当时国内做web数据库的也少,动辄以为自己已经是满高手了,结果幸好跑到给电信做计费的企业混了一年,接触了国内最大的电信集中计费中心的解决方案(一直在运营,还不错),才知道敢情OLTP应用里面学问大的很,自己这点皮毛拿出来吹嘘简直是不知天高地厚。现在看看外面一堆和我当初一样的小毛孩子整天做两个烂程序就自诩高手,只好出来说几句。

其实对于OLTP应用而言,功能的实现一般都非常容易,和那些从事力学、数学、物理等行业的数值计算相比简直毫无算法可言,而OLTP的技术难点主要在于性能,也就是你做一个桌面程序或算法程序,都不会面临并访过高的处理问题,但是做一个OLTP应用,无论如何你都必须直视一下子很多访问冲上来的情况,如果这个问题解决不了,无论多好的创意,多好的功能,都不会得到持续和长远的发展。

由于很多创业者和投资者对技术不通或半通,他们往往拿一个性能指标有很大缺陷的东东当个宝贝,因为一般而言,开发出新东东大家都只是忙着测试功能,很少有对性能进行完整测评的,只有持续运营到一定阶段,并访达到一定程度,性能缺陷开始暴露,才临急抱佛脚,这时候造成的损失就很不核算,甚至是压根解决不了,只好放弃某种功能,从而使品牌信誉整体下降。

加强算法基础,加强技术基础,少卖弄一些花里胡哨的东西,是走向技术高手的真正路线,那些今天学会了什么语言,明天又学会了什么语言的主儿,别吹嘘了,从70年代到现在,最值钱的程序员一直是写汇编和写标准C的,不为什么,因为这是真功夫。

 

分享到:
评论

相关推荐

    微软SQL Server 2014三大新特性:集成内存OLTP、BI和混合云搭建介绍PPT

    微软SQL Server 2014的优势是:集成内存OLTP技术的数据库产品,安全和数据分析强大,以及混合云搭建便捷等。而正是由于SQL Server 2014的诸多新特性,使得Azure在企业混合云实践方面,打分很高。

    MySQL OLAP与OLTP系统的详细解析及应用比较

    适合人群:数据库管理员、数据分析师、软件开发人员和技术爱好者,特别是对OLAP和OLTP有深入理解和应用需求的专业人士。 使用场景及目标:了解OLAP和OLTP系统的概念、特点和应用场景,帮助企业选择合适的数据库系统...

    Game:ETL的OLTP

    ETL在游戏领域的应用通常涉及以下几个方面: 1. 数据抽取:从游戏服务器的日志文件、数据库或其他数据源提取海量的游戏活动数据,例如玩家登录、购买、战斗、升级等事件。 2. 数据转换:对抽取的数据进行预处理,...

    OLTP设计和维度建模文档

    在实际应用中,OLTP系统与数据仓库往往是协同工作的。OLTP系统负责收集和处理实时交易数据,而数据仓库则对这些数据进行整合、清洗和转换,然后通过维度建模提供给分析人员进行深度洞察和决策支持。这种结合使得电信...

    Performance Analysis of the Linux Buffer Cache While Running an Oracle OLTP Workload

    - **微基准测试 (Micro-Benchmarks)**:用于评估系统某一方面性能的小型测试程序。 - **TPC-C 基准测试模型**:用于评估数据库系统在执行 OLTP 工作负载时的性能。 - **Linux 缓冲区缓存**:作为 Linux 内核的一部分...

    JAVAEE 开发测试文档

    【JAVA EE 开发测试文档】是一系列关于Java企业级应用开发和测试的综合资源集合,包含多本PDF手册,由于文件大小限制,被拆分成多个部分进行上传。这些手册覆盖了从入门到高级的多个主题,旨在帮助开发者和测试...

    OLTP和OLAP技术融合架构实践.pptx

    【OLTP与OLAP技术融合架构实践】 在线事务处理(OLTP)和在线分析处理(OLAP)是两种不同但互补的数据处理模式。OLTP主要关注于日常事务处理,如银行交易、电子商务订单等,强调高并发、低延迟和数据的一致性。而...

    OLTP与OLAP差异

    ### 一、OLTP:实时性与事务完整性 #### 定义 OLTP,全称为On-Line Transaction Processing,是一种用于处理大量、频繁发生的日常事务的系统。它主要应用于如银行交易、订单处理、库存管理等需要快速响应并确保数据...

    OLTP和OLAP的区别

    综上所述,OLTP和OLAP虽然都属于数据处理范畴,但在设计理念、应用场景和技术实现上存在明显差异。OLTP侧重于实时性、一致性和高并发处理,而OLAP则更加强调数据的聚合分析能力和复杂查询的支持。企业在构建信息系统...

    OLTP与OLAP的区别精简总结

    ### OLTP与OLAP的区别精简总结 #### 当今数据处理分类 当今的数据处理领域大致可以分为两大类:联机事务处理(Online Transaction Processing,简称OLTP)与联机分析处理(Online Analytical Processing,简称OLAP...

    OLTP和OLAP技术融合的探索实践_梁福坤@饿了么 百度外卖.pdf

    OLTP是面向交易的处理过程,强调的是快速响应用户操作,其特点包括数据量少、面向应用、并行事务处理、分库分表、读写分离、Cache技术、B-Tree索引以及高实时性要求,数据库作为载体以及SQL交互。OLAP则是联机分析...

    1第一部分 关系数据库之OLTP模型设计(2012-09-23第5版).pdf

    关系数据库在OLTP(在线事务处理)模型设计方面是企业应用中非常重要的一环。OLTP系统的主要功能是处理日常的、大量的小事务,这些事务一般在几秒内完成,其操作以查询和更新为主。在设计OLTP模型时,会涉及到一系列...

    HCIP-GaussDB-OLTP(H13-921)教材V1.5.zip

    HCIP-GaussDB-OLTP(H13-921)教材V1.5.zip是一个针对华为认证的高级数据库管理课程的压缩包文件,它涵盖了GaussDB OLTP数据库的关键概念和技术。以下是对其中各个章节的详细解读: 1. **GaussDB OLTP概述**: ...

    金融行业基于容器架构的OLTP数据库技术.pdf

    ### 金融行业基于容器架构的OLTP数据库技术 #### 一、引言 随着金融行业的快速发展,业务场景的复杂性和多样性不断增加,对于数据处理技术的要求也在不断提高。传统的数据处理方式已经难以满足当前的需求,因此...

    sysbench进行cpu,磁盘IO,内存,OLTP基准测试

    sysbench进行cpu,磁盘IO,内存,OLTP基准测试, 一sysbench-05安装 二用法下面的测试案例需要用到这些说明才能看的懂的 三开始测试 cpu性能测试 线程测试 磁盘IO性能测试 内存测试 OLTP测试

    基于Oracle的OLTP与OLAP数据库设计及实现

    在当前的IT环境中,Oracle数据库因其稳定性、安全性以及成熟的架构被广泛应用于各种企业级应用中。随着企业业务的扩展,对于数据处理的需求也愈加复杂,OLTP(在线事务处理)和OLAP(在线分析处理)这两种数据库架构...

    分布式数据库在城商行OLTP场景的应用.docx

    ### 分布式数据库在城商行OLTP场景的应用 #### 引言 随着信息技术的快速发展,银行业务系统面临着越来越高的处理需求。对于中小城市商业银行(以下简称“城商行””而言,其面临的业务挑战和数据处理需求虽不如大型...

    金融行业基于容器技术的OLTP数据库技术.pdf

    容器技术,特别是针对在线事务处理(OLTP)数据库的运用,已经成为了一个重要的解决方案。本文将深入探讨金融行业在容器技术下构建OLTP数据库的现状、挑战以及其优势。 1. **应用现状与挑战** 金融行业在互联网...

    Addressing OLTP Solutions with CICS:The Transaction Server for AIX

    通过以上介绍可以看出,《Addressing OLTP Solutions with CICS: The Transaction Server for AIX》这本书不仅详细阐述了OLTP系统的概念和原理,还提供了实用的技术指导和最佳实践,对于从事OLTP系统开发和维护的...

    Expert SQL Server In-Memory OLTP, 2nd Edition

    《Expert SQL Server In-Memory OLTP, 2nd Edition》这本书深入探讨了SQL Server的内存优化在线事务处理(OLTP)技术,这是SQL Server数据库性能提升的重要领域。内存优化OLTP是微软为解决传统磁盘基础表在高并发...

Global site tag (gtag.js) - Google Analytics