...
...
...
...
...
...
...
...
Tip |
---|
It is much quicker for PhixFlow to assign a number from memory than it is to |
...
assign a number from the database. It also takes time to reserve the next block of numbers. |
Gaps in the Number Sequence
Sequence numbers are unique, but there may be gaps between sequence
...
numbers. This depends on:
- the block size specified when the sequence is set up
...
- unexpected server shut-down.
...
Server shut-down clears any remaining numbers
...
from memory
...
. When the server restarts, PhixFlow reserves a new block from the last reserved value.
...
This can leave a gap between:
- the last number allocated before PhixFlow was shut down
- and the first number allocated after PhixFlow is restarted.
For example,
- You create a sequence with a block size of 100. It has the values
...
- 0-
...
- 99.
- You have allocated the numbers 1 to 50 from memory.
- PhixFlow shuts down.
- On restart, PhixFlow reserves a new block from
...
- 100 to
...
- 199.
- PhixFlow starts issuing numbers from memory, starting with
...
- 100.
- The numbers from 51 to
...
- 99 will never be issued.
...
Block Size and Performance
Anchor | ||||
---|---|---|---|---|
|
Use the block size to specify the range of values in the sequence. The block size affects PhixFlow performance.
- A very small block size
...
- increases the number of times that PhixFlow has to go to the database to reserve another block. This
...
- slows down performance.
- A very large block size increases the risk that PhixFlow is shut down
...
- with unallocated numbers in memory.
If you absolutely need to have contiguous numbers and you don't request these numbers very often you could set the block size to 1. This will guarantee that numbers are unique and contiguous but may not perform satisfactorily. In this case you can use alternative means to generate the unique, contiguous numbers you need such as:
<link to recipes for this>.
Sequence Properties
Tip |
---|
We recommend you set a large block size, to optimise performance. If you require a continuous sequence of values for items:
|
Sequence Properties
To create a sequence, in the repository, right-click Sequences and click
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
Basic Settings
Field | Description |
---|---|
Name |
...
Enter the name of the sequence. |
Start Value |
...
Enter the first value in the sequence. |
Block Size |
...
Enter a number to set the |
...
To configure the sequence to generate values without any gaps in the sequence, set the block size to 1. This causes slow performance as PhixFlow has to perform database calculations for before providing the next value in the sequence.
Tip |
---|
If you require a continuous sequence of values for items, and the data set being processed is small, you may decide to accept the added overhead of calculating every value in the sequence. If the data set is large, it is better to use a large block size, to optimise performance. If you require a continuous sequence consider an alternative method of assigning the value. |
...
size of the sequence of numbers. This will depend on the number of records in the stream set to which you are allocating unique numbers. For example, if the stream set has 10,000 records, the block size should be at least 10,000.
Block size has an effect on performance; see Block Size and Performance, above. | ||
Current Value | PhixFlow displays the highest value already allocated. |
Example: Using a Sequence
To set a stream attribute to a unique order ID:
- Create a
...
- sequence and set its Name to
order_id
...
- .
Create a
...
stream with an Integer attribute.
Set its attribute expression to:
...
nextValue('order_id')
Every time a new record is generated in this stream,
nextValue
will return a new unique value for the attribute.