Abstract:
An architecture for a hardware database management system is described. A data flow engine is connected to memory storing the information making up a database or databases. The data flow engine is formed by a parser, an execution tree engine and a graph engine. The parser takes standardized database statements and converts those statements into a set of executable instructions and associated data objects. The executable instructions and data objects are then sent to the execution tree engine where an execution tree is created, the execution tree forming the order of execution for the executable instructions. The graph engine receives those executable instructions from the execution tree engine that require access to the database in memory and manipulates the information in the database as required by the executable instructions for implementing the standardized database statement.
Abstract:
A method for implementing a hardware database management system in hardware is described. A parser takes standardized database statements and converts those statements into a set of executable instructions and associated data objects. The executable instructions and data objects are then sent to the execution tree engine where an execution tree is created, the execution tree forming the order of execution for the executable instructions. The graph engine receives those executable instructions from the execution tree engine that require access to the database in memory and manipulates the information in the database as required by the executable instructions for implementing the standardized database statement.
Abstract:
A data structure for a hardware database system is described. The data structure is made up of multiple sub-trees interconnected to form a graph structure. Each sub-tree begins at a memory location, or root address. Next the sub-tree includes profile information relevant to the sub-tree, such profile information can include, but is not limited to, information on the type of data being stored, the number of entries in the sub-tree, privilege information for accessing the sub-tree, etc. After the profile information the sub-trees contain search strings, or differential bits that lead to each of the entries in the sub-tree. Each search string ends in a result string. The result string can be actual data, can be a pointer to another sub-tree, can be a function call, or can be any other useful data or entry.
Abstract:
A graph processor for a hardware database is described which is operable to manipulate, such as reading, writing, or altering, information in a database, or other collection of information. The graph processor includes a read engine and a write engine, the read engine operable to compare the search object against the information in the database and return results based on the comparison. The write engine is operable to write new information into the database by first locating the first differential bit between the information to be written and the existing contents of the database. Once the differential bit has been located the write engine creates a new branch and inserts the data into the database.
Abstract:
A semantic processor for a hardware database management system is described that is operable to take statements in a standardized language and parse those statements. The semantic processor includes a tokenizer for separating the statement into its individual elements and identifying keywords and operators. A precedence engine then orders the elements of the statement into the proper execution order and a function compiler creates an execution tree and determines which element are free of dependencies and can be executed.