]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
11 years agoMerge pull request #1149 from kdreyer-inktank/wip-7245-redhat-udev
Sage Weil [Mon, 27 Jan 2014 21:49:56 +0000 (13:49 -0800)]
Merge pull request #1149 from kdreyer-inktank/wip-7245-redhat-udev

packaging: apply udev hack rule to RHEL

Reviewed-by: Sage Weil <sage@inktank.com>
Reviewed-by: Derek Yarnell <derek@umiacs.umd.edu>
11 years agopackaging: apply udev hack rule to RHEL 1149/head
Derek Yarnell [Mon, 27 Jan 2014 19:27:51 +0000 (12:27 -0700)]
packaging: apply udev hack rule to RHEL

In the RPM spec file there is a test to deploy the uuid hack udev rules
for older udev operating systems. This includes CentOS and RHEL, but the
check currently only is for CentOS, causing RHEL clients to get a bogus
osd rules file.

Adjust the conditional to apply to RHEL as well as CentOS. (The %{rhel}
macro is defined in both platforms' redhat-rpm-config package.)

Fixes http://tracker.ceph.com/issues/7245

Signed-off-by: Ken Dreyer <ken.dreyer@inktank.com>
11 years agoMerge branch 'wip-user-quota-2'
Yehuda Sadeh [Mon, 27 Jan 2014 19:27:56 +0000 (11:27 -0800)]
Merge branch 'wip-user-quota-2'

Conflicts:
src/common/config_opts.h
src/rgw/rgw_common.h
src/rgw/rgw_json_enc.cc
src/rgw/rgw_quota.cc
src/rgw/rgw_rados.cc
src/rgw/rgw_rados.h
src/rgw/rgw_user.cc
src/rgw/rgw_user.h

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoMerge pull request #1143 from dachary/wip-vstart-disk-usage
Sage Weil [Sun, 26 Jan 2014 20:14:29 +0000 (12:14 -0800)]
Merge pull request #1143 from dachary/wip-vstart-disk-usage

unittests: fail early when low on disk

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1003 from dachary/wip-handle-forward-unittest
Loic Dachary [Sun, 26 Jan 2014 13:25:36 +0000 (05:25 -0800)]
Merge pull request #1003 from dachary/wip-handle-forward-unittest

mon: test for MForward messages

Reviewed-by: Joao Eduardo Luis <joao@inktank.com>
11 years agomon: test for MForward messages 1003/head
Loic Dachary [Fri, 27 Dec 2013 10:18:59 +0000 (11:18 +0100)]
mon: test for MForward messages

Creates two mons, send a mon command to the peon and check that the
command is forwarded to the leader.

Add a test to check that the connection features of the client are
preserved when the message reaches the leader.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agomon: shell test helpers to run MONs from sources
Loic Dachary [Wed, 8 Jan 2014 11:41:06 +0000 (12:41 +0100)]
mon: shell test helpers to run MONs from sources

The intent is to make it more convenient to reproduce a specific mon
behavior and observe the result by grepping the logs. It can be handy
for bug diagnostic. The test could be included as a unit test to
be run on make check.

The setup function will prepare a directory and kill leftover from a
previous run. The teardown function cleans up on success. The run
function is expected to be provided by the calling script and can make
use of the run_mon function to mkfs + run a monitor.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agounittests: fail early when low on disk 1143/head
Loic Dachary [Sun, 26 Jan 2014 12:32:57 +0000 (13:32 +0100)]
unittests: fail early when low on disk

Scripts from qa that are run as unittests via test/vstart_wrapper.sh may
fail because the partition on which it runs is low on space ( 95% full
). When it happens the cause of the problem may be unclear because it
is likely to show only as a client not being able to reach the mon.

A test is added in test/vstart_wrapper.sh to verify the disk space usage
using the same method as the mon would and fail with a detailed error if
it is the case.

Signed-off-by: Loic Dachary <loic@dachary.org>
11 years agorgw: simplify a code path 1138/head
Yehuda Sadeh [Fri, 24 Jan 2014 23:33:57 +0000 (15:33 -0800)]
rgw: simplify a code path

remove some duplicate code.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoradosgw-admin: add usage for user stats [--sync-stats]
Yehuda Sadeh [Fri, 24 Jan 2014 23:25:51 +0000 (15:25 -0800)]
radosgw-admin: add usage for user stats [--sync-stats]

add missing usage

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agodoc: Switched logging to true. Now required for sync agent.
John Wilkins [Fri, 24 Jan 2014 23:11:32 +0000 (15:11 -0800)]
doc: Switched logging to true. Now required for sync agent.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
11 years agocls_user: add generate_test_instances() implementation
Yehuda Sadeh [Fri, 24 Jan 2014 23:01:01 +0000 (15:01 -0800)]
cls_user: add generate_test_instances() implementation

to all the encoded/decoded stuff

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw, cls_user: handle error cases related to response decoding
Yehuda Sadeh [Fri, 24 Jan 2014 01:04:06 +0000 (17:04 -0800)]
rgw, cls_user: handle error cases related to response decoding

Certain operations weren't handling errors in decode, add some missing
logic.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: implement restful set user quota request
Yehuda Sadeh [Wed, 15 Jan 2014 22:35:57 +0000 (14:35 -0800)]
rgw: implement restful set user quota request

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: new restful api for retrieving user quota info
Yehuda Sadeh [Wed, 15 Jan 2014 19:36:47 +0000 (11:36 -0800)]
rgw: new restful api for retrieving user quota info

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: quota thread for full user stats sync
Yehuda Sadeh [Tue, 14 Jan 2014 22:48:16 +0000 (14:48 -0800)]
rgw: quota thread for full user stats sync

Get user stats up to date periodically. Add configurables for different
periods, whether we update idle users.
Make sure radosgw-admin does not start the quota threads.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: round bytes to the next 4k for quota use
Yehuda Sadeh [Tue, 14 Jan 2014 08:18:52 +0000 (00:18 -0800)]
rgw: round bytes to the next 4k for quota use

Be more consistent as we round it like this in the objclass, so we need
the accounting to match.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: sync bucket stats thread
Yehuda Sadeh [Tue, 14 Jan 2014 05:50:32 +0000 (21:50 -0800)]
rgw: sync bucket stats thread

a new thread that periodically sync stats of recently modified buckets.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw, cls_user: fix bucket creation
Yehuda Sadeh [Mon, 13 Jan 2014 22:19:27 +0000 (14:19 -0800)]
rgw, cls_user: fix bucket creation

There's a single op to create and update the user bucket info, however,
the cases differ a bit, as we only need to guard against ENOENT if we're
updating the info.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoradosgw-admin: dump header when requested for user stats
Yehuda Sadeh [Mon, 13 Jan 2014 21:21:27 +0000 (13:21 -0800)]
radosgw-admin: dump header when requested for user stats

header also contains sync timestamps, so we should dump it.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoradosgw-admin: update stats sync completion
Yehuda Sadeh [Mon, 13 Jan 2014 21:20:08 +0000 (13:20 -0800)]
radosgw-admin: update stats sync completion

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agocls_user: op to keep track of sync completion time
Yehuda Sadeh [Mon, 13 Jan 2014 20:42:07 +0000 (12:42 -0800)]
cls_user: op to keep track of sync completion time

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agocls_user: keep time info about stats update
Yehuda Sadeh [Mon, 13 Jan 2014 20:31:26 +0000 (12:31 -0800)]
cls_user: keep time info about stats update

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agocls_user: header cleanup
Yehuda Sadeh [Mon, 13 Jan 2014 19:01:59 +0000 (11:01 -0800)]
cls_user: header cleanup

put stats under a new struct

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: user quota should rely on cached info
Yehuda Sadeh [Mon, 13 Jan 2014 18:23:30 +0000 (10:23 -0800)]
rgw: user quota should rely on cached info

user quota should rely on cached info if it says that we're at the
limit, since backend info might not be up to date.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: more quota fixes
Yehuda Sadeh [Sat, 11 Jan 2014 01:33:59 +0000 (17:33 -0800)]
rgw: more quota fixes

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: configure user quota also through region map
Yehuda Sadeh [Sat, 11 Jan 2014 01:32:35 +0000 (17:32 -0800)]
rgw: configure user quota also through region map

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: more rgw_quota fixes
Yehuda Sadeh [Sat, 11 Jan 2014 00:50:49 +0000 (16:50 -0800)]
rgw: more rgw_quota fixes

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: some quota fixes
Yehuda Sadeh [Sat, 11 Jan 2014 00:28:24 +0000 (16:28 -0800)]
rgw: some quota fixes

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: enable user quota
Yehuda Sadeh [Fri, 10 Jan 2014 23:38:37 +0000 (15:38 -0800)]
rgw: enable user quota

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoradosgw-admin: user quota interface
Yehuda Sadeh [Fri, 10 Jan 2014 23:11:08 +0000 (15:11 -0800)]
radosgw-admin: user quota interface

also add needed functionality in RGWUser

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: some fixes
Yehuda Sadeh [Fri, 10 Jan 2014 22:46:01 +0000 (14:46 -0800)]
rgw: some fixes

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: implement quota handlers for user stats
Yehuda Sadeh [Fri, 10 Jan 2014 22:35:31 +0000 (14:35 -0800)]
rgw: implement quota handlers for user stats

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: extend infrastructure to handle user stats read
Yehuda Sadeh [Fri, 10 Jan 2014 21:44:56 +0000 (13:44 -0800)]
rgw: extend infrastructure to handle user stats read

Some helper functions that return data in required format for quota, add
async functions.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: move some code around, no actual changes
Yehuda Sadeh [Fri, 10 Jan 2014 18:46:11 +0000 (10:46 -0800)]
rgw: move some code around, no actual changes

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: refactor quota cache
Yehuda Sadeh [Fri, 10 Jan 2014 18:42:13 +0000 (10:42 -0800)]
rgw: refactor quota cache

bucket quota cache is going to be reused, add a new abstract layer.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: rename RGWBucketStats to RGWStorageStats
Yehuda Sadeh [Fri, 10 Jan 2014 05:37:34 +0000 (21:37 -0800)]
rgw: rename RGWBucketStats to RGWStorageStats

make it more generic, will be reused for user's stats.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: pass bucket owner all around
Yehuda Sadeh [Thu, 9 Jan 2014 00:39:19 +0000 (16:39 -0800)]
rgw: pass bucket owner all around

User quota operations require that we know who the actual user we do the
operation on is. Pass that info when creating new object and when
removing objects.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoradosgw-admin: bucket stats --sync-stats [--bucket=...]
Yehuda Sadeh [Wed, 8 Jan 2014 22:15:15 +0000 (14:15 -0800)]
radosgw-admin: bucket stats --sync-stats [--bucket=...]

Sync user stats, either for a single buckets, or for all user's buckets.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agocls/user: some fixes + handle old buckets case
Yehuda Sadeh [Wed, 8 Jan 2014 22:13:27 +0000 (14:13 -0800)]
cls/user: some fixes + handle old buckets case

If a bucket was created prior to the new accounting, we can't substract
the old values, as the header stats didn't account for them.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw, radosgw-admin, cls/user: retrieve user stats
Yehuda Sadeh [Wed, 8 Jan 2014 01:29:39 +0000 (17:29 -0800)]
rgw, radosgw-admin, cls/user: retrieve user stats

add a new op to retrieve user header, new radosgw-admin command to stat
user.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agocls/user: a new op to retrieve user header
Yehuda Sadeh [Tue, 7 Jan 2014 22:42:03 +0000 (14:42 -0800)]
cls/user: a new op to retrieve user header

user header holds user total stats

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agocls/user: accounting functionality
Yehuda Sadeh [Tue, 10 Dec 2013 00:09:41 +0000 (16:09 -0800)]
cls/user: accounting functionality

Keep user total accounting in omap header, handle add/dec functionality.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: move bucket add / remove to new user objclass
Yehuda Sadeh [Sat, 7 Dec 2013 00:23:33 +0000 (16:23 -0800)]
rgw: move bucket add / remove to new user objclass

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: replace user bucket listing with objclass call
Yehuda Sadeh [Fri, 6 Dec 2013 23:22:37 +0000 (15:22 -0800)]
rgw: replace user bucket listing with objclass call

instead of directly accessing the omap operation

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: new user objclass
Yehuda Sadeh [Fri, 6 Dec 2013 15:32:08 +0000 (07:32 -0800)]
rgw: new user objclass

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoMerge pull request #1102 from ceph/wip-rgw-civetweb-2
Sage Weil [Fri, 24 Jan 2014 16:31:37 +0000 (08:31 -0800)]
Merge pull request #1102 from ceph/wip-rgw-civetweb-2

Wip rgw civetweb 2

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoMerge pull request #1116 from jcsp/doc_toofull
Josh Durgin [Fri, 24 Jan 2014 06:43:43 +0000 (22:43 -0800)]
Merge pull request #1116 from jcsp/doc_toofull

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
11 years agoMerge pull request #1135 from ceph/use-ceph-sharedptr
Josh Durgin [Fri, 24 Jan 2014 06:36:18 +0000 (22:36 -0800)]
Merge pull request #1135 from ceph/use-ceph-sharedptr

libc++: convert tr1 uses

Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
11 years agolibc++: convert tr1 uses 1135/head
Noah Watkins [Fri, 24 Jan 2014 04:13:57 +0000 (20:13 -0800)]
libc++: convert tr1 uses

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
11 years agodoc: Added domain pool, and changed zone configs to use domain tool so they don't...
John Wilkins [Fri, 24 Jan 2014 01:11:59 +0000 (17:11 -0800)]
doc: Added domain pool, and changed zone configs to use domain tool so they don't clash.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
11 years agodoc: Change zone domain to include "domain" so it is clear.
John Wilkins [Fri, 24 Jan 2014 01:11:23 +0000 (17:11 -0800)]
doc: Change zone domain to include "domain" so it is clear.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
11 years agodoc: Added space between {Query_String} and [E=HTTP ... to solve for 500 error.
John Wilkins [Fri, 24 Jan 2014 00:03:25 +0000 (16:03 -0800)]
doc: Added space between {Query_String} and [E=HTTP ... to solve for 500 error.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
11 years agoMerge pull request #1134 from ceph/wip-backend-uninit-use
athanatos [Thu, 23 Jan 2014 23:44:39 +0000 (15:44 -0800)]
Merge pull request #1134 from ceph/wip-backend-uninit-use

ReplicatedBackend: fix uninitialized use warning/bug

Reviewed-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedBackend: fix uninitialized use warning/bug 1134/head
Greg Farnum [Thu, 23 Jan 2014 23:40:18 +0000 (15:40 -0800)]
ReplicatedBackend: fix uninitialized use warning/bug

Signed-off-by: Greg Farnum <greg@inktank.com>
11 years agodoc: Fixed omission of a comma in zone configuration.
John Wilkins [Thu, 23 Jan 2014 21:34:25 +0000 (13:34 -0800)]
doc: Fixed omission of a comma in zone configuration.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>
11 years agoFileStore: perform LFNIndex lookup without holding fdcache lock
Samuel Just [Mon, 4 Nov 2013 22:02:28 +0000 (14:02 -0800)]
FileStore: perform LFNIndex lookup without holding fdcache lock

Fixes: #7207
Signed-off-by: Samuel Just <sam.just@inktank.com>
Signed-off-by: Greg Farnum <greg@inktank.com>
11 years agoMerge remote-tracking branch 'origin/next'
Greg Farnum [Thu, 23 Jan 2014 20:47:00 +0000 (12:47 -0800)]
Merge remote-tracking branch 'origin/next'

11 years agomongoose: git rm src/mongoose 1102/head
Yehuda Sadeh [Thu, 23 Jan 2014 19:00:05 +0000 (11:00 -0800)]
mongoose: git rm src/mongoose

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoMerge pull request #1132 from ceph/wip-erasure-rule
Loic Dachary [Thu, 23 Jan 2014 18:22:49 +0000 (10:22 -0800)]
Merge pull request #1132 from ceph/wip-erasure-rule

osd/OSDMap: do not create erasure rule by default

Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Loic Dachary <loic@dachary.org>
11 years agocivetweb: md5.inl -> md5.h
Yehuda Sadeh [Wed, 15 Jan 2014 18:09:03 +0000 (10:09 -0800)]
civetweb: md5.inl -> md5.h

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agocivetweb: add include to makefile
Yehuda Sadeh [Wed, 15 Jan 2014 02:25:35 +0000 (18:25 -0800)]
civetweb: add include to makefile

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: modify the civetweb rule
Yehuda Sadeh [Wed, 15 Jan 2014 00:50:19 +0000 (16:50 -0800)]
rgw: modify the civetweb rule

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agocivetweb: fix module uri
Yehuda Sadeh [Mon, 23 Dec 2013 06:29:15 +0000 (22:29 -0800)]
civetweb: fix module uri

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agocivetweb: update submodule
Yehuda Sadeh [Wed, 15 Jan 2014 23:27:11 +0000 (15:27 -0800)]
civetweb: update submodule

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agorgw: switch mongoose to civetweb
Yehuda Sadeh [Mon, 23 Dec 2013 06:16:48 +0000 (22:16 -0800)]
rgw: switch mongoose to civetweb

Fixes: #7054
mongoose is now GPL, using the civetweb fork instead.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
11 years agoMerge pull request #1131 from ceph/use-unordered-map
Sage Weil [Thu, 23 Jan 2014 17:27:03 +0000 (09:27 -0800)]
Merge pull request #1131 from ceph/use-unordered-map

osd: use ceph:: scoped hash_map

Reviewed-by: Sage Weil <sage@inktank.com>
11 years agoosd/OSDMap: do not create erasure rule by default 1132/head
Sage Weil [Thu, 23 Jan 2014 17:16:54 +0000 (09:16 -0800)]
osd/OSDMap: do not create erasure rule by default

If we do, we will require the v2 feature bit from clients.

We could only include feature bits for rules that are actually referenced
by pools, but for now making the user create the rule is simpler.  There is
no need to create this rule ahead of time.

Signed-off-by: Sage Weil <sage@inktank.com>
11 years agoosd: use ceph:: scoped hash_map 1131/head
Noah Watkins [Thu, 23 Jan 2014 15:20:42 +0000 (07:20 -0800)]
osd: use ceph:: scoped hash_map

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
11 years agoMerge pull request #1064 from ceph/port/libc++
Josh Durgin [Thu, 23 Jan 2014 08:27:30 +0000 (00:27 -0800)]
Merge pull request #1064 from ceph/port/libc++

support libc++
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
11 years agoMerge branch 'wip-client-io-final'
Samuel Just [Wed, 22 Jan 2014 22:52:39 +0000 (14:52 -0800)]
Merge branch 'wip-client-io-final'

Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: David Zafman <david.zafman@inktank.com>
11 years agoPGBackend: clarify rollback_stash name and method comments
Samuel Just [Wed, 22 Jan 2014 19:55:16 +0000 (11:55 -0800)]
PGBackend: clarify rollback_stash name and method comments

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoPG: drop messages from down peers
Samuel Just [Sun, 19 Jan 2014 09:17:49 +0000 (01:17 -0800)]
PG: drop messages from down peers

This overlaps with the existing old_peering_msg() mechanism
except in one case: pulls from a replica not in the acting
set.  If such a replica gets marked down, we may resend
pulls to another replica without causing a new interval
to start.  If we recieved, but didn't process, a push in
response to such a pull prior to processing the map marking
the peer down, we might process the push after having reset
the pull state for a different pull operation.  We can
avoid this by discarding ops from down peers.

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: make STARTSYNC a noop
Samuel Just [Fri, 17 Jan 2014 19:14:06 +0000 (11:14 -0800)]
ReplicatedPG: make STARTSYNC a noop

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoPG::calc_acting: consider newest_update_osd when choosing backfill peers
Samuel Just [Thu, 16 Jan 2014 20:04:01 +0000 (12:04 -0800)]
PG::calc_acting: consider newest_update_osd when choosing backfill peers

We must include newest_update_osd->second.log_tail when considering backfill
peers because in GetLog we will request logs back to the min last_update over
our acting_backfill set.  This will result in our log being extended as far
backwards as necessary to pick up any peers which can be log recovered by the
union of newest_update_osd's log and that of the chosen primary.

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: take ReplicatedPGRef in BlessedContext
Samuel Just [Thu, 16 Jan 2014 17:31:59 +0000 (09:31 -0800)]
ReplicatedPG: take ReplicatedPGRef in BlessedContext

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoRadosModel: RollBack dirties the object
Samuel Just [Wed, 15 Jan 2014 19:17:57 +0000 (11:17 -0800)]
RadosModel: RollBack dirties the object

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoRadosModel: undirty with update_object_undirty
Samuel Just [Tue, 14 Jan 2014 21:43:22 +0000 (13:43 -0800)]
RadosModel: undirty with update_object_undirty

Otherwise it doesn't behave properly with snapshots since
update_object_version doesn't add another snapshot entry.

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG::trim_object: remove unused int r; declaration
Samuel Just [Tue, 14 Jan 2014 03:28:35 +0000 (19:28 -0800)]
ReplicatedPG::trim_object: remove unused int r; declaration

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agocommon/hobject: print shard as unsigned, not as char
Samuel Just [Sun, 8 Dec 2013 06:18:24 +0000 (22:18 -0800)]
common/hobject: print shard as unsigned, not as char

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG::_process_copy_chunk: use append
Samuel Just [Fri, 13 Dec 2013 21:14:52 +0000 (13:14 -0800)]
ReplicatedPG::_process_copy_chunk: use append

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: fill in mod_desc for hitset repops
Samuel Just [Mon, 13 Jan 2014 00:26:51 +0000 (16:26 -0800)]
ReplicatedPG: fill in mod_desc for hitset repops

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: use append for write and writefull
Samuel Just [Wed, 15 Jan 2014 17:21:57 +0000 (09:21 -0800)]
ReplicatedPG: use append for write and writefull

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: fill in mod_desc in finish_copyfrom
Samuel Just [Wed, 15 Jan 2014 17:21:30 +0000 (09:21 -0800)]
ReplicatedPG: fill in mod_desc in finish_copyfrom

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG::finish_copyfrom: check new_obs.exists, not obs.exists
Samuel Just [Sat, 7 Dec 2013 23:10:26 +0000 (15:10 -0800)]
ReplicatedPG::finish_copyfrom: check new_obs.exists, not obs.exists

If the transaction previously created the object, the stat update
will have already happened.

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: handle removing the old object in finish_copy_op
Samuel Just [Sat, 7 Dec 2013 22:52:49 +0000 (14:52 -0800)]
ReplicatedPG: handle removing the old object in finish_copy_op

do_osd_ops will need to either copy the old version out of the
way or simply delete it depending on mod_desc.  Thus, defer
handling filling that part in until we finish the copy op.

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: EOPNOTSUPP on ec_pool if there are omaps in the COPY_GET
Samuel Just [Sat, 7 Dec 2013 22:43:22 +0000 (14:43 -0800)]
ReplicatedPG: EOPNOTSUPP on ec_pool if there are omaps in the COPY_GET

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: make COPY_GET async read friendly
Samuel Just [Sat, 7 Dec 2013 21:09:52 +0000 (13:09 -0800)]
ReplicatedPG: make COPY_GET async read friendly

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: requeue in_progress_async_reads on_change
Samuel Just [Thu, 2 Jan 2014 15:34:16 +0000 (07:34 -0800)]
ReplicatedPG: requeue in_progress_async_reads on_change

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: support async reads on ec pools
Samuel Just [Fri, 6 Dec 2013 21:54:04 +0000 (13:54 -0800)]
ReplicatedPG: support async reads on ec pools

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agosrc/: add CEPH_OSD_OP_READ_SYNC
Samuel Just [Fri, 6 Dec 2013 21:51:24 +0000 (13:51 -0800)]
src/: add CEPH_OSD_OP_READ_SYNC

EC pools won't support SYNC reads.  This means that TMAP and friends
along with reads from an object class will not be supported.

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: use pgbackend->objects_read_sync() as appropriate
Samuel Just [Fri, 6 Dec 2013 19:50:29 +0000 (11:50 -0800)]
ReplicatedPG: use pgbackend->objects_read_sync() as appropriate

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoosd/: add sync/async read methods to PGBackend
Samuel Just [Fri, 6 Dec 2013 19:44:02 +0000 (11:44 -0800)]
osd/: add sync/async read methods to PGBackend

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoObjectStore: _collection_move_rename needs to increment ops
Samuel Just [Fri, 6 Dec 2013 01:08:28 +0000 (17:08 -0800)]
ObjectStore: _collection_move_rename needs to increment ops

Bugfix.

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoPGLog,PG: reset can_rollback_to when we get a log entry without a transaction
Samuel Just [Thu, 9 Jan 2014 03:22:21 +0000 (19:22 -0800)]
PGLog,PG: reset can_rollback_to when we get a log entry without a transaction

We cannot rollback past an entry which we didn't actually
apply locally.

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoPGLog: we cannot rollback past a recovered object entry
Samuel Just [Tue, 10 Dec 2013 18:50:59 +0000 (10:50 -0800)]
PGLog: we cannot rollback past a recovered object entry

We don't recover the older versions, so we can't do a rollback.
In general, this is ok since we had enough copies to recover it
in the first place.

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoPGLog: create interface allowing interface user to cleanup/rollback
Samuel Just [Mon, 9 Dec 2013 03:36:51 +0000 (19:36 -0800)]
PGLog: create interface allowing interface user to cleanup/rollback

We need to be able to allow the PGLog interface user to provide
logic for rolling back and trimming log entries.  To that end,
serveral PGLog methods now take a LogEntryHander.

In PGLog::merge_old_entry, if prior_version > info.log_tail and
the object is not missing, we must have rolled back the prior
log entry.  Thus, we don't skip the entry.

To simplify the code, _merge_old_entry has been split out as
a const helper.  This way, proc_replica_log can be reexpressed
as merging the divergent replica log entries with the fully
merged authoritative log.

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoReplicatedPG: Fill in rollback info for log events
Samuel Just [Wed, 4 Dec 2013 00:14:55 +0000 (16:14 -0800)]
ReplicatedPG: Fill in rollback info for log events

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoosd/: introduce xattr caching for ec pools
Samuel Just [Mon, 25 Nov 2013 23:33:57 +0000 (15:33 -0800)]
osd/: introduce xattr caching for ec pools

Signed-off-by: Samuel Just <sam.just@inktank.com>
11 years agoPGBackend,ReplicatedBackend: add support for rolling back log entries
Samuel Just [Wed, 4 Dec 2013 00:25:07 +0000 (16:25 -0800)]
PGBackend,ReplicatedBackend: add support for rolling back log entries

Signed-off-by: Samuel Just <sam.just@inktank.com>