All of lore.kernel.org
 help / color / mirror / Atom feed
* incorrect object stat sum in PG info after pg split
@ 2017-01-10 10:03 caifeng.zhu
  2017-01-10 12:44 ` Sage Weil
  0 siblings, 1 reply; 3+ messages in thread
From: caifeng.zhu @ 2017-01-10 10:03 UTC (permalink / raw)
  To: ceph-devel

Hi, all

We find that after the number of pgs increased, the object stat sum
in pg info is incorrect. 

The following steps can reproduce the problem.
0 assume the object store is a filestore.
1 create a pool 'foo' with the number of pgs such as 64.
2 write data through clients(rbd, cephfs or rgw) into the pool 'foo'.
3 increase the number of pgs in the pool 'foo' to such as 128.
4 after pgs are settled, use 'ceph pg x.y query' to look at the field
  'num_objects'
5 find the osd shard where pg x.y resides by 'ceph pg map x.y' and
  count the number of objects in the osd shard by command like 
  'find /var/lib/ceph/osd/ceph-0/current/x.y_head/ -type f | wc -l'

The code flow to increase the pg number is as follows:
OSD::advance_pg
	-> OSD::split_pgs
		-> object_stat_sum::split
	-> ReplicatedPG::split_colls
		-> PG::_create
		-> ObjectStore::Transaction::split_collection
			/* indirectly call FileStore::_split_collection 
			 * when applying transaction into file system.
			 */
	-> PG::split_into

Compare object_stat_sum::split with FileStore::_split_collection, the splitting
logic is different and makes stat.sum different from the actual number of objects
in the collection. 

The question is that should we fix this difference? If so, how to fix? 
In current design, it seems very difficult to fix the problem.

A similar bug is reported as tracker.ceph.com/issues/16671, which will occur
if all the exitent data in pool 'foo' is deleted. 

Best Regards




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-01-11  8:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-10 10:03 incorrect object stat sum in PG info after pg split caifeng.zhu
2017-01-10 12:44 ` Sage Weil
2017-01-11  8:08   ` caifeng.zhu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.