For the bookings engine, my environment and webservices we don't use database listeners. For this, we have a separate flow in place, because we require additional information (such as pre-calculated prices) in the Elasticsearch index.
This flow is described below.
Pricecache
- The Price calculation process runs every hour for all clients.
- Calculates prices for specific distribution channels only (usually internet and tour operators) and stores these in the pricecache.
- After a change has been made that needs (re)calculation or removal of prices it can take at most 1.5 hours before this gets picked up by the price calculator. The price calculator only picks up changes which are at least 30 minutes old. This has been done for efficiency reasons, because when multiple changes are made affecting the same accommodations these will be merged together, so it only has to calculate prices once.
- Changes that require price calculation are:
- Changes in cashflowrules
- Changes in rentability
- Changes in representations
- Changes in releases
- Changes/creation of specials
- In general, one run of the price calculator will calculate all the prices for changes made since the last time it ran, one run takes at most 50 minutes.
So, in worst-case, prices will be calculated after at most 2 hours and 20 minutes (1.5 hours + 50 minutes (maximum calculation time)).
In best-case the calculation just needs a couple of minutes, so just over 30 minutes (30 minutes + calculation time).
On average prices can be expected to be calculated in one hour. - However, it can occur that one run of the price calculator won’t be enough to calculate all the prices for a change. This is because the duration of the calculation depends on the impact of the change. If a change spans a large period and/or affects a large part of the accommodations, calculation times will increase.
Examples of this kind of changes are:- Creating a special that is valid for all accommodations and all arrivals will require many prices to be calculated and
- Opening a new release
- Closing a release
Elasticsearch index process
- Re-indexes are running twice a day: in the early morning and early evening (concern time zone). These completely refresh the availability index.
- Updates are running every hour or every half an hour (this differs per customer). These updates process changes in prices, rentability, representations, releases, and reservability.
- Depending on how many changes need to be processed, this process can take several seconds (no or few changes) to 40 minutes (many changes that need a complete refresh of the index).
- If Elasticsearch uses pricecache to get prices, changes that require calculation first, will be processed in the next update/re-index after these are calculated.
This means that it can take in worst-case at most 5 - 4 hours (2 hours 20 minutes + 30 minutes/1 hour (index process frequency) + 40 minutes (maximum run time of index process)) before changes that require prices are available online.
In best-case, when prices are calculated just before the next index process, it will take just over 30 minutes (30 minutes + calculation time + indexing time).
On average changes that require price calculation will available after 1.5 hours – 2 hours depending on the index frequency. - If Elasticsearch uses cashflowrules directly to get prices, it will pick up changes right away with every update/re-index process.
This means, in worst-case, it can take at most 1 hour 10 minutes – 1 hour 40 minutes (30 minutes/1 hour (index frequency) + 40 minutes (maximum run time of index process) before changes are available online.
In best-case it will take just over 30 minutes – 1 hour (30 minutes/1hour (index frequency) + indexing time).
On average changes can be expected to be available after 45 minutes – 1 hour 25 minutes depending on the index frequency. - Information on which client uses pricecache and which cashflowrules can be found here: /wiki/spaces/DEV/pages/5016084.
- Changes in reservability will be picked up right away with every update/re-index process, so in worst-case at most 1 hour 10 minutes (30 minutes (index process frequency) + 40 minutes (maximum run time of index process)).
In best-case it will take just over 30 minutes – 1 hour.
On average changes can be expected to be available after 45 minutes – 1 hour 25 minutes depending on the index frequency.
Side notes
The following changes will not show up online:
- Creating a new accommodation type (it needs to have prices, rentability and a release before it will be available to book online, in the Reservation Manager and Newyse).
The following changes (including newly adding) require a complete re-index before they will be available online, therefore it can take up to 12 hours (time between two re-indexes before they will be available online).
- Changing an amenity
- Changing capacity
- Changing the number of bathrooms
- Changing the number of bedrooms
- Changing priority
- Updates in rating
- Check/Uncheck the “Only add if the period is the same as the period of the resources above this resource” for Specials.