Project

General

Profile

Actions

Feature #8674

closed

osd: cache tier: avoid promotion on first read

Added by Sage Weil almost 10 years ago. Updated over 8 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
-
% Done:

0%

Source:
Development
Tags:
Backport:
firefly
Reviewed:
Affected Versions:
Pull request ID:

Description

Earlier we proposed adding a new 'read-forward' mode that never promotes on reads (which may make sense for flash). Currently we promote into the cache on first read.

I suspect what will work best for most workloads is something in between, where we promote either on, say, the second read. That is easy: promote only if the object is in the current HitSet.

If we want to promote on 3rd or later read, then it's harder; we'd need to look at multiple HitSets, or make the HitSet a counting bloom filter (potentially useful), or something.

Either way, though, this should either be a tunable that controls the promotion behavior in 'writeback' or 'readonly' cache modes. Another pg_pool_t property?


Related issues 2 (0 open2 closed)

Precedes Ceph - Bug #9064: RadosModel assertion failureResolvedSamuel Just08/11/2014

Actions
Copied to Ceph - Backport #12014: osd: cache tier: avoid promotion on first readResolvedNathan Cutler06/15/2015Actions
Actions #1

Updated by Greg Farnum almost 10 years ago

This naively sounds like a terrible idea — you still have maintain metadata on the object (so you know it's the second read, or whatever), and evict that metadata later on, but you're forcing double remote reads. Given that the cost of waiting for the promote is one of our bad performance drivers, I don't see this being worthwhile...

But anyway, do you have any other details on how this might be done, or what issue it's trying to solve?

Actions #2

Updated by Sage Weil almost 10 years ago

  • Description updated (diff)
  • Source changed from other to Development
Actions #3

Updated by Sage Weil almost 10 years ago

Greg Farnum wrote:

This naively sounds like a terrible idea — you still have maintain metadata on the object (so you know it's the second read, or whatever), and evict that metadata later on, but you're forcing double remote reads. Given that the cost of waiting for the promote is one of our bad performance drivers, I don't see this being worthwhile...

But anyway, do you have any other details on how this might be done, or what issue it's trying to solve?

The idea is that if you have a single read on an object, you don't spend all of the effort doing the writes related to promotion. Or reading the entire backend object (which the read op may not be doing). You only spend the writes putting things into the cache that you have some notion will actually be hot.

Actions #4

Updated by Neil Levine almost 10 years ago

  • Target version changed from 0.83 cont. to 0.84
Actions #5

Updated by Sage Weil over 9 years ago

  • Target version changed from 0.84 to 0.85
Actions #6

Updated by Sage Weil over 9 years ago

  • Target version deleted (0.85)
Actions #7

Updated by Sage Weil over 9 years ago

  • Status changed from New to Pending Backport
  • Target version set to 0.84 cont.
Actions #8

Updated by Ian Colle over 9 years ago

  • Target version changed from 0.84 cont. to 0.88
Actions #9

Updated by Ian Colle over 9 years ago

  • Target version changed from 0.88 to v.actually90
Actions #10

Updated by Ian Colle about 9 years ago

  • Target version changed from v.actually90 to v0.93 - Last Hammer Sprint
Actions #11

Updated by Nathan Cutler almost 9 years ago

  • Backport set to firefly
Actions #12

Updated by Loïc Dachary almost 9 years ago

$ git --no-pager log --oneline 79d1aff1821bc9f21477636df4d0d4e57f2cd008^1..79d1aff1821bc9f21477636df4d0d4e57f2cd008^2
1417ede ceph_test_rados_api_tier: test promote-on-second-read behavior
0ed3adc osd: promotion on 2nd read for cache tiering
Actions #13

Updated by Nathan Cutler over 8 years ago

  • Status changed from Pending Backport to Resolved
Actions

Also available in: Atom PDF