Commit Graph

25912 Commits

Author SHA1 Message Date
Yehuda Sadeh
a0d238c314 rgw: cache obj version
Also keep bucket objv_tracker on the request state.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-10 22:02:20 -07:00
Yehuda Sadeh
922df6c5c7 rgw: op->PutACLs uses the correct set_attr for buckets
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-10 16:12:41 -07:00
Yehuda Sadeh
1f0b947d32 rgw: rados->set_attr() just calls rados->set_attrs()
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-10 15:55:01 -07:00
Yehuda Sadeh
92db7a0105 rgw: metadata handler for bucket set_attr operations
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-10 14:42:52 -07:00
Yehuda Sadeh
8b3cd6e74b rgw: don't handle ECANCELLED anymore
Simplify, remove obsolete logic.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-09 21:08:24 -07:00
Yehuda Sadeh
0557e6c102 rgw: bucket metadata operations go through metadata handler
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-09 14:13:24 -07:00
Yehuda Sadeh
619a68a396 armor: don't break lines by default
Added a new function that breaks the lines, but by default
don't do it.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-09 11:07:17 -07:00
Yehuda Sadeh
770d94d306 rgw: implement metadata hander for buckets data
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-09 11:07:13 -07:00
Yehuda Sadeh
46c3e48ef3 ceph_json: dump timestamp in utc
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 16:26:55 -07:00
Yehuda Sadeh
551571ca88 rgw: datalog trim
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 16:26:46 -07:00
Yehuda Sadeh
ea809f7d63 rgw: bucket index log trim
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 14:22:19 -07:00
Yehuda Sadeh
546ed917fb osd: don't assert if get_omap_iterator() returns NULL
Fixes: #4949
This can happen if the object does not exist and it's
a write operation. Just return -ENOENT.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 12:20:38 -07:00
Yehuda Sadeh
76b736b337 rgw: metadata log trim
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 12:18:17 -07:00
Yehuda Sadeh
ef82ad7ca7 rgw: resend data log entry if took too long
If took too long, we want to resend. Also, fix issue with
renew.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:22:09 -07:00
Yehuda Sadeh
3385c2c5be rgw: more data changes log implementation
Remove a bunch of hard coded stuff. Make renew thread updates
expiration. Only renew if there was more than one request through the
current window.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:22:09 -07:00
Yehuda Sadeh
a37092f9f3 RefCounteCond: keep return val, wait() returns it
It is necessary in some cases to notify waiters of the
actual return value for the action they were waiting on.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:22:08 -07:00
Yehuda Sadeh
f28df17be9 rgw: changed data log renew thread
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:22:08 -07:00
Yehuda Sadeh
39b258c2d8 rgw: limit num of buckets in data changes log
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:22:08 -07:00
Yehuda Sadeh
d5da15259b rgw: use shared_ptr instead of RefCountedObject
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:22:08 -07:00
Yehuda Sadeh
5e642fae34 lru_map: infrastructure for a bounded map
Useful for cache-like maps, where we want to control
the max number of entries in the map.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:22:08 -07:00
Yehuda Sadeh
6659b2b6cf rgw: data changes log, don't always send new requests
We may piggy back on older entries that hasn't expired yet.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:22:08 -07:00
Yehuda Sadeh
171b0bf267 rgw: data changes log, naive implementation
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:22:08 -07:00
Yehuda Sadeh
988dab3e10 rgw: decouple bucket data pool from bucket index pool
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:22:08 -07:00
Yehuda Sadeh
4fbf9a75e2 rgw: fix get_obj() with zero sized obj
Now that even zero sized objs have manifest a
test had to be modified.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:01:17 -07:00
Yehuda Sadeh
0b526d95f3 rgw: don't set shadow obj attr in object metadata
This is incorrect, was only right for pre-manifest objects.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:01:17 -07:00
Yehuda Sadeh
abef2b2464 rgw-admin: object stat also decodes policy
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:01:17 -07:00
Yehuda Sadeh
d05d05a562 rgw: update cli test for radosgw-admin
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:01:17 -07:00
Yehuda Sadeh
2983d987ef Makefile.am: add missing header file
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:01:17 -07:00
Yehuda Sadeh
7132e6e00c rgw-admin: add object stat command
for retrieving object metadata.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:01:17 -07:00
Yehuda Sadeh
49b3d2e05e rgw-admin: bucket list also specifies object namespace
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:01:17 -07:00
Yehuda Sadeh
4b142a1207 rgw: copy_obj uses req_id as tag
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 11:01:17 -07:00
Yehuda Sadeh
b295c64959 rgw: radosgw-admin bucket list --bucket lists bucket objects
Also lists tag for each object.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:46 -07:00
Yehuda Sadeh
3d7b83900c rgw: call rgw_store_user_info() with objv_tracker
another rebase casualty

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:46 -07:00
Yehuda Sadeh
85e4ea9133 rgw-admin: fix some more merge issues
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:46 -07:00
Yehuda Sadeh
fa23b3e786 rgw-admin: fix user_id initialization
broken due to rebase

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:46 -07:00
Yehuda Sadeh
7e08c57d25 rgw: share object tag and index tag
object tag is now being written to the index, so that both
object and index hold the same tag. This is needed so that we
could know whether object and index refer to the same instance.

Also cleanup old legacy code that did atomic ops through cloning
objects.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:46 -07:00
Yehuda Sadeh
2a16bafdd9 rgw: bucket index log fixes
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:46 -07:00
Yehuda Sadeh
871b40137c radosgw-admin: bilog list gets marker and max-entries params
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:46 -07:00
Yehuda Sadeh
b1578ba705 radosgw-admin, cls_rgw: list bucket index log
a new radosgw-admin command to list bucket index log.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:46 -07:00
Yehuda Sadeh
5e196283f0 cls_rgw: bucket index versioning
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:46 -07:00
Yehuda Sadeh
d857896b3a rgw: fix broken radosgw-admin user * commands
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:46 -07:00
Yehuda Sadeh
abd0ab3e1c cls_rgw, rgw: bucket index logs modifications
Add a log to the bucket index.

This commit also ties the "epoch" version that is kept
per index entry to the relevant ceph pool id. This fixes
the dependency on the specific pool where the object was
created, and makes it possible to copy rgw data pools.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:46 -07:00
Yehuda Sadeh
478fe5ee84 rgw: metadata rm
Still needs to fix the way we remove user entries; need to take
different path, similar to put_entry())

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:45 -07:00
Yehuda Sadeh
fe63d44bd0 rgw: cls_log_trim boundary change
end_time is not inclusive

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:45 -07:00
Yehuda Sadeh
288645db16 rgw: show metadata log through radosgw-admin
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:45 -07:00
Yehuda Sadeh
75ada775ac rgw: use new cls_log listing interface
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:45 -07:00
Yehuda Sadeh
8444db6d6d cls_log: adjust listing api
Listing api now also gets end time and a marker.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:45 -07:00
Yehuda Sadeh
cb6d4de494 rgw: log user operations
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:45 -07:00
Yehuda Sadeh
7ca919227f rgw: track object versions between reads and writes
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:57:12 -07:00
Yehuda Sadeh
72220bfaba rgw: initialize meta_mgr earlier
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
2013-05-08 10:55:51 -07:00