When we remove a collection, we must cleanup after the coll_entry_t we
once had on the available collections set. For some reason, we weren't
doing this.
This commit adds a new callback, which inherits from the 'OnReadable'
callback on the WorkloadGenerator class, that will be responsible for
deleting the coll_entry_t once we know the collection transaction
destroying the collection has finished.
Apparently, the FileStore does not cleanup after transactions once they
are applied, which may lead to huge memory leaks.
In this commit we simply 'delete m_tx' in the transaction's callback
class.
With this commit, we support the following options (and old ones are no
longer available):
--test-num-colls VAL Set the number of collections
--test-num-objs-per-coll VAL Set the number of objects per
collection
--test-destroy-coll-per-N-trans VAL Set how many transactions to run
before destroying a collection.
And --help will show the program's usage description.
Besides adding support for default arguments, passed onto global_init(),
this commit fixes a conflict in Makefile.am, and a missing lib
dependency. Also, we didn't used to pay attention to the return values
from store->mkfs() and store->mount(), and now do.
This commit aims at the compliance with Ceph's CodeStyle, as well
as cleaning up some lingering unused code.
Also, now we allow changing the default OSD data and journal
locations, as well as the OSD journal size, by providing the
options '--osd-data <PATH>', '--osd-journal <PATH>' and
'--osd-journal-size <VAL>' on the CLI arguments. If not provided,
these will default to 'workload_gen_dir', 'workload_gen_journal'
and '400', respectively.
In it's current state, the workload generator will queue a lot of
transactions onto the FileStore, and will wait if needed in case
there are too many in-flight transactions.
The workload generator will perform the transactions over a
pre-determined number of collections and objects, which may very
well be defined at runtime by using the options '-C <VAL>' and
'-O <VAL>' for collections and objects per collection, respectively.
If these are not provided, the program will default to 30 collections
and 6000 objects per collection.
Don't accept more than the number of threads, otherwise if cluster is
backed up for any reason we'd end up exhausting resources.
Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
pool_list() was broken, replaced now with pool_iterate(). list_objects()
shouldn't be used any more with system buckets (raw pools), we can't
have it return sorted list of objects without reading the entire list.
Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
Previously it was only storing this m->latest_value in the stash,
which of course got overwritten. And then when somebody tried to read
it back, it failed!
Instead, require that the message include the regular version (not
just the stashed version), which the previous commit provides. And then
write the regular version to disk alongside the stash.
This set of procedures still suffers from some of the same disk consistency
issues as we recently fixed in slurping, but it's better than it was, and
fixing those would require a good deal more work.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Sage points out that the stashed object might not be the same as the
one we actually archive. For instance, OSDMonitor stashes the full
OSDMap but the items it stores in the regular machine_name dir are
incrementals.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
ceph-dencoder #includes rgw_common.h, and needs to build even when
--without-radosgw is specified and libfcgi isn't installed.
Reported-by: vandemar in #ceph
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
- fix discussion of last epoch started
- define terms for current and past intervals
- describe role of pg info
- remove mention of the backlog
- fix discussion of up_thru
- etc.
Signed-off-by: Sage Weil <sage@newdream.net>
bucket_id is now string: <global instance id>.<num> where
num is increasing monotonically within the current rgw
instance.
Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>