Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

A sequence defines a list of unique numbers that PhixFlow allocates Set up a sequence to allocate a unique number to an item. 

Use the sequence properties to specify a start value and how many numbers you require (the block size). PhixFlow then allocates from those numbers from the database and stores them in memory. When PhixFlow reserves a block it marks the last reserved value in the database. 

You can then quickly assign the numbers to items using the nextValue function in an expression. You can also find the last assigned number using the curValue function.For example, you can set up a sequence containing a block of 100 numbers.   PhixFlow reserves the values in memory. Each time an expression runs the nextValue function, it uses a value from memory. When all the numbers have been used , when nextValue() and the nextValue function is called, PhixFlow takes a bit longer to reserve reserves the next block of 100 numbers in before assigning the databasenext value

Tip

It is much quicker for PhixFlow to assign a number from memory than it is to go back to the database to reserve the next block of numbers.

Sequence numbers are unique, but there may be gaps between sequence numbernumbers. This depends on:

  • the block size specified when the sequence is set up.
  • unexpected server shut-down. Any

Server shut-down clears any remaining numbers

...

from memory

...

When PhixFlow reserves the a block, in the database it marks the last reserved value. When the . 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,

  1. You create a sequence with a block size of 100. It has the values 10-10099.
  2. You have allocated the numbers 1 to 50 from memory.
  3. PhixFlow shuts down.
  4. On restart, PhixFlow reserves a new block from 101 100 to 200199.
  5. PhixFlow starts issuing numbers from memory, starting with 101100
  6. The numbers from 51 to 100 99 will never be issued.

The Effect of Block

...

Size 
Anchor
block
block

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:

...

Tip

We recommend you set a large block size, to optimise performance.

If you require a continuous sequence of values for items:

  • in a small stream set, you may want to accept the overhead of calculating every value in the sequence. In this case, set the Block Size to 1.
  • in larger stream sets, consider an  alternative method of assigning the value.

Sequence Properties

Insert excerpt
_standard_settings
_standard_settings
nopaneltrue

Basic Settings

(Readonly) The
FieldDescription
NameThe Enter the name of the sequence.
Start ValueThe Enter the first value in the sequence.
Block Size

For quicker performance, Enter a number for to set the block size to a large value greater such as 100, or 10000.

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.

Current Value

size of the sequence of numbers. This will depend on the size of the stream sets to which you are allocating unique numbers. For example, if the stream set has 10,000 data records, the block size should be at least 10,000.

Note

Sequences provide unique numbers, but they may not always be contiguous.

Block size has an effect on performance; see The Effect of Block Size, above.

Current ValuePhixFlow displays the highest value already allocated.

...