Optimizing storage of data in row-oriented data storages
AssigneeArista Networks, Inc.
InventorsBenoit Sigoure, Michael Fink
Life of this patent
Estimating the term…
Abstract
Embodiments of the present disclosure include techniques for optimizing storage of data in row-oriented data storages. A block of data comprising a plurality of rows of data. Each row of data comprises a set of values for a set of attributes. A set of unique schemas is determined based on the plurality of rows of data. A set of groups of rows of data is determined based on the set of unique schemas. For each group of rows of data in the set of groups of rows of data, the group of rows of data is stored in a column-oriented format. For each group of rows of data in the set of groups of rows of data, a set of encoding techniques are applied to values in the group of rows of data based on the sets of attributes of the group of rows of data.
Claims16
A method comprising:
- receiving a data block comprising a plurality of rows of data, wherein each row of data comprises a key component and a value component, the plurality of rows of data comprising a first row data and a second row of data, wherein the value component of the first row of data comprise attributes different from attributes of the value component of the second row of data;
- defining a plurality of schemas that represent attributes of the value components of the plurality of rows of data, including defining a first schema that represents every attribute in the value component of the first row of data and defining at least a second schema, different from the first schema, that represents every attribute in the value component of the second row of data, wherein the first schema represents attributes different from attributes represented by the second schema;
- identifying groups of rows of data among the plurality of rows of data using the plurality of schemas, including identifying a first group of rows having attributes that are represented by the first schema and identifying at least a second group of rows having attributes that are represented by the second schema;
- and
- storing each of the identified group of rows in column-oriented format, including storing the first group of rows in column-oriented format and storing the second group of rows in column-oriented format,
- wherein storing the first group of rows in column-oriented format includes storing the values of each attribute in the first group in a corresponding data row, wherein storing the second group of rows in column-oriented format includes storing the values of each attribute in the second group in a corresponding data row.
A computer system comprising:
- one or more computer processors;
- and
- a computer-readable storage device comprising instructions that control the one or more computer processors to:
- receive a data block comprising a plurality of rows of data, wherein each row of data comprises a key component and a value component, the plurality of rows of data comprising a first row data and a second row of data, wherein the value component of the first row of data comprise attributes different from attributes of the value component of the second row of data;
- define a first schema that represents every attribute in the value component of the first row of data;
- define at least a second schema that represents every attribute in the value component of the second row of data, wherein the first schema represents attributes different from attributes represented by the second schema;
- identify a first group of rows from among the plurality of rows of data in the data block using the first schema;
- identify at least a second group of rows from among the plurality of rows of data in the data block using the second schema;
- store the first group of rows in column-oriented format;
- and
- store the second group of rows in column-oriented format,
- wherein to store the first group of rows in column-oriented format includes storing the values of each attribute in the first group in a corresponding data row, wherein to store the second group of rows in column-oriented format includes storing the values of each attribute in the second group in a corresponding data row.
A non-transitory computer-readable storage device in a network device, the non-transitory computer-readable storage device having stored thereon computer executable instructions, which when executed, cause the network device to:
- receive a data block comprising a plurality of rows of data, wherein each row of data comprises a key component and a value component, the plurality of rows of data comprising a first row data and a second row of data, wherein the value component of the first row of data comprise attributes different from attributes of the value component of the second row of data;
- define a first schema that represents every attribute in the value component of the first row of data;
- define at least a second schema that represents every attribute in the value component of the second row of data, wherein the first schema represents attributes different from attributes represented by the second schema;
- identify a first group of rows from among the plurality of rows of data in the data block using the first schema;
- identify at least a second group of rows from among the plurality of rows of data in the data block using the second schema;
- store the first group of rows in column-oriented format;
- and
- store the second group of rows in column-oriented format,
- wherein to store the first group of rows in column-oriented format includes storing the values of each attribute in the first group in a corresponding data row, wherein to store the second group of rows in column-oriented format includes storing the values of each attribute in the second group in a corresponding data row.
Dependencies are inferred from the claim text.