eygle.com   eygle.com
eygle.com eygle
eygle.com  
 
Digest Net: August 2010 Archives

August 2010 Archives

孩子10岁前应该玩的32个游戏

对于今天的10岁孩子们来说,每天花几个小时看电视或玩电脑似乎已经是家常便饭。但是,他们知道爬树、建沙堡或是在草地上打滚的乐趣吗?

英国专家最近提出了10岁以下儿童应该做的32件事,计算机游戏并不在列。

英国国际游戏协会的研究人员进行了一项调查,结果发现在如今孩子的生活中,很多曾经带给他们父母童年无限美好回忆的传统游戏已经消失了。为此,专家们制定出一个10岁以下儿童游戏清单,列出了他们应该做的32件事

它们分别是:

1、草地上打滚    2、做泥饼     3、玩面团       4、找蝌蚪        5、用花瓣做香水

                     

6、做纸面具       7 建沙堡        8、爬树          9、在花园里挖地洞  10 用手和脚画画

                  

11. 过家家        12. 描脸蛋化妆      15、堆雪人           16、做泥塑       17. 拾垃圾   

                     

18、在花园里露营  19、做简单的饭       20、养小动物      21、采草莓       22、耍棍子 

                  

23、区分五种鸟类  24、认识一些虫子   25. 骑车过泥坑    26、放风筝        27、种树    

              

28、用草和树枝造鸟巢  29、在公园里找到    30、种蔬菜   31、早上帮父母准备早餐32、在花园里玩军事进攻游戏

10片不同的树叶



eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算----可伸缩性是生死交关的问题。


在一个可伸缩的架构中,资源的消耗应该随负载线性(或更佳)上升,负载可由用户流量、数据量等测量。如果说性能衡量的是每一工作单元所需的资源消耗,可伸缩性则是衡量当工作单元的数量或尺寸增加时,资源消耗的变化情况。换句话说,可伸缩性是整个价格-性能曲线的形状,而不是曲线上某一点的取值。

可伸缩性有很多侧面----事务的方面、运营的方面、还有开发的方面。我们在改善一个Web系统的事务吞吐量的过程中学到了很多经验,本文总结了其中若 干关键的最佳实践。可能很多最佳实践你会觉得似曾相识,也可能有素未谋面的。这些都是开发和运营eBay网站的众人的集体经验结晶。

最佳实践 #1:按功能分割

相关的功能部分应该合在一起,不相关的功能部分应该分割开来----不管你把它叫做SOA、功能分解还是工程秘诀。而且,不相关的功能之间耦合程度越松散,就越能灵活地独立伸缩其中的一部分。

在编码层次,我们无时不刻都在运用这条原则。JAR文件、包、Bundle等等,都是用来隔离和抽象功能的机制。

在应用层次,eBay将不同的功能划分成几个应用程序池。销售功能由一组应用服务器运行,投标功能由另一组负责,搜索又是另外一组服务器。我们把总 共约16,000台应用服务器分成220个池。这样就可以根据某项功能的资源消耗,单独地伸缩其中一个池。我们也因此得以进一步隔离及合理化资源依赖关系 ----比如销售池只需要访问后台资源的一个相对较小的子集。

在数据库层次,我们也采取同样的做法。eBay没有无所不包的单一数据库,相反我们有一组数据库主机存放用户数据、一组存放商品数据、一组存放购买数据......总共1000个逻辑数据库分布在400台物理主机上。同样,这种做法让我们得以单独为某一类数据伸缩其数据库设施。

最佳实践 #2:水平切分

按功能分割对我们的帮助很大,但单凭它还不足以得到完全可伸缩的架构。即使将功能一一解耦,单项功能的资源需求随着时间增长,仍然有可能超出单一系 统的能力。我们常常提醒自己,"没有分割就没有伸缩"。在单项功能内部,我们需要能把工作负载分解成许多我们有能力驾驭的小单元,让每个单元都能维持良好 的性能价格比。这就是水平分割出场的时候了。

在应用层次,由于eBay将各种交互都设计成无状态的,所以水平分割是轻而易举之事。用标准的负载均衡服务器来路由进入的流量。所有应用服务器都是 均等的,而且任何服务器都不会维持事务性的状态,因此负载均衡可以任意选择应用服务器。如果需要更多处理能力,只需要简单地增加新的应用服务器。

数据库层次的问题比较有挑战性,原因是数据天生就是有状态的。我们会按照主要的访问路径对数据作水平分割(或称为"sharding")。例如用户 数据目前被分割到20台主机上,每台主机存放1/20的用户。随着用户数量的增长,以及每个用户的数据量增长,我们会增加更多的主机,将用户分散到更多的 机器上去。商品数据、购买数据、帐户数据等等也都用同样的方式处理。用例不同,我们分割数据的方案也不同:有些是对主键简单取模(ID尾数为1的放到第一 台主机,尾数为二的放到下一台,以此类推),有些是按照ID的区间分割(1-1M、1-2M等等),有些用一个查找表,还有些是综合以上的策略。不过具体 的分割方案如何,总的思想是支持数据分割及重分割的基础设施在可伸缩性上远比不支持的优越。

最佳实践 #3:避免分布式事务

看到这里,你可能在疑惑按功能划分数据和水平划分数据的实践如何满足事务要求。毕竟,几乎任何有意义的操作都要更新一个以上的实体----立即就可以举 出用户和商品的例子。正统的广为人知的答案是:建立跨资源的分布式事务,用两段式提交来保证要么所有资源全都更新,要么全都不更新。很不幸,这种悲观方案 的成本很可观。伸缩、性能和响应延迟都受到协调成本的反面影响,随着依赖的资源数量和客户数量的上升,这些指标都会以几何级数恶化。可用性亦受到限制,因 为所有依赖的资源都必须就位。实用主义的答案是,对于不相关的系统,放宽对它们的跨系统事务的保证。

左右逢源是办不到的。保证跨多个系统或分区之间的即时的一致性,通常既无必要,也不现实。Inktomi的Eric Brewer十年前提出的CAP公理是这样说的:分布式系统的三项重要指标----一致性(Consistency)、可用性(Availability)和 分区耐受性(Partition-tolerance)----在任意时刻,只有两项能同时成立。对于高流量的网站来说,我们必须选择分区耐受性,因为它是实 现可伸缩的根本。对于24x7运行的网站,选择可用性也是理所当然的。于是只好放弃即时一致性(immediate consistency)。

在eBay,我们绝对不允许任何形式的客户端或者分布式事务----因此绝不需要两段式提交。在某些经过仔细定义的情形下,我们会将作用于同一个数据库 的若干语句捆绑成单个事务性的操作。而对于绝大部分操作,单条语句是自动提交的。虽然我们故意放宽正统的ACID属性,以致不能在所有地方保证即时一致 性,但现实的结果是大部分系统在绝大部分时间都是可用的。当然我们也采用了一些技术来帮助系统达到最终的一致性(eventual consistency):周密调整数据库操作的次序、异步恢复事件,以及数据核对(reconciliation)或者集中决算(settlement batches)。具体选择哪种技术要根据特定用例对一致性的需求来决定。

对于架构师和系统的设计者来说,关键是要明白一致性并非"有"和"没有"的单选题。现实中大多数的用例都不要求即时一致性。正如我们经常根据成本和其他压力因素来权衡可用性的高低,一致性也同样可以量体裁衣,根据特定操作的需要而保证适当程度的一致性。 

最佳实践 #4:用异步策略解耦程序

提高可伸缩性的另一项关键措施是积极地采取异步策略。如果组件A同步调用组件B,那么A和B就是紧密耦合的,而紧耦合的系统其可伸缩性特征是各部分 必须共同进退----要伸缩A必须同时伸缩B。同步调用的组件在可用性方面也面临着同样的问题。我们回到最基本的逻辑:如果A推出B,那么非B推出非A。也就 是说,若B不可用,则A也不可用。如果反过来A和B的联系是异步的,不管是通过队列、多播消息、批处理还是什么其他手段,它们就可以分别地伸缩。而且,此 时A和B的可用性特征是相互独立的----即使B受困或者死掉,A仍然能够继续前进。

整个基础设施从上到下都应该贯彻这项原则。即使在单个组件内部也可通过SEDA(分阶段的事件驱动架构,Staged Event-Driven Architecture)等技术实现异步性,同时保持一个易于理解的编程模型。组件之间也遵守同样的原则----尽可能避免同步带来的耦合。在多数情况下, 两个组件在任何事件中都不会有直接的业务联系。在所有的层次,把过程分解为阶段(stages or phases),然后将它们异步地连接起来,这是伸缩的关键。

最佳实践 #5:将过程转变为异步的流

用异步的原则解耦程序,尽可能将过程变为异步的。对于要求快速响应的系统,这样做可以从根本上减少请求者所经历的响应延迟。对于网站或者交易系统, 牺牲数据或执行的延迟时间(完成全部工作的实践)来换取用户的延迟时间(用户得到响应的时间)是值得的。活动跟踪、单据开付、决算和报表等处理过程显然都 应该属于后台活动。主要用例过程中常常有很多步骤可以进一部分解成异步运行。任何可以晚点再做的事情都应该晚点再做。

还有一个同等重要的方面认识到的人不多:异步性可以从根本上降低基础设施的成本。同步地执行操作迫使你必须按照负载的峰值来配备基础设施----即使在 任务最重的那一天里任务最重的那一秒,设施也必须有能力立即完成处理。而将昂贵的处理过程转变为异步的流,基础设施就不需要按照峰值来配备,只需要满足平 均负载。而且也不需要立即处理所有的请求,异步队列可以将处理任务分摊到较长的时间里,因而起到削峰的作用。系统的负载变化越大,曲线越多尖峰,就越能从 异步处理中得益。

最佳实践 #6:虚拟化所有层次

虚拟化和抽象化无所不在,计算机科学里有一句老话:所有问题都可以通过增加一个间接层次来解决。操作系统是对硬件的抽象,而许多现代语言所用的虚拟 机又是对操作系统的抽象。对象-关系映射层抽象了数据库。负载均衡器和虚拟IP抽象了网络终端。当我们通过分割数据和程序来提高基础设施的可伸缩性,为各 种分割增加额外的虚拟层次就成为重中之重。

在eBay,我们虚拟化了数据库。应用与逻辑数据库交互,逻辑数据库再按照配置映射到某个特定的物理机器和数据库实例。应用也抽象于执行数据分割的 路由逻辑,路由逻辑会把特定的记录(如用户XYZ)分配到指定的分区。这两类抽象都是在我们自己开发的O/R层上实现的。这样虚拟化之后,我们的运营团队 可以按需要在物理主机群上重新分配逻辑主机----分离、合并、移动----而完全不需要接触应用程序代码。

搜索引擎同样是虚拟化的。为了得到搜索结果,一个聚合器组件会在多个分区上执行并行的查询,但这个高度分割的搜索网格在客户看来只是单一的逻辑索引。

以上种种措施并不只是为了程序员的方便,运营上的灵活性也是一大动机。硬件和软件系统都会故障,请求需要重新路由。组件、机器、分区都会不时增减、 移动。明智地运用虚拟化,可使高层的设施对以上变化难得糊涂,你也就有了腾挪的余地。虚拟化使基础设施的伸缩成为可能,因为它使伸缩变成可管理的。

最佳实践 #7:适当地使用缓存

最后要适当地使用缓存。这里给出的建议不一定普遍适用,因为缓存是否高效极大地依赖于用例的细节。说到底,要在存储约束、对可用性的需求、对陈旧数 据的容忍程度等条件下最大化缓存的命中率,这才是一个高效的缓存系统的最终目标。经验证明,要平衡众多因素是极其困难的,即使暂时达到目标,情况也极可能 随着时间而改变。

最适合缓存的是很少改变、以读为主的数据----比如元数据、配置信息和静态数据。在eBay,我们积极地缓存这种类型的数据,并且结合使用"推"和" 拉"两种方法保持系统在一定程度上的更新同步。减少对相同数据的重复请求能达到非常显著的效果。频繁变更、读写兼有的数据很难有效地缓存。在eBay,我 们大多有意识地回避这样的难题。我们一直不对请求间短暂存在的会话数据作任何缓存。也不在应用层缓存共享的业务对象,比如商品和用户数据。我们有意地牺牲 缓存这些数据的潜在利益,换取可用性和正确性。在此必须指出,其他网站采取了不同的途径,作了不同的取舍,也同样取得了成功。

好东西也会过犹不及。为缓存分配的内存越多,能用来服务单个请求的内存就越少。应用层常常有内存不足的压力,因此这是非常现实的权衡。更重要的一 点,当你开始依赖于缓存,那么主要系统就只需要满足缓存未命中时的处理要求,自然而然你就会想到可以削减主要系统。但当你这样做之后,系统就完全离不开缓 存了。现在主要系统没办法直接应付全部流量,也就是说网站的可用性取决于缓存能否100%正常运行----潜在的危局。哪怕是例行的操作,比如重新配置缓存资 源、把缓存移动到别的机器、冷启动缓存服务器,都有可能引发严重的问题。

做得好,缓存系统能让可伸缩性的曲线向下弯曲,也就是比线性增长还要好----后续请求从缓存中取数据比从主存储取数据成本低廉。反过来,缓存做得不好 会引入相当多额外的经常耗费,也会妨碍到可用性。我还没见过哪个系统没机会让缓存大展拳脚的,关键是要根据具体情况找到适当缓存策略。

总结

可伸缩性有时候被叫做"非功能性需求",言下之意是它与功能无关,也就比较不重要。这么说简直错到了极点。我的观点是,可伸缩性是功能的先决条件----优先级为0的需求,比一切需求的优先级都高。

希望以上最佳实践能对你有用,希望能帮助你从新的角度审视你的系统,无论其规模如何。

参考

关于作者

Randy Shoup是eBay的杰出架构师。从2004年起担任eBay搜索基础设施的主要架构师。在加入eBay之前,他是Tumbleweed Communications公司的总架构师,也曾在Oracle和Informatica担任多个软件开发和架构的职位。

他经常在业界的会议上讲授可伸缩性和架构模式。

阅读英文原文:Scalability Best Practices: Lessons from eBay

转引自:http://www.infoq.com/cn/articles/ebay-scalability-best-practices


援引 Metalink 文档 175982.1中,列举Ora-600错误代码供参考:

数字类型的Ora-600

Ora-600 Base Functionality Description
1 Service Layer The service layer has within it a variety of service
related components which are associated with in memory related activities in the SGA such as, for example : the management of Enqueues,
System Parameters, System state objects (these objects track the use of structures in the SGA by Oracle server processes), etc..
In the main, this layer provides support to allow process communication and provides support for locking and the management of structures to support multiple user processes connecting and interacting within the SGA. 

Note : vos  - Virtual Operating System provides features to support the functionality above.  As the name suggests it provides base functionality in much the same way as is provided by an Operating System.
 

Ora-600 Base Functionality Description
1 vos Component notifier 
100 vos Debug
300 vos Error
500 vos Lock
700 vos Memory
900 vos System Parameters 
1100 vos System State object 
1110 vos Generic Linked List management 
1140 vos Enqueue
1180 vos Instance Locks 
1200 vos User State object 
1400 vos Async Msgs 
1700 vos license Key 
1800 vos Instance Registration 
1850 vos I/O Services components
2000 Cache Layer Where errors are generated in this area, it is advisable
to check whether the error is repeatable and whether the error is perhaps associated with recovery or undo type operations; where
this is the case and the error is repeatable, this may suggest some kind of hardware or physical issue with a data file, control
file or log file. The Cache layer is responsible for making the changes to the underlying files and well as managing the related memory structures in the SGA. 

Note : rcv indicates recovery. It is important to remember that the Oracle cache layer is effectively going through the same code paths as used by the recovery mechanism.
 

Ora-600 Base Functionality Description
2000 server/rcv Cache Op
2100 server/rcv Control File mgmt 
2200 server/rcv Misc (SCN etc.) 
2400 server/rcv Buffer Instance Hash Table 
2600 server/rcv Redo file component 
2800 server/rcv Db file 
3000 server/rcv Redo Application 
3200 server/cache Buffer manager 
3400 server/rcv Archival & media recovery component 
3600 server/rcv recovery component
3700 server/rcv Thread component 
3800 server/rcv Compatibility segment

It is important  to consider when the error occurred and the context in which the error was generated. If the error does not reproduce, it may be an in memory issue.
 

4000 Transaction Layer Primarily the transaction layer is involved with maintaining
structures associated with the management of transactions.  As with the cache layer , problems encountered in this layer may indicate some kind of issue at a physical level. Thus it is important to try and repeat the same steps to see if the problem recurs. 

 
Ora-600 Base Functionality Description
4000 server/txn Transaction Undo 
4100 server/txn Transaction Undo 
4210 server/txn Transaction Parallel 
4250 server/txn Transaction List 
4300 space/spcmgmt Transaction Segment 
4400 txn/lcltx Transaction Control 
4450 txn/lcltx distributed transaction control
4500 txn/lcltx Transaction Block 
4600 space/spcmgmt Transaction Table 
4800 dict/rowcache Query Row Cache 
4900 space/spcmgmt Transaction Monitor 
5000 space/spcmgmt Transaction Extent 

It is important to try and determine what the object involved in any reproducible problem is. Then
use the analyze command. For more information, please refer to the analyze command as detailed in the context of  Note 28814.1; in addition, it may be worth using the dbverify as discussed in Note 35512.1.

 

6000 Data Layer The data layer is responsible for maintaining and managing
the data in the database tables and indexes. Issues in this area may indicate some kind of physical issue at the object level and
therefore, it is important to try and isolate the object and then perform an anlayze on the object to validate its structure. 

 
Ora-600 Base Functionality Description
6000 ram/data
ram/analyze
ram/index
data, analyze command and index related activity
7000 ram/object lob related errors
8000 ram/data general data access
8110 ram/index index related
8150 ram/object general data access

Again, it is important to try and determine what the object involved in any reproducible problem is.
Then use the analyze command. For more information, please refer to the analyze command as detailed in the context of  Note 28814.1; in addition, it may be worth using the dbverify as discussed in Note 35512.1.

 

12000 User/Oracle Interface & SQL Layer Components This layer governs the user interface with the Oracle
server. Problems generated by this layer usually indicate : some kind of presentation or format error in the data received by the
server, i.e. the client may have sent incomplete information; or there is some kind of issue which indicates that the data is received out of sequence

 
Ora-600 Base Functionality Description
12200 progint/kpo
progint/opi
lob related
errors at interface level on server side, xa , etc.
12300 progint/if OCI interface to coordinating global transactions 
12400 sqlexec/rowsrc table row source access
12600 space/spcmgmt operations associated with tablespace : alter / create / drop operations ; operations associated with create table / cluster
12700 sqlexec/rowsrc  bad rowid
13000 dict/if dictionary access routines associated with kernel compilation
13080 ram/index kernel Index creation
13080 sqllang/integ constraint mechanism
13100 progint/opi archival and Media Recovery component
13200 dict/sqlddl alter table mechanism
13250 security/audit audit statement processing
13300 objsupp/objdata support for handling of object generation and object access
14000 dict/sqlddl sequence generation
15000 progint/kpo logon to Oracle
16000 tools/sqlldr sql loader related

You should try and repeat the issue and with the use of sql trace , try and isolate where exactly the issue may be occurring within the application.

14000 System Dependent Component internal error values This layer manages interaction with the OS. Effectively
it acts as the glue which allows the Oracle server to interact with the OS. The types of operation which this layer manages are indicated as follows.

 
Ora-600 Base Functionality Description
14000 osds File access
14100 osds Concurrency management; 
14200 osds Process management;
14300 osds Exception-handler or signal handler management
14500 osds Memory allocation
15000 security/dac,
security/logon
security/ldap
local user access validation; challenge / response activity for
remote access validation; auditing operation; any activities associated with granting and revoking of privileges; validation of password with external password file
15100 dict/sqlddl this component manages operations associated with creating, compiling (altering), renaming, invalidating, and dropping  procedures, functions, and packages.
15160 optim/cbo cost based optimizer layer is used to determine optimal path to the data based on statistical information available on the relevant tables and indexes.
15190 optim/cbo cost based optimizer layer. Used in the generation of a new index to determine how the index should be created. Should it be constructed from the table data or from another index.
15200 dict/shrdcurs used to in creating sharable context area associated with shared cursors
15230 dict/sqlddl manages the compilation of triggers
15260 dict/dictlkup
dict/libcache
dictionary lookup and library cache access
15400 server/drv manages alter system and alter session operations
15410 progint/if manages compilation of pl/sql packages and procedures
15500 dict/dictlkup performs dictionary lookup to ensure semantics are correct
15550 sqlexec/execsvc
sqlexec/rowsrc
hash join execution management; 
parallel row source management
15600 sqlexec/pq component provides support for Parallel Query operation
15620 repl/snapshots manages the creation of snapshot or materialized views as well as related snapshot / MV operations
15640 repl/defrdrpc layer containing various functions for examining the deferred transaction queue and retrieving information
15660 jobqs/jobq manages the operation of the Job queue background processes
15670 sqlexec/pq component provides support for Parallel Query operation
15700 sqlexec/pq component provides support for Parallel Query operation; specifically mechanism for starting up and shutting down query slaves
15800 sqlexec/pq component provides support for Parallel Query operation
15810 sqlexec/pq component provides support for Parallel Query operation; specifically functions for creating mechanisms through which Query co-ordinator can communicate with PQ slaves;
15820 sqlexec/pq component provides support for Parallel Query operation
15850 sqlexec/execsvc component provides support for the execution of SQL statements
15860 sqlexec/pq component provides support for Parallel Query operation
16000 loader sql Loader direct load operation;
16150 loader this layer is used for 'C' level call outs to direct loader operation;
16200 dict/libcache this is part of library Cache operation. Amongst other things it manages the dependency of SQL objects and tracks who is permitted to access these objects;
16230 dict/libcache this component is responsible for managing access to remote objects as part of library Cache operation;
16300 mts/mts this component relates to MTS (Multi Threaded Server) operation
16400 dict/sqlddl this layer contains functionality which allows tables to be loaded / truncated and their definitions to be modified. This is part of dictionary operation;
16450 dict/libcache this layer layer provides support for multi-instance access to the library cache; this functionality is applicable therefore to OPS environments;
16500 dict/rowcache this layer provides support to load / cache Oracle's dictionary in memory in the library cache;
16550 sqlexec/fixedtab this component maps data structures maintained in the Oracle code to fixed tables such that they can be queried using the SQL layer;
16600 dict/libcache this layer performs management of data structures within the library cache;
16651 dict/libcache this layer performs management of dictionary related information within library Cache;
16701 dict/libcache this layer provides library Cache support to support database creation and forms part of the bootstrap process;
17000 dict/libcache this is the main library Cache manager. This Layer maintains the in memory representation of cached sql statements together will all the necessary support that this demands;
17090 generic/vos this layer implementations error management operations: signalling errors, catching  errors, recovering from errors, setting error frames, etc.;
17100 generic/vos Heap manager. The Heap manager manages the storage of internal
data in an orderly and consistent manner. There can be many heaps serving various purposes; and heaps within heaps. Common examples
are the SGA heap, UGA heap and the PGA heap. Within a Heap there are consistency markers which aim to ensure that the Heap is always in a consistent state. Heaps are use extensively and are in memory structures - not on disk. 
17200 dict/libcache this component deals with loading remote library objects into the local library cache with information from the remote database.
17250 dict/libcache more library cache errors ; functionality for handling pipe operation associated with dbms_pipe
17270 dict/instmgmt this component manages instantiations of procedures, functions,
packages, and cursors in a session. This provides a means to keep track of what has been loaded in the event of process death; 
17300 generic/vos manages certain types of memory allocation structure.  This functionality is an extension of the Heap manager.
17500 generic/vos relates to various I/O operations. These relate to async i/o operation,  direct i/o operation and the management of writing buffers from the buffer cache by potentially a number of database writer processes;
17625 dict/libcache additional library Cache supporting functions
17990 plsql plsql 'standard' package related issues
18000 txn/lcltx transaction and savepoint management operations 
19000 optim/cbo cost based optimizer related operations
20000 ram/index bitmap index and index related errors.
20400 ram/partnmap operations on partition related objects
20500 server/rcv server recovery related operation
21000 repl/defrdrpc, 
repl/snapshot,
repl/trigger
replication related features
23000 oltp/qs AQ related errors.
24000 dict/libcache operations associated with managing stored outlines
25000 server/rcv tablespace management operations


字符串类型的Ora-600

Error Mnemonic(s) Functionality Description
ain ainp  ram/index ain - alter index; ainp -  alter index partition management operation
apacb  optim/rbo used by optimizer in connect by processing
atb atbi atbo ctc ctci cvw  dict/sqlddl alter table , create table (IOT) or cluster operations as well as create view related operations (with constraint handling functionality)
dbsdrv sqllang/parse alter / create database operation
ddfnet  progint/distrib various distributed operations on remote dictionary
delexe  sqlexec/dmldrv manages the delete statement operation
dix  ram/index manages drop index or validate index operation 
dtb  dict/sqlddl manages drop table operation
evaa2g evah2p evaa2g  dbproc/sqlfunc various functions involves in evaluating operand outcomes such
as : addition , average, OR operator, bites AND , bites OR, concatenation, as well as Oracle related functions : count(), dump() , etc. The list is extensive.
expcmo expgon  dbproc/expreval handles expression evaluation with respect to two operands being equivalent
gra  security/dac manages the granting and revoking of privilege rights to a user
gslcsq  plsldap support for operations with an LDAP server
insexe  sqlexec/dmldrv handles the insert statement operation
jox  progint/opi functionality associated with the Java compiler and with the Java runtime environment within the Server
k2c k2d  progint/distrib support for database to database operation in distributed environements as well as providing, with respect to the 2-phase commit protocol, a globally unique Database id
k2g k2l txn/disttx support for the 2 phase commit protocol protocol and the coordination of the various states in managing the distributed transaction
k2r k2s k2sp  progint/distrib k2r - user interface for managing distributed transactions and
combining distributed results ; k2s - handles logging on, starting a transaction, ending a transaction and recovering a transaction; k2sp - management of savepoints in a distributed environment.
k2v  txn/disttx handles distributed recovery operation
kad  cartserv/picklercs handles OCIAnyData implementation 
kau  ram/data manages the modification of indexes for inserts, updates and delete operations for IOTs as well as modification of indexes for IOTs
kcb kcbb kcbk kcbl kcbs kcbt kcbw kcbz  cache manages Oracle's buffer cache operation as well as operations used by capabilities such as direct load, has clusters , etc.
kcc kcf  rcv manages and coordinates operations on the control file(s)
kcit  context/trigger internal trigger functionality 
kck  rcv compatibility related checks associated with the compatible parameter
kcl  cache background lck process which manages locking in a RAC or parallel server multiple instance environment
kco kcq kcra kcrf kcrfr kcrfw kcrp kcrr kcs kct kcv  rcv various buffer cache operation such as quiesce operation , managing fast start IO target, parallel recovery operation , etc. 
kd  ram/data support for row level dependency checking and some log miner operations
kda  ram/analyze manages the analyze command and collection of statistics
kdbl kdc kdd  ram/data support for direct load operation, cluster space management and deleting rows
kdg  ram/analyze gathers information about the underlying data and is used by the analyze command
kdi kdibc3 kdibco kdibh kdibl kdibo kdibq kdibr kdic kdici kdii kdil kdir kdis kdiss kdit kdk  ram/index support of the creation of indexes on tables an IOTs and index look up 
kdl kdlt  ram/object lob and temporary lob management
kdo  ram/data operations on data such as inserting a row piece or deleting a row piece 
kdrp  ram/analyze underlying support for operations provided by the dbms_repair package
kds kdt kdu  ram/data operations on data such as retrieving a row and updating existing row data
kdv kdx  ram/index functionality for dumping index and managing index blocks
kfc kfd kfg   asm support for ASM file and disk operations
kfh kfp kft  rcv support for writing to file header and transportable tablespace operations
kgaj kgam kgan kgas kgat kgav kgaz  argusdbg/argusdbg support for Java Debug Wire Protocol (JDWP) and debugging facilites
kgbt kgg kgh kghs kghx kgkp vos kgbt - support for BTree operations; kgg - generic lists processing;
kgh - Heap Manager : managing the internal structures withing the SGA / UGA / PGA and ensures their integrity; kghs - Heap manager with Stream support; kghx - fixed sized shared memory manager; kgkp - generic services scheduling policies
kgl kgl2 kgl3 kgla kglp kglr kgls  dict/libcache generic library cache operation 
kgm kgmt  ilms support for inter language method services - or calling one language from another
kgrq kgsk kgski kgsn kgss  vos support for priority queue and scheduling; capabilities for Numa support;  Service State object manager
kgupa kgupb kgupd0 kgupf kgupg kgupi kgupl kgupm kgupp kgupt kgupx kguq2 kguu  vos Service related activities activities associated with for Process
monitor (PMON); spawning or creating of background processes; debugging; managing process address space;  managing the background processes; etc.
kgxp  vos inter process communication related functions
kjak kjat kjb kjbl kjbm kjbr kjcc kjcs kjctc kjcts kjcv kjdd kjdm kjdr kjdx kjfc kjfm kjfs kjfz kjg kji kjl kjm kjp kjr kjs kjt kju kjx  ccl/dlm dlm related functionality ; associated with RAC or parallel server operation
kjxgf kjxgg kjxgm kjxgn kjxgna kjxgr  ccl/cgs provides communication & synchronisation associated with GMS or OPS related functionality as well as name service and OPS Instance Membership Recovery Facility
kjxt  ccl/dlm DLM request message management
kjzc kjzd kjzf kjzg kjzm  ccl/diag support for diagnosibility amongst OPS related services
kkb  dict/sqlddl support for operatoins which load/change table definitions
kkbl kkbn kkbo  objsupp/objddl support for tables with lobs , nested tables and varrays as well as columns with objects
kkdc kkdl kkdo  dict/dictlkup support for constraints, dictionary lookup and dictionary support for objects
kke  optim/cbo query engine cost engine; provides support functions that provide cost estimates for queries under a number of different circumstances
kkfd  sqlexec/pq support for performing parallel query operation
kkfi  optim/cbo optimizer support for matching of expressions against functional ndexes
kkfr kkfs  sqlexec/pq support for rowid range handling as well as for building parallel query query operations
kkj  jobqs/jobq job queue operation
kkkd kkki  dict/dbsched resource manager related support. Additionally, provides underlying functions provided by dbms_resource_manager and dbms_resource_manager_privs packages
kklr  dict/sqlddl provides functions used to manipulate LOGGING and/or RECOVERABLE attributes of an object (non-partitioned table or index or  partitions of a partitioned table or index)
kkm kkmi  dict/dictlkup provides various semantic checking functions 
kkn  ram/analyze support for the analyze command
kko kkocri  optim/cbo Cost based Optimizer operation : generates alternative execution
plans in order to find the optimal / quickest access to the data.  Also , support to determine cost and applicability of  scanning a given index in trying to create or rebuild an index or a partition thereof
kkpam kkpap  ram/partnmap support for mapping predicate keys expressions to equivalent partitions
kkpo kkpoc kkpod  dict/partn support for creation and modification of partitioned objects
kkqg kkqs kkqs1 kkqs2 kkqs3 kkqu kkqv kkqw  optim/vwsubq query rewrite operation 
kks kksa kksh kksl kksm  dict/shrdcurs support for managing shared cursors/ shared sql
kkt  dict/sqlddl support for creating, altering and dropping trigger definitions as well as handling the trigger operation
kkxa  repl/defrdrpc underlying support for dbms_defer_query package operations
kkxb  dict/sqlddl library cache interface for external tables 
kkxl  dict/plsicds underlying support for the dbms_lob package
kkxm  progint/opi support for inter language method services
kkxs  dict/plsicds underlying support for the dbms_sys_sql package 
kkxt  repl/trigger support for replication internal trigger operation
kkxwtp  progint/opi entry point into the plsql compiler
kky  drv support for alter system/session commands
kkz kkzd kkzf kkzg kkzi kkzj kkzl kkzo kkzp kkzq kkzr kkzu kkzv  repl/snapshot support for snapshots or Materialized View validation and operation
kla klc klcli klx  tools/sqlldr support for direct path sql loader operation
kmc kmcp kmd kmm kmr  mts/mts support for Multi Threaded server operation (MTS) : manange and
operate the virtual circuit mechanism, handle the dispatching of massages, administer shared servers and for collecting and maintaining statistics associated with MTS
knac knafh knaha knahc knahf knahs  repl/apply replication apply operation associated with Oracle streams
kncc  repl/repcache support for replication related information stored and maintained in library cache
kncd knce  repl/defrdrpc replication related enqueue and dequeue of transction data as well as other queue related operations 
kncog  repl/repcache support for loading replicaiton object group information into library cache
kni  repl/trigger support for replication internal trigger operation
knip knip2 knipi knipl knipr knipu knipu2 knipx  repl/intpkg support for replication internal package operation. 
kno  repl/repobj support for replication objects 
knp knpc knpcb knpcd knpqc knps  repl/defrdrpc operations assocaied with propagating transactions to a remote node and coordination of this activity.
knst  repl/stats replication statistics collection
knt kntg kntx  repl/trigger support for replication internal trigger operation
koc  objmgmt/objcache support for managing ADTs objects in the OOCI heap
kod  objmgmt/datamgr support for persistent storage for objects : for read/write objects, to manage object IDs, and to manage object concurrency and recovery. 
koh  objmgmt/objcache object heap manager provides memory allocation services for objects
koi  objmgmt/objmgr support for object types
koka  objsupp/objdata support for reading images, inserting images, updating images, and deleting images based on object references (REFs).
kokb kokb2  objsupp/objsql support for nested table objects
kokc  objmgmt/objcache support for pinning , unpinning and freeing objects
kokd  objsupp/datadrv driver on the server side for managing objects
koke koke2 koki  objsupp/objsql support for managing objects
kokl  objsupp/objdata lob access
kokl2  objsupp/objsql lob DML and programmatic interface support
kokl3  objsupp/objdata object temporary LOB support
kokle kokm  objsupp/objsql object SQL evaluation functions
kokn  objsupp/objname naming support for objects
koko  objsupp/objsup support functions to allow oci/rpi to communicate with Object Management Subsystem (OMS).
kokq koks koks2 koks3 koksr  objsupp/objsql query optimisation for objects , semantic checking and semantic rewrite operations
kokt kokt2 kokt3  objsupp/objddl object compilation type manager
koku kokv  objsupp/objsql support for unparse object operators and object view support
kol kolb kole kolf kolo  objmgmt/objmgr support for object Lob buffering , object lob evaluation and object Language/runtime functions for Opaque types
kope2 kopi2 kopo kopp2 kopu koputil kopz objmgmt/pickler 8.1 engine implementation,  implementation of image ops for 8.1+ image format together with various pickler related support functions
kos  objsupp/objsup object Stream interfaces for images/objects
kot kot2 kotg  objmgmt/typemgr support for dynamic type operations to create, delete, and  update types.
koxs koxx  objmgmt/objmgt object generic image Stream routines and miscellaneous generic object functions
kpcp kpcxlt  progint/kpc Kernel programmatic connection pooling and kernel programmatic common type XLT translation routines
kpki  progint/kpki kernel programatic interface support
kpls  cartserv/corecs support for string formatting operations
kpn  progint/kpn support for server to server communication 
kpoal8 kpoaq kpob kpodny kpodp kpods kpokgt kpolob kpolon kpon  progint/kpo support for programmatic operations 
kpor  progint/opi support for streaming protocol used by replication
kposc  progint/kpo support for scrollable cursors
kpotc  progint/opi oracle side support functions for setting up trusted external procedure callbacks
kpotx kpov  progint/kpo support for managing local and distributed transaction coordination.
kpp2 kpp3  sqllang/parse kpp2 - parse routines for dimensions;
kpp3 - parse support for create/alter/drop summary  statements
kprb kprc  progint/rpi support for executing sql efficiently on the Oracle server side as well as for copying data types during rpi operations
kptsc  progint/twotask callback functions provided to all streaming operation as part of replication functionality 
kpu kpuc kpucp  progint/kpu Oracle kernel side programmatic user interface,  cursor management functions and client side connection pooling support
kqan kqap kqas  argusdbg/argusdbg server-side notifiers and callbacks for debug operations. 
kql kqld kqlp  dict/libcache SQL Library Cache manager - manages the sharing of sql statements in the shared pool
kqr  dict/rowcache row cache management. The row cache consists of a set of facilities to provide fast access to table definitions and locking capabilities.
krbi krbx krby krcr krd krpi  rcv Backup and recovery related operations :
krbi
- dbms_backup_restore package underlying support.; krbx -  proxy copy controller; krby - image copy; krcr - Recovery Controlfile Redo; krd - Recover Datafiles (Media & Standby Recovery);  krpi - support for the package : dbms_pitr
krvg krvt  rcv/vwr krvg - support for generation of redo associated with DDL; krvt - support for redo log miner viewer (also known as log miner)
ksa ksdp ksdx kse ksfd ksfh ksfq ksfv ksi ksim ksk ksl ksm ksmd ksmg ksn ksp kspt ksq ksr kss ksst ksu ksut  vos support for various kernel associated capabilities
ksx sqlexec/execsvc support for query execution associated with temporary tables
ksxa ksxp ksxr  vos support for various kernel associated capabilities in relation to OPS or RAC operation
kta  space/spcmgmt support for DML locks and temporary tables associated with table access
ktb ktbt ktc  txn/lcltx transaction control operations at the block level : locking block, allocating space within the block , freeing up space, etc.
ktec ktef ktehw ktein ktel kteop kteu  space/spcmgmt support for extent management operations :
ktec
- extent concurrency operations; ktef - extent format; ktehw - extent high water mark operations; ktein - extent  information operations; ktel - extent support for sql loader; kteop - extent operations : add extent to segment, delete extent, resize extent, etc. kteu - redo support for operations changing segment header / extent map
ktf  txn/lcltx flashback support
ktfb ktfd ktft ktm  space/spcmgmt ktfb - support for bitmapped space manipulation of files/tablespaces;  ktfd - dictionary-based extent management; ktft - support for temporary file manipulation; ktm - SMON operation
ktp ktpr ktr ktri  txn/lcltx ktp - support for parallel transaction operation; ktpr - support
for parallel transaction recovery; ktr - kernel transaction read consistency; 

ktri - support for dbms_resumable package
ktsa ktsap ktsau ktsb ktscbr ktsf ktsfx ktsi ktsm ktsp ktss ktst ktsx ktt kttm  space/spcmgmt support for checking and verifying space usage
ktu ktuc ktur ktusm  txn/lcltx internal management of undo and rollback segments
kwqa kwqi kwqic kwqid kwqie kwqit kwqj kwqm kwqn kwqo kwqp kwqs kwqu kwqx  oltp/qs support for advanced queuing :
kwqa
- advanced queue administration; kwqi - support for AQ PL/SQL trusted callouts; kwqic - common AQ support functions; kwqid - AQ
dequeue support; kwqie - AQ enqueu support ; kwqit - time management operation ; kwqj - job queue scheduler for propagation; kwqm
- Multiconsumer queue IOT support; kwqn - queue notifier; kwqo - AQ support for checking instType checking options; kwqp - queueing propagation; kwqs - statistics handling; kwqu - handles lob data. ; kwqx - support for handling transformations
kwrc kwre  oltp/re rules engine evaluation
kxcc kxcd kxcs  sqllang/integ constraint processing
kxdr sqlexec/dmldrv DML driver entrypoint 
kxfp kxfpb kxfq kxfr kxfx  sqlexec/pq parallel query support
kxhf kxib  sqlexec/execsvc khhf- support for hash join file and memory management; kxib - index buffering operations
kxs  dict/instmgmt support for executing shared cursors
kxti kxto kxtr  dbproc/trigger support for trigger operation
kxtt  ram/partnmap support for temporary table operations
kxwph  ram/data support for managing attributes of the segment of a table / cluster / table-partition
kza  security/audit support for auditing operations 
kzar  security/dac support for application auditing
kzck  security/crypto encryption support
kzd  security/dac support for dictionary access by security related functions 
kzec  security/dbencryption support inserting and retrieving encrypted objects into and out of the database
kzfa kzft  security/audit support for fine grained auditing
kzia  security/logon identification and authentication operations
kzp kzra kzrt kzs kzu kzup  security/dac security related operations associated with privileges 
msqima msqimb  sqlexec/sqlgen support for generating sql statments
ncodef npi npil npixfr  progint/npi support for managing remote network connection from  within the server itself
oba  sqllang/outbufal operator buffer allocate for various types of operators : concatenate, decode, NVL, etc.  the list is extensive.
ocik  progint/oci OCI oracle server functions
opiaba opidrv opidsa opidsc opidsi opiexe opifch opiino opilng opipar opipls opirip opitsk opix  progint/opi OPI Oracle server functions - these are at the top of the server stack and are called indirectly by ythe client in order to server the client request.
orlr  objmgmt/objmgr support for  C langauge interfaces to user-defined types (UDTs) 
orp  objmgmt/pickler oracle's external pickler / opaque type interfaces
pesblt pfri pfrsqc  plsql/cox pesblt - pl/sql built in interpreter; pfri - pl/sql runtime; pfrsqc - pl/sql callbacks for array sql and dml with returning
piht  plsql/gen/utl support for pl/sql implementation of utl_http package
pirg  plsql/cli/utl_raw support for pl/sql implementation of utl_raw package
pism  plsql/cli/utl_smtp support for pl/sql implementation of utl_smtp package
pitcb  plsql/cli/utl_tcp support for pl/sql implementation of utl_tcp package
piur  plsql/gen/utl_url support for pl/sql implementation of utl_url package
plio  plsql/pkg pl/sql object instantiation 
plslm  plsql/cox support for NCOMP processing
plsm pmuc pmuo pmux  objmgmt/pol support for pl/sql handling of collections
prifold priold  plsql/cox support to allow rpc forwarding to an older release 
prm  sqllang/param parameter handling associated with sql layer
prsa prsc prssz  sqllang/parse prsa - parser for alter cluster command; prsc - parser for create database command; prssz - support for parse context to be saved
psdbnd psdevn  progint/dbpsd psdbnd - support for managing bind variables; psdevn - support for pl/sql debugger
psdicd  progint/plsicds small number of ICD to allow pl/sql to call into 'C' source
psdmsc psdpgi  progint/dbpsd psdmsc - pl/sql system dependent miscellaneous functions ; psdpgi - support for opening and closing cursors in pl/sql
psf  plsql/pls pl/sql service related functions for instantiating called pl/sql unit in library cache
qbadrv qbaopn  sqllang/qrybufal provides allocation of buffer and control structures in query execution 
qcdl qcdo  dict/dictlkup qcdl - query compile semantic analysis; qcdo - query compile dictionary support for objects
qci  dict/shrdcurs support for SQL language parser and semantic analyser
qcop qcpi qcpi3 qcpi4 qcpi5  sqllang/parse support for query compilation parse phase
qcs qcs2 qcs3 qcsji qcso  dict/dictlkup support for semantic analysis by SQL compiler
qct qcto  sqllang/typeconv qct - query compile type check operations; qcto -  query compile type check operators
qcu  sqllang/parse various utilities provided for sql compilation
qecdrv  sqllang/qryedchk driver performing high level checks on sql language query capabilities
qerae qerba qerbc qerbi qerbm qerbo qerbt qerbu qerbx qercb qercbi qerco
qerdl qerep qerff qerfi qerfl qerfu qerfx qergi qergr qergs qerhc qerhj qeril qerim qerix qerjm qerjo qerle qerli qerlt qerns qeroc qeroi qerpa qerpf qerpx qerrm qerse qerso qersq qerst qertb qertq qerua qerup qerus qervw qerwn qerxt 
sqlexec/rowsrc row source operators :
qerae - row source
(And-Equal) implementation; qerba - Bitmap Index AND row source; qerbc - bitmap index compaction row source; qerbi - bitmap index
creation row source; qerbm - QERB Minus row source; qerbo  - Bitmap Index OR row source; qerbt - bitmap convert row source; qerbu - Bitmap Index Unlimited-OR row source; qerbx - bitmap index access row source; qercb - row source: connect by; qercbi - support
for connect by; qerco - count row source; qerdl - row source delete; qerep - explosion row source; qerff - row source fifo buffer;
qerfi  - first row row source; qerfl  - filter row source definition; qerfu - row source: for update; qerfx - fixed table row source; qergi - granule iterator row source; qergr - group by rollup row source; qergs - group by sort row source; qerhc - row
sources hash clusters; qerhj - row source Hash Join;  qeril  - In-list row source; qerim - Index Maintenance row source; qerix - Index row source; qerjo - row source: join; qerle - linear execution row source implementation; qerli - parallel create
index; qerlt - row source populate Table;  qerns  - group by No Sort row source; qeroc - object collection iterator row source; qeroi - extensible indexing query component; qerpa - partition row sources; qerpf - query execution row source: prefetch;
qerpx - row source: parallelizer; qerrm - remote row source; qerse - row source: set implementation; qerso - sort row source; qersq
- row source for sequence number; qerst  - query execution row sources: statistics; qertb - table row source; qertq  - table queue row source; qerua - row source : union-All;

qerup - update row source; qerus - upsert row source ; qervw - view row source; qerwn - WINDOW row source; qerxt - external table fetch row source
qes3t qesa qesji qesl qesmm qesmmc  sqlexec/execsvc run time support for sql execution
qkacon qkadrv qkajoi qkatab qke qkk qkn qkna qkne  sqlexec/rwsalloc SQL query dynamic structure allocation routines
qks3t  sqlexec/execsvc query execution service associated with temp table transformation
qksmm qksmms qksop  sqllang/compsvc qksmm -  memory management services for the SQL compiler; qksmms - memory management simulation services for the SQL compiler; qksop - query compilation service for operand processing
qkswc  sqlexec/execsvc support for temp table transformation associated for with clause.
qmf  xmlsupp/util support for ftp server; implements processing of ftp commands
qmr qmrb qmrs  xmlsupp/resolver support hierarchical resolver 
qms  xmlsupp/data support for storage and retrieval of XOBs
qmurs  xmlsupp/uri support for handling URIs
qmx qmxsax  xmlsupp/data qmx - xml support; qmxsax - support for handling sax processing
qmxtc  xmlsupp/sqlsupp support for ddl  and other operators related to the sql XML support
qmxtgx  xmlsupp support for transformation : ADT -> XML
qmxtsk  xmlsupp/sqlsupp XMLType support functions 
qsme  summgmt/dict summary management expression processing
qsmka qsmkz  dict/dictlkup qsmka - support to analyze request in order to determine whether a summary could be created that would be useful; qsmkz - support for create/alter summary semantic analysis 
qsmp qsmq qsmqcsm qsmqutl  summgmt/dict qsmp - summary management partition processing; qsmq - summary
management dictionary access; qsmqcsm - support for create / drop / alter summary and related dimension operations; qsmqutl - support for summaries 
qsms  summgmt/advsvr summary management advisor
qxdid  objsupp/objddl support for domain index ddl operations
qxidm  objsupp/objsql support for extensible index dml operations
qxidp  objsupp/objddl support for domain index ddl partition operations
qxim  objsupp/objsql extensible indexing support for objects
qxitex qxopc qxope  objsupp/objddl qxitex - support for create / drop indextype; qxope - execution time support for operator  callbacks; qxope - execution time support for operator DDL
qxopq qxuag qxxm  objsupp/objsql qxopq - support for queries with user-defined operators; qxuag - support for user defined aggregate processing; qxxm - queries involving external tables 
rfmon rfra rfrdb rfrla rfrm rfrxpt  drs implements 9i data guard broker monitor 
rnm  dict/sqlddl manages rename statement operation
rpi  progint/rpi recursive procedure interface which handles the the environment setup where multiple recursize statements are executed from one top level statement
rwoima  sqlexec/rwoprnds row operand operations
rwsima  sqlexec/rowsrc row source implementation/retrieval according to the defining query
sdbima  sqlexec/sort manages and performs sort operation
selexe  sqlexec/dmldrv handles the operation of select statement execution
skgm  osds platform specific memory management rountines interfacing with O.S. allocation functions
smbima sor  sqlexec/sort manages and performs sort operation
sqn  dict/sqlddl support for parsing references to sequences
srdima srsima stsima  sqlexec/sort manages and performs sort operation
tbsdrv  space/spcmgmt operations for executing create / alter / drop tablespace and related supporting functions
ttcclr ttcdrv ttcdty ttcrxh ttcx2y  progint/twotask two task common layer which provides high level interaction and
negotiation functions for Oracle client when communicating with the server.  It also provides important function of converting client side data / data types into equivalent on the server and vice versa
uixexe ujiexe updexe upsexe  sqlexec/dmldrv support for : index maintenance operations, the execution of the
update statement and associated actions connected with update as well as the upsert command which combines the operations of update and insert
vop  optim/vwsubq view optimisation related functionality
xct  txn/lcltx support for the management of transactions and savepoint operations
xpl  sqlexec/expplan support for the explain plan command
xty  sqllang/typeconv type checking functions
zlke  security/ols/intext label security error handling component


Pages

Powered by Movable Type 6.3.2

About this Archive

This page is an archive of entries from August 2010 listed from newest to oldest.

July 2010 is the previous archive.

September 2010 is the next archive.

回到 首页 查看最近文章或者查看所有归档文章.