Hi Frank,
On your DAQmxRead VI you'll see an input labeled "number of samples per channel." Whatever number you wire into this will be the EXACT amount of data points that are returned on each execution of DAQmxRead. This means that if you wire 100 into the "number of samples per channel" you will get an array of 100 data points on each loop execution. Then you can perform your data manipulation on that array of 100. On the next loop execution you will get another 100 data points. Now here's the tricky part...
At 8000 Hz, 100 samples takes 0.0125 seconds. If your data calculations take LESS than 0.0125 seconds, you will have less than the needed 100 data points on the next DAQmxRead execution. Since you specified to read 100 data points, DAQmxRead will wait until all 100 points are ready and then return. If your data calculations take MORE than 0.0125 seconds to execute DAQmxRead will have more than 100 points available when it executes. Now it will only grab 100 data points from the DAQ card's buffer and leave some backlog. The backlog will grow with each loop execution until you get a buffer overflow. The solution to this is to INCREASE the "number of samples per channel" to be read with each DAQmxRead execution.
-Sal