Low Level Documentation
 
Library Fieldpine Internals Replication Gds Security Fpos.dll Startup logic PosGreen Network PosGreen Install Process Multicast Protocol Data Structures Settings Logic Trace

Logic

Security Model Product Distribution Gateways Staff Login Stock Levels Shipping Addresses Agency Stores Remote Reports Sales Handlers

PosGreen Engine This engine provides the bulk of the POS processing at checkouts. It can be used directly or via central servers as a remote service.

Contexts & Sessions

Advanced

Spill Database Debugging

Reference Data

refdata Country refdata SystemString

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/Lanes
Push on ChangePull On DemandWave Polling (30min)
1 change per second 180,000
50 Stores x 3600 txns
3,600
3600 txns
100
50 Stores x 2 polls
1 change per 10 seconds 18,000
50 Stores x 360 txns
360
360 txns
100
50 Stores x 2 polls
1 change per minute 3,000
50 Stores x 60 txns
60
60 txns
100
50 Stores x 2 polls
1 change per 30 minutes 100
50 Stores x 2 txns
2
2 txns
100
50 Stores x 2 polls
1 change per hour 50
50 Stores x 1 txn
1
1 txn
100
50 Stores x 2 polls

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.