`
kakarot_java
  • 浏览: 163705 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
技术测试:你是oltp应用开发方面的高手吗?

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

以下测试是针对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的,不为什么,因为这是真功夫。
相关文章:
《数据仓库》-[转] - 09月10日 21:31
技术专题:大型应用系统的一些讨论 -- by 曹政 - 07月22日 01:07
MySQL 大企业级应用可行性分析(之四) - 09月14日 12:56
MySQL 大企业级应用可行性分析(之三) - 09月14日 12:54
转贴-招聘老婆一名 满足以下30个条件即可 - 04月29日 17:14
小规模低性能低流量网站设计原则 - 04月17日 15:16
eBay 的Scalability最佳实践 - 04月14日 09:01
再谈 eBay 的扩展性最佳实践 - 04月14日 08:59
定期定额和它的7个好朋友 - 04月01日 20:24
手机之家网站架构--对话高春辉 - 03月30日 11:24
2条评论(Comments)
老板  [10月29日 09:20]
幸好我只是个什么都不知道的老板
9遍  [07月22日 03:50]
赫赫,有数据损失的OLTP不算OLTP,
严格说起来,报文转发也不算OLTP。
RS6000不是SUN的小型机,是IBM的。
核心数据库机器很少有用1台计算机的,
集群工作是常有的,按照数据进行
partition也是常用的。

算法是一方面,架构很关键,
尽量分布式处理,集群处理,
容错是关键。

说实话,计费系统的oltp难度不算艰辛,
况且还允许数据损失。

高端路由器还是比较难的。
分享到:
评论

相关推荐

    OLTP设计和维度建模文档

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

    OLTP与OLAP差异

    在信息技术领域,OLTP(联机事务处理)和OLAP(联机分析处理)是两种核心的数据处理方式,它们各自服务于不同类型的业务需求,拥有截然不同的特性和应用场景。本文旨在深入探讨这两种数据处理方式的含义、特点以及...

    OLTP批量业务解决框架

    ### OLTP批量业务解决框架:电信行业大数据量的高效处理策略 #### 一、现状与瓶颈分析 在电信行业中,随着业务复杂度的不断提升,例如移动号码销户流程的复杂化,传统处理方式逐渐暴露出其局限性。销户过程涉及多...

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

    首先,文章介绍了OLAP和OLTP的基本概念以及它们的不同应用点。OLTP系统由于需要处理大量的并发用户请求,因此在设计时更侧重于内存设计,以提高系统响应速度和处理能力。而对于OLAP系统,由于其主要处理大量的数据...

    OLTP与OLAP的区别精简总结

    这两种处理方式虽然都涉及到数据管理和处理,但它们在应用场景、系统设计以及对资源的需求等方面存在显著差异。 #### 联机事务处理(OLTP) ##### 定义及用途 OLTP是传统关系型数据库的主要应用之一,主要用于日常...

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

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

    露天煤矿生产管理信息系统的开发与应用

    在信息系统的开发方面,采用.NET平台作为开发环境具备了跨平台、高安全性和易于维护的优势。系统的B/S结构意味着采用浏览器/服务器模式,使得用户可以通过网络浏览器访问系统,无需安装客户端程序,这大大提高了系统...

    数据库设计基础(OLTP)

    数据库设计基础(OLTP)是信息技术领域中的一个重要概念,它主要...总的来说,数据库设计基础(OLTP)涵盖了实体-关系模型、完整性约束、数据规范化、E-R图转换等多个方面,这些知识点对于构建高效稳定的OLTP系统至关重要。

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

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

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

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

    Oracle Database 11g OLTP压缩总结

    ### Oracle Database 11g OLTP压缩总结 #### 压缩概述 Oracle Database 11g Release 1 (11gR1) 引入了一项重要的新特性——OLTP(Online Transaction Processing)表压缩。这一功能允许数据库在执行常规的数据维护...

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

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

    OLTP through the looking glass

    OLTP的瓶颈可能来自多个方面,例如单线程处理事务、内存驻留、存储过程执行和网络延迟等。文档还指出,尽管如此,传统数据库架构的主要性能问题仍旧存在,比如基于磁盘的数据结构,日志恢复,B-树索引,锁定,堆文件...

    Caché脚本语言开发数据库的Web应用程序.doc

    本文将详细介绍Caché脚本语言开发数据库的Web应用程序的设计背景、设计目标、项目设计的意义、程序设计应用的运行环境及工具、数据库及管理系统、Web访问数据库技术等方面的知识点。 1. 设计背景 Caché脚本语言...

    工行分布式OLTP数据库选型实践.pptx

    在交易特征方面,工商银行的系统需处理高并发、低延迟的交易,每天交易量超过1亿笔,交易延迟需控制在100毫秒以内,同时保证7*24小时的在线服务。通过实施本地高可用自动化切换和同城双活分片,实现了服务的快速恢复...

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

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

    Oracle数据库系统应用开发实用教程习题1.doc

    Oracle数据库系统应用开发实用教程习题1 Oracle数据库系统应用开发实用教程习题1为Oracle数据库开发和管理提供了详细的实践指南。本教程涵盖了Oracle数据库的管理、开发和应用三个方面的内容。以下是从教程中提取的...

    Caché脚本语言开发数据库的Web应用程序毕业论文.doc

    本毕业论文主要研究了Caché脚本语言开发数据库的Web应用程序,介绍了Caché作为一种新型的后关系型数据库(Post-Relational Database)的特点和优点,并对其在Web应用程序开发中的应用进行了深入探讨。 1. Caché...

    In-Memory Optimization OLTP Enhancements

    2. **Memory-Optimized OLTP 引擎**:专门为提高 OLTP 应用程序的性能而设计,特别适用于需要高并发和低延迟的场景。 3. **SQL Server 集成**:In-Memory OLTP 完全集成到 SQL Server 中,无需额外的配置或管理工具...

Global site tag (gtag.js) - Google Analytics