Pipelineable and parallelizable streaming parsers for querying structured data-interchange information
AssigneeServiceNow, Inc.
InventorKhosrow Jian Motamedi
Life of this patent
Estimating the term…
Loading patent…
AssigneeServiceNow, Inc.
InventorKhosrow Jian Motamedi
Estimating the term…
A computing system includes a processor and memory. The memory includes instruction code that causes the processor to generate first and second parser instances and associate the first parser and the second parser with respective first and second search queries. The processor controls the first parser to repeatedly obtain data from the data stream in blocks until the first parser finishes identifying elements in the data stream associated with its search path. The processor controls the second parser to repeatedly obtain blocks from the first parser when the blocks obtained by the first parser have not been searched by the second parser, and controls the second parser to obtain blocks from the data stream when the blocks obtained by the first parser have been searched by the second parser and the first parser has finished searching.
A system, comprising:
A computer-implemented method comprising:
An article of manufacture including a non-transitory computer-readable medium, having stored thereon program instructions that, when executed by a processor, cause the processor to perform operations comprising:
Dependencies are inferred from the claim text.
From the US filing history. Foreign family members aren’t listed.
Query execution: data stream processing; Continuous queries
Querying: presentation of query results
Computing and data processing
About 12 years 11 months of term left · ends 2 Oct 2039 (estimated)
Drawings are temporarily unavailable. Open the PDF at USPTO
Over the last several decades, the memory size of many computing devices, such as personal computers and servers, has grown along with the capacity of networks that these devices use for communication. The representation of information in data-interchange files has accordingly evolved from memory-efficient and capacity-efficient binary encodings to less efficient text-based human-readable forms such as the Extensible Markup Language (XML), JavaScript Object Notation (JSON), and YAML (which is a recursive acronym for YAML Ain′t Markup Language). These human-readable formats are commonly used for communicating information between a web browser and a web server, for example, and have the advantages of being simple to create, parse, and debug.
In situations where the amount of information to be communicated is relatively small, the information may be sent as a file. In these situations, a receiving system waits until the entire file is downloaded before processing information in the file.
In other situations, where the amount of information to be communicated is relatively large, the information may be sent as a data stream. In these situations, a receiving system may process information in the data stream as it arrives, or after a portion of the data stream has arrived, until all the data has been processed.
FIG. 1 illustrates a schematic drawing of a computing device, in accordance with example embodiments.
FIG. 2 illustrates a schematic drawing of a server device cluster, in accordance with example embodiments.
FIG. 3 depicts a remote network management architecture, in accordance with example embodiments.
Example methods, devices, and systems are described herein. It should be understood that the words “example” and “exemplary” are used herein to mean “serving as an example, instance, or illustration.” Any embodiment or feature described herein as being an “example” or “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments or features unless stated as such. Thus, other embodiments can be utilized and other changes can be made without departing from the scope of the subject matter presented herein.
Accordingly, the example embodiments described herein are not meant to be limiting. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the figures, can be arranged, substituted, combined, separated, and designed in a wide variety of different configurations. For example, the separation of features into “client” and “server” components may occur in a number of ways.
Further, unless context suggests otherwise, the features illustrated in each of the figures may be used in combination with one another. Thus, the figures should be generally viewed as component aspects of one or more overall embodiments, with the understanding that not all illustrated features are necessary for each embodiment.