Hi ,cephers, Recently I have found that my monitor store is getting larger and larger to be 60GB size. After I send command "compactrange(NULL, NULL)", the size of the store db is only 100MB. I reviewed the ceph code ,and find that ceph monitor write keys increasing one at a time. After increasing 750 keys, it reclaims 250 older keys and send a compactrange(from, to) command asynchronously. In my opinion, the compact sometimes do not take effects when at the same getting a key with iterator in flight. In ceph monitor code ,when it get one key, it use db->NewIterator , iter->seek(key) method, not db->get(key) function. I can not understand why not using db->get(key), it is simple and easy to understand. I tried to replace db->NewIterator with db->get(key) but sometimes I got a deleted value. It's just surprising! Can anyone explain the different between db->NewIterator and db->get(key) when getting a key value? -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html