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.
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 size of the sequence of numbers. This will depend on the number of records stream-items in the stream-set to which you are allocating unique numbers. For example, if the stream-set has 10,000 recordsstream-items, 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 stream-item is generated in this stream,
nextValue
will return a new unique value for the attribute.
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|