Re: Storage for multiple variable-length attributes in a single row - Mailing list pgsql-hackers

From Esteban Zimanyi
Subject Re: Storage for multiple variable-length attributes in a single row
Date
Msg-id CAPqRbE4zytQv7T1OWPh2nKgbs7eGoCwCJAP6gqFnBO14jemymA@mail.gmail.com
Whole thread Raw
In response to Re: Storage for multiple variable-length attributes in a single row  ("David G. Johnston" <david.g.johnston@gmail.com>)
List pgsql-hackers
Dear David

There are two approaches for storing temporal information in a relational database, explored since the 1980s following the work of Richard Snodgrass
tuple-timestamping vs attribute-timestamping.  The SQL standard used the tuple-timestamping approach, but in MobilityDB we decided to use the attribute-timestamping approach. As you rightly pointed out, tuple-timestamping follows the traditional relational normalization theory.

The main advantage of the attribute timestamping for mobility data is that we need only to store the changes of values for a temporal attribute. In the example of gear for a car, even if we receive high-frequency observations, there will be very little gear changes for a trip, while there will be much more position changes. Therefore on MobilityDB we only store the change of values  (e.g., no change of position will be stored during a red light or traffic jam), which constitutes a huge lossless compression with respect to the raw format storing every observation in a single row. We have experimented 450% lossless compression for real IoT data.

In addition, MobilityDB does all temporal operations and allows to determine the value of any temporal attribute at any timestamp (e.g., using linear interpolation between observations for speed or GPS position), independently of the actual stored observations.

I hope this clarifies things a little.

pgsql-hackers by date:

Previous
From: Joshua Brindle
Date:
Subject: Re: [PATCH v2] use has_privs_for_role for predefined roles
Next
From: Peter Geoghegan
Date:
Subject: Re: Removing more vacuumlazy.c special cases, relfrozenxid optimizations