Compressing null columns in rows of the tabular data stream protocol
AssigneeMicrosoft Technology Licensing, LLC
InventorsIl-Sung Lee, Matthew A. Neerincx, Peter Gvozdjak, Chadwin James Mumford
Life of this patent
Estimating the term…
Abstract
Systems and methodologies that enhance a Tabular Data Stream (TDS) protocol by enabling efficient transmission of a row(s) with null columns(s). An identification component employs a bit map that can be positioned at beginning of a row, to indicate to the receiving side (e.g., a client) columns that are to be sent. Accordingly, by distinguishing columns that are null from columns that are not null—followed by sending columns that are not null—transmission resources can be effectively employed.
Claims20
A computer implemented system comprising the following computer executable components:
- at least one processing unit;
- a memory, communicatively coupled to the processing unit, containing instructions that, when executed by the at least one processing unit, provide:
- a tabular data stream (TDS) protocol that transfers requests-responses between a client and a server;
- an identification component as part of the TDS, wherein the identification component determines the number of columns in a row belonging to a result set, notifies the client of the number of columns in the row before transmitting the result set, receives an indication from the client as to whether the number of columns exceeds a predetermined threshold, wherein:
- when the number of columns does not exceed the predetermined threshold, sending a result set to the client, the result set including data from both null columns and non-null columns, and
- when the number of columns exceeds the predetermined threshold, designating the null columns with an identifier to reduce bits transmitted during transmission of query results from the sever to the client and sending the result set to the client, the result set including only the data from the non-null columns.
A computer implemented method comprising the following computer executable acts:
- transferring, by at least one processor, data from a client to a server using a tabular data stream (TDS) protocol;
- calculating, by the at least one processor, a bit map to designate null columns for a row associated with query results;
- notifying, by the at least one processor, the client of the number of columns in the row belonging to a result set, wherein the client is notified before the result set is transmitted to the client;
- receiving, by the processor, an indication from the client as to whether the number of columns associated with the query results exceeds a predetermined threshold, wherein:
- when the number of columns does not exceed the predetermined threshold, sending the query results to the client, the result set including data from both the null columns and the non-null columns;
- and
- when the number of columns exceeds the predetermined threshold, sending the query results and the bit map to the client, the query results including only the data from the non-null columns.
A computer implemented system comprising:
- at least one processing unit;
- a memory, communicatively coupled to the processing unit, containing instructions that when executed by the at least one processing unit, provide a method for identifying null columns in exchanged data, the method comprising:
- receiving a request for query results from a client using a tabular data stream (TDS) protocol;
- notifying the client of the number of columns that will be transferred in the query results before the query results are transferred;
- receiving an indication from the client as to whether the number of columns exceeds a predetermined threshold, wherein:
- when the number of columns does not exceed the predetermined threshold, sending the result set to the client, the result set including data from both null columns and non-null columns;
- and
- when the number of columns exceeds a predetermined threshold, designating the null columns with an identifier and sending the result set to the client, the result set including only the data from the non-null columns.
Dependencies are inferred from the claim text.