Есть ли у вас какие-либо высказывания о HW, которые будут использоваться?
Предполагая, что при этом будет больше операций чтения, чем записи, это может быть идеальным приложением для твердотельных накопителей в сочетании с тем, что упомянул TomTom - для хранения событий в виде файлов в выделенном каталоге.
Если вы пойдете по этому пути, я предлагаю иметь каталог для каждого «Ключа» и организовать их в подкаталогах.
Т.е., предположим, у вас есть такой ключ: HJ029084930A
Вы должны иметь:
/streams
/streams/HJ02
/streams/HJ02/9084
/streams/HJ02/9084/930A/HJ029084930A
/streams/HJ02/9084/930A/HJ029084930A/20100315/230257.trc
/streams/HJ02/9084/930A/HJ029084930A/20100316/000201.trc
/streams/HJ02/9084/930A/HJ029084930A/20100316/000203.trc
/streams/HJ02/9084/930A/HJ029084930A/20100316/010054.trc
...
/streams/HJ02/9084/930A/HJ029084930A/20100317/010230.trc
Я намекаю на то, что вы должны сделать все возможное, чтобы избежать "слишком большого количества" файлов (или каталогов) внутри каталога, иначе ОС может замедлить получение ваших данных.
Одна из возможных проблем - когда поток перекрывается с конца дня до начала следующего.
Посмотрите, можете ли вы разделить его так, чтобы он мог завершиться в 23:59:59 и создать новый, начиная с 00:00:00 следующего дня. Это зависит от того, какова семантика "tail ()" в вашем случае.