qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kim van der Riet <kim.vdr...@redhat.com>
Subject Proposal: Replace legacystore with linearstore as the default store for qpid linux builds
Date Tue, 10 Feb 2015 15:52:53 GMT
Since qpid began, what is now called legacystore has been the default 
linux store for qpid builds. This is a per-queue circular disk buffer 
store. This store has some management difficulties, the most egregious 
of which is managing the size of the disk buffer. It is easy for users 
to undersize the buffer, and when it gets full, the store refuses to 
write further records until more space has been freed up. It is also 
easy for users to oversize all their queues so as to not run into this 
problem, and thus wastefully consume disk resources and massively 
increase the time necessary for recovery.

Approximately a year ago work started on a new store called linearstore. 
This store is forked from legacystore, but the disk buffers are no 
longer fixed circular. Instead they are open-ended linear buffers, which 
take their files from a common Empty File Pool. As new files are needed, 
they are taken from the EFP and placed on the leading edge of the 
journal, while empty files are returned to the EFP from the trailing end 
of the journal. If the EFP itself is emptied of files, the store will 
automatically create new ones. This removes the need for the user to 
guess at their worst-case scenarios to size a circular buffer.

The linearstore also adds the ability to store the journals for 
particular queues on different disk partitions. This allows some queues 
to use high performance media (such as solid state drives) where 
necessary, while other queues can use regular disks.

It is my belief that the linearstore has now progressed to the point 
where it can now replace legacystore as the default store. Currently, 
both stores are represented in the cmake build. However, linearstore 
defaults to OFF while legacystore defaults to ON. The reason for this is 
that both stores cannot be present at the same time or the broker will 
attempt to load them both. Only one store at a time can be loaded in the 
broker, and having both results in undefined behavior. I propose to 
leave legacystore in place for the time being, but default the build to 
OFF, while linearstore will have its default set to ON.

If you have any comments or concerns, please make them known. Otherwise 
I'll start a vote on this in a few days.


To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org

View raw message