Synapse Limitations
Synapse's current table width limitations are:
- 152 columns
- 64000 bytes per row
The bytes per row is calculated based on column sizes, regardless of how much data is in that row. Byte costs for each column are as follows:
Column Type | Bytes |
---|---|
Large Text | 3000 |
String | 3 per character |
Boolean | 5 |
Int | 20 |
Double | 23 |
Date | 20 |
File Handle | 20 |
Current Bridge Usage
Bridge currently declares the following columns common to all health data tables, numbering a total of 13 columns and 5617 bytes:
Name | Type | Bytes |
---|---|---|
recordId | String (36 chars) | 108 |
appVersion | String (48 chars) | 144 |
phoneInfo | String (48 chars) | 144 |
uploadDate | String (10 chars) | 30 |
healthCode | String (36 chars) | 108 |
externalId | String (128 chars) | 384 |
dataGroups | String (250 chars) | 750 |
createdOn | Timestamp | 20 |
createdOnTimeZone | String (5 chars) | 15 |
userSharingScope | String (48 chars) | 144 |
validationErrors | Large Text | 3000 |
substudyMemberships | String (250 chars) | 750 |
rawData | File Handle | 20 |
A few Bridge studies declare study-wide metadata that goes into every table. The current maximum usage of metadata fields is psorcast-validation, which uses 2 timestamp fields and 8 Strings of length 100, which represents 10 columns and 2440 bytes.
Proposed Bridge Schema Limits
Source | Columns | Bytes |
---|---|---|
Common | 13 | 5617 |
Metadata | 20 | 2500 |
Reserved | 19 | 5883 |
Schema | 100 | 50000 |
Total | 152 | 64000 |