Inventors list

Assignees list

Classification tree browser

Top 100 Inventors

Top 100 Assignees


Igor Ostrovsky, Bellevue US

Igor Ostrovsky, Bellevue, WA US

Patent application numberDescriptionPublished
20090299958REORDERING OF DATA ELEMENTS IN A DATA PARALLEL SYSTEM - A query that identifies an input data source is received. The input data source is partitioned into a plurality of partitions. Each of the partitions includes a set of data elements with an associated set of indices for indicating an ordering of the data elements. A query type for a query operator in the received query is identified. It is determined whether a reordering of data elements will be performed based on the identified query type. The data elements in at least one of the partitions are reordered when it is determined based on the identified query type that reordering will be performed.12-03-2009
20090299959QUERY RESULT GENERATION BASED ON QUERY CATEGORY AND DATA SOURCE CATEGORY - A method includes receiving a query that identifies an input data source. A query category for a query operator in the received query is identified. A data source category for the input data source is also identified. A results object is generated based on the identified query category and the identified data source category. The results object supports at least one of random access and sequential access to results produced by the query operator.12-03-2009
20090300766BLOCKING AND BOUNDING WRAPPER FOR THREAD-SAFE DATA COLLECTIONS - A membership interface provides procedure headings to add and remove elements of a data collection, without specifying the organizational structure of the data collection. A membership implementation associated with the membership interface provides thread-safe operations to implement the interface procedures. A blocking-bounding wrapper on the membership implementation provides blocking and bounding support separately from the thread-safety mechanism.12-03-2009
20090319992CONFIGURABLE PARTITIONING FOR PARALLEL DATA - A data partitioning interface provides procedure headings to create data partitions for processing data elements in parallel, and for obtaining data elements to process, without specifying the organizational structure of a data partitioning. A data partitioning implementation associated with the data partitioning interface provides operations to implement the interface procedures, and may also provide dynamic partitioning to facilitate load balancing.12-24-2009
20090320005CONTROLLING PARALLELIZATION OF RECURSION USING PLUGGABLE POLICIES - A parallelism policy object provides a control parallelism interface whose implementation evaluates parallelism conditions that are left unspecified in the interface. User-defined and other parallelism policy procedures can make recommendations to a worker program for transitioning between sequential program execution and parallel execution. Parallelizing assistance values obtained at runtime can be used in the parallelism conditions on which the recommendations are based. A consistent parallelization policy can be employed across a range of parallel constructs, and inside recursive procedures.12-24-2009
20100077384PARALLEL PROCESSING OF AN EXPRESSION - A method includes compiling an expression into executable code that is configured to create a data structure that represents the expression. The expression includes a plurality of sub-expressions. The code is executed to create the data structure. The data structure is evaluated using a plurality of concurrent threads, thereby processing the expression in a parallel manner.03-25-2010
20100162211PROVIDING ACCESS TO A DATASET IN A TYPE-SAFE MANNER - A method of providing access to a dataset in a type-safe manner includes storing a dataset including a plurality of data elements and a corresponding plurality of order keys for indicating an ordering of the data elements. Each order key is associated with one of the data elements. An interface to the dataset is generated that is parameterized by an element type parameter and a key type parameter. The interface is configured to provide access to the data elements and the order keys in the dataset in a type-safe manner.06-24-2010
20100250564TRANSLATING A COMPREHENSION INTO CODE FOR EXECUTION ON A SINGLE INSTRUCTION, MULTIPLE DATA (SIMD) EXECUTION - A method of translating a comprehension into executable code for execution on a SIMD (Single Instruction, Multiple Data stream) execution unit, includes receiving a user specified comprehension. The comprehension is compiled into a first set of executable code. An intermediate representation is generated based on the first set of executable code. The intermediate representation is translated into a second set of executable code that is configured to be executed by a SIMD execution unit.09-30-2010
20100250613QUERY PROCESSING USING ARRAYS - A method of processing a query includes receiving a language integrated query including at least one operator, and operating on an input array with the at least one operator. An output array is generated by the at least one operator based on the operation on the input array.09-30-2010
20110125805GROUPING MECHANISM FOR MULTIPLE PROCESSOR CORE EXECUTION - A concurrent grouping operation for execution on a multiple core processor is provided. The grouping operation is provided with a sequence or set of elements. In one phase, each worker receives a partition of a sequence of elements to be grouped. The elements of each partition are arranged into a data structure, which includes one or more keys where each key corresponds to a value list of one or more of the received elements associated with that key. In another phase, the data structures created by each worker are merged so that the keys and corresponding elements for the entire sequence of elements exist in one data structure. Recursive merging can be completed in a constant time, which is not proportional to the length of the sequence.05-26-2011
20110154359HASH PARTITIONING STREAMED DATA - The present invention extends to methods, systems, and computer program products for partitioning streaming data. Embodiments of the invention can be used to hash partition a stream of data and thus avoids unnecessary memory usage (e.g., associated with buffering). Hash partitioning can be used to split an input sequence (e.g., a data stream) into multiple partitions that can be processed independently. Other embodiments of the invention can be used to hash repartition a plurality of streams of data. Hash repartitioning converts a set of partitions into another set of partitions with the hash partitioned property. Partitioning and repartitioning can be done in a streaming manner at runtime by exchanging values between worker threads responsible for different partitions.06-23-2011

Patent applications by Igor Ostrovsky, Bellevue, WA US