Ticket #535 (closed enhancement: fixed)
Implement proper UIDs for primary keys
| Reported by: | admin | Owned by: | padams |
|---|---|---|---|
| Priority: | critical | Milestone: | 1.5.0 |
| Component: | base module | Version: | |
| Keywords: | 1.5.0-final | Cc: |
Description (last modified by admin) (diff)
Currently OWA uses a CRC32 hash to construct it's primary keys for facts and dimensions, which, while efficient, can cause collisions under high volumes.
Instead we need to transition to better UID generation strategies.
The UID needs to be unique but also efficient. This rules out the use of string or binary UUIDs. Instead we can use 64 bit integers as the PK columns are already BIGINT in MySql?.
For fact tables the strategy for key generation will be time + random + serverId (as defined in the OWA_SERVER_ID constant).
For dimension tables we need to move to using a partial MD5 or SHA1 hash converted to INT.
