发明名称 Method and system for parallelizing database requests
摘要 Methods and systems are described for applying the use of shards within a single memory address space. A database request is processed by providing the request from a client to a processor, the processor then distributing the request to multiple threads within a single process but executing in a shared memory address environment, wherein each thread performs the request on a distinct shard, and aggregating the results of the multiple threads being aggregated and returning a final result to the client. By parallelizing operations in this way, the request response time can be reduced and the total amount of communication overhead can be reduced.
申请公布号 US9171044(B2) 申请公布日期 2015.10.27
申请号 US201012832044 申请日期 2010.07.07
申请人 Oracle International Corporation 发明人 Schleimer Stephen;Rishel Ryder B.;Taylor Derek A.
分类号 G06F7/00;G06F3/00;H04N21/432;G06F17/30 主分类号 G06F7/00
代理机构 Hickman Palermo Becker Bingham LLP 代理人 Hickman Palermo Becker Bingham LLP
主权项 1. A method comprising: storing, by a plurality of threads of a common process running on a computing device, a plurality of separate data subsets in a common address space assigned to the common process in a semiconductor memory of the computing device; wherein the plurality of threads does not share access to the plurality of separate data subsets even though the plurality of separate data subsets are stored in the common address space; wherein communication between the plurality of threads of the common process is accomplished by storing messages in the common address space; receiving a database request; transforming the database request into a plurality of sub-requests; executing the plurality of sub-requests by the plurality of threads wherein execution of a particular sub-request of the plurality of sub-requests is performed on a particular separate data subset of the plurality of separate data subsets by a particular thread of the plurality of threads of the common process that stores the particular separate data subset; producing a final result set by aggregating a plurality of intermediate result sets generated and stored in the common address space by the plurality of threads; wherein the method is performed by the computing device.
地址 Redwood Shores CA US