:period vs :sampleRate in Sensor.registerSensorDataListener

What is the real meaning of :period and :sampleRate in Sensor.registerSensorDataListener? According to the documentation:

:period - Period of time to request samples in seconds. Maximum is 4 seconds.
:sampleRate - Samples per second to request in Hz.
According to the fr245 simulator I see that :sampleRate sets the rate of my callback function being called. This makes sense.
But what exactly is :period?
Both in case of
:period => 1, :sampleRate => 4
:period => 4, :sampleRate => 1
every time my callback is called, each array has size 4. But what are the values? The sentence "Period of time to request samples in seconds." is a bit unclear. My interpretation was that in case of :period: 4, :sampleRate: 1
accel.x[0] would be the x acceleration 0 seconds ago (now),
accel.x[1] would be the x acceleration 1 seconds ago,
accel.x[2] would be the x acceleration 2 seconds ago,
accel.x[3] would be the x acceleration 3 seconds ago,
but looking at the data it seems either I didn't understand it or the fr245 simulator is buggy because if I was right then the data from last second should be similar to the data from this second, except that last second's x[0] should be this second's x[1], etc. But the numbers are completely different.
And why I get arras of size 4 in both cases?