Framework for dynamically generating tuple and page classes

US8935293B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-8935293-B2
Application numberUS-39646409-A
CountryUS
Kind codeB2
Filing dateMar 2, 2009
Priority dateMar 2, 2009
Publication dateJan 13, 2015
Grant dateJan 13, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques for reducing the memory used for processing events received in a data stream are provided. This may be achieved by reducing the memory required for storing tuples. A method for processing a data stream includes receiving a tuple and determining a tuple specification that defines a layout of the tuple. The layout identifies one or more data types that are included in the tuple. A tuple class corresponding to the tuple specification may be determined. A tuple object based on the tuple class is instantiated, and during runtime of the processing system. The tuple object is stored in a memory.

First claim

Opening claim text (preview).

What is claimed is: 1. A method performed by a processing system for processing a data stream comprising events, the method comprising: receiving a tuple; determining a tuple specification defining a layout of the tuple, wherein the layout identifies one or more data types included in the tuple; determining a tuple class corresponding to the tuple specification based on the layout; instantiating, based on the particular tuple class, a tuple object that includes an array for at least one of the one or more data types identified in the tuple specification; and storing the tuple object in a memory; wherein the tuple object has a structure including a particular object which includes an array for each of the one or more data types identified in the tuple specification. 2. The method of claim 1 , wherein the tuple specification is determined during creation of the data stream in response to a stream creation statement that is issued by a user of the processing system and that indicates the tuple specification; and wherein determining the tuple class corresponding to the tuple specification comprises locating, in a cache that contains tuple classes that were dynamically generated during the runtime of the processing system, a particular tuple class whose members have data types that are identical to the one or more data types identified by the layout. 3. The method of claim 1 , further comprising: generating the particular tuple class to correspond with the tuple specification; and loading, using byte code manipulation libraries, the particular tuple class to a Virtual Machine during runtime of the processing system and prior to instantiating the tuple object. 4. The method of claim 1 , wherein a memory requirement of the tuple object is less than a memory requirement of a static tuple object that is defined by the processing system; wherein the static tuple object is based on a tuple class that is generated statically within the processing system and that supports all data types including data types not identified by the layout; and wherein the particular tuple class supports only the one or more data types identified by the layout. 5. A method performed by a processing system for processing a data stream comprising events, the method comprising: receiving a tuple; determining a tuple specification defining a layout of the tuple, wherein the layout identifies one or more data types included in the tuple; dynamically, during runtime of the processing system, determining a page class corresponding to the tuple specification; instantiating a page object based on the page class; and storing a dynamic page based on the page object in a memory; wherein the page object has a structure including an array for each of the one or more data types identified in the tuple specification. 6. The method of claim 5 , wherein the page object is an array of tuples of a plurality of tuples. 7. The method of claim 5 , further comprising: determining whether a pre-existing page class corresponds to the tuple specification; and instantiating the page based on the pre-existing page class. 8. The method of claim 5 , further comprising: generating the page class to correspond with the tuple specification; and loading, using byte code manipulation libraries, the page class to a Virtual Machine during runtime of the event processing system and prior to instantiating the dynamic page. 9. A non-transitory computer-readable storage medium storing a computer program product for processing a data stream comprising events, the computer program product comprising: computer code for receiving a tuple; computer code for determining a tuple specification defining a layout of the tuple, wherein the layout identifies one or more data types included in the tuple; computer code for determining a tuple class corresponding to the tuple specification based on the layout; computer code for instantiating, based on the particular tuple class, a tuple object that includes an array for a particular data type identified in the tuple specification; and computer code for storing the tuple object in a memory; wherein the tuple object has a structure including a particular object which includes an array for each of one or more data types identified in the tuple specification. 10. The non-transitory computer-readable storage medium according to claim 9 , the computer program product further comprising: computer code for generating the particular tuple class to correspond with the tuple specification; and computer code for loading, using byte code manipulation libraries, the particular tuple class to a Virtual Machine during runtime of the processing system and prior to instantiating the tuple object. 11. The non-transitory computer-readable storage medium according to claim 9 , wherein the tuple specification is determined during creation of the data stream in response to a stream creation statement that is issued by a user of the processing system and that indicates the tuple specification; and wherein determining the tuple class corresponding to the tuple specification comprises locating, in a cache that contains tuple classes that were dynamically generated during the runtime of the processing system, a particular tuple class whose members have data types that are identical to the one or more data types identified by the layout. 12. The non-transitory computer-readable storage medium according to claim 9 , wherein the tuple object has a structure including a particular object which includes a multi-element data structure for each of one or more data types identified in the tuple specification. 13. A system for processing a data stream comprising events, the system including a processor and a memory device including instructions that, when executed by the processor, cause the processor to: receive a tuple; determine a tuple specification defining a layout that identifies a data type included in the tuple; determine a tuple class corresponding to the tuple specification; instantiate an array-including tuple object based on the tuple class; and store the tuple object in a memory; wherein the tuple object has a structure including a particular object which includes an array for each of one or more data types identified in the tuple specification. 14. The system according to claim 13 , wherein the instructions, when executed by the processor, further cause the processor to: generate the tuple class to correspond with the tuple specification; and load, using byte code manipulation libraries, the tuple class to a Virtual Machine during runtime of the processing system and prior to instantiating the tuple object. 15. The system according to claim 13 , wherein the tuple object has a structure including a particular object which includes a multi-element data structure for each of one or more data types identified in the tuple specification.

Assignees

Inventors

Classifications

  • Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading · CPC title

  • Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US8935293B2 cover?
Techniques for reducing the memory used for processing events received in a data stream are provided. This may be achieved by reducing the memory required for storing tuples. A method for processing a data stream includes receiving a tuple and determining a tuple specification that defines a layout of the tuple. The layout identifies one or more data types that are included in the tuple. A tupl…
Who is the assignee on this patent?
Park Hoyong, Jain Namit, Srinivasan Anand, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F9/44521. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 13 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).