An Apparatus for leveraging General Purpose Graphics Processing Units for JSON Acceleration in Front-End Cache
Publication Date: 2014-Jan-31
The IP.com Prior Art Database
Page 01 of 5
An Apparatus for leveraging General Purpose Graphics Processing Units for JSON Acceleration in Front -
Although these NoSQL database systems claim to be very fast, such systems need to
process each field of the JSON document multiple times, which can become Central
Processing Unit (CPU)-intensive, as the data must be replicated over multiple instances. In addition, in memory front-end caches have been used to provide higher speed in writes. These in-memory caches use giant hash tables distributed across multiple machines. When the hash table is full, subsequent inserts cause older ordered data to be purged, or fall back to slower backing stores, such as a database.
In order to convert JSON documents in a format that can be serialized, a front-end cache, a NoSQL store, or a middleware system has to serialize the JSON Object (or binary JSON format, BSON). Moreover, when performing queries, a middleware system has to decode the query, inflate the object, and construct a query in format understandable by the cache. Finally, it has to also understand whether a key value pair corresponds to an index. This can be even more complicated, as indexes can be included in embedded documents; therefore, path navigation might be needed. For example, in an Object Map cache, each document has to be stored in an Object Map. However, serializing JSON Objects is CPU-intensive because each key-value has to be parsed, there are embedded or encapsulated JSON Objects (i.e. parent-child relation), and some values can contain text or Regular Expression (REGEX) operations.
Therefore, while in memory Object Maps can be fast, encoding the JSON Objects can become a processing bottleneck even for multi-processor machines. There are two potential approaches to this problem. The first is to use Field Programmable Gate
Arrays (FPGAs), which have shown processing advantages over traditional
multi-threaded architectures. However, FPGAs are limited by small resources and expensive programming time. The second solution is the use of Graphic Processing Units (GPUs), which offer the flexibility of reprogramming. In other words, use the General-Purpose (GP) computing on GPU (GPGPU) to leverage the CPU, which
typically handles computation for computer graphics, to perform a JSON query and index development, and seri...