Replication
Fieldpine uses a distributed database and is capable of continuous operation even in the face of network failure. Any distributed database system must in some way replicate information.
Available Methods
Periodic Refresh
Lanes request complete copies of the data; replacing all existing data
- Simple and reliable
- Resets any anomalies
Push on Change
When a change is detected it is immediately queued and sent to all active lanes
- Lanes have most up to date data
- Lots of transactional data being shipped
Pull on Demand
When a lane requires information it request it in real time from the server
- Lanes get most up to date data
- Need to consider error conditions of server offline or not responding fast enough
Wave Polling
Lanes periodically request the list of changes since their last poll.
- Lanes data is only accurate as at last polling interval
- Less traffic and load than periodic refresh
You can use multiple methods at the same time:
- Combining Push on Change and Pull on Demand - Lanes always query the server but also receive all changes immediately. If the server/network fails, lanes continue with the most recent information they had
- Combining Poll on Demand and Wave Polling - Lanes always query the server. If the server/network fails, lanes continue with the data from the last wave poll operation
Comparison of Effects
Consider a retail operation with 50 stores. They have a requirement to replicate realtime account balance information. The following table outlines the total load in a one hour period with the Wave Polling interval set to 30 minutes.
Stores/LanesPush on Change | Pull On Demand | Wave Polling (30min) | |
1 change per second | 50 x 3600 = |
1800 x 2= |
50 x 2 = |
1 change per 10 seconds | 50 x 360 = |
180 x 2= |
50 x 2 = |
1 change per minute | 50 x 30 x 2 = |
50 x 2 = |
50 x 2 = |
1 change per 30 minutes | 50 x 30 x 2 = |
50 x 2 = |
50 x 2 = |
1 change per hour | 50 x 0.5 x 2 = |
50 x 0.5 x 2 = |
50 x 2 = |
Additional Servers
Some tables allow you to offload transactional processing to Fieldpine Servers if you wish
Use Fieldpine Encrypted When enabled, Fieldpine receives the data but the payload is encrypted so it cannot be understood. The primary key (typically a Physkey/UUID or simple integer) is NOT encrypted though, as this is required to answer requests.
Use Fieldpine Non-Encrypted When enabled, Fieldpine receives the data and the payload can be read and understood by Fieldpine. The permits Fieldpine to make decisions and work with the data if needed.
Query Fieldpine First When enabled, this instructs lanes to query Fieldpine servers before your servers. This mainly affects normal operation, under error conditions the lanes will query whoever they believe will answer quickest and most accurately.