主权项 |
1. A computer-implemented method comprising:
receiving, by one or more data processors executing an application process of an application server, a request from a client computer over a network; parsing, by the one or more data processors, the request to determine one or more components of the request; generating, by the one or more data processors, an execution plan for the request based on the one or more components determined by the parsing; and sending, by the one or more data processors, the execution plan to a database for execution of the request by a database process; wherein the execution plan is generated with metadata from a distributed metadata cache in the application server and the distributed metadata cache is remote from the application server and is accessible by a plurality of other application servers for execution plan generation, the metadata comprising definitions of relational tables, columns, views, and indexes, definitions of SQL script functions, and object store metadata; wherein the database comprises a relational engine that includes a row store and a column store, the row store processes data in a row-at-a-time fashion using iteration, and the column store is a column based in-memory data engine in which column store operations require that an entire column be available in contiguous memory locations; wherein the database comprises a persistence layer responsible for durability and atomicity of transactions, the persistence layer ensuring that the database is restored to a most recent committed state after a restart, the persistence layer providing interfaces for writing and reading data from data storage; and wherein the database comprises a logger module that manages a transaction log such that log entries are written implicitly by the persistence layer when data is written via persistence interface or explicitly by using a log interface; wherein the row store provides results to the column store materialized as complete rows in memory, while the column store exposes results using the iteration required by the row store. |