RBD journal draft design

2015-06-02 Thread Jason Dillaman
I am posting to get wider review/feedback on this draft design. In support of the RBD mirroring feature [1], a new client-side journaling class will be developed for use by librbd. The implementation is designed to carry opaque journal entry payloads so it will be possible to be re-used in oth

Re: RBD journal draft design

2015-06-02 Thread Gregory Farnum
On Tue, Jun 2, 2015 at 8:11 AM, Jason Dillaman wrote: > I am posting to get wider review/feedback on this draft design. In support > of the RBD mirroring feature [1], a new client-side journaling class will be > developed for use by librbd. The implementation is designed to carry opaque > jou

Re: RBD journal draft design

2015-06-03 Thread John Spray
On 02/06/2015 16:11, Jason Dillaman wrote: I am posting to get wider review/feedback on this draft design. In support of the RBD mirroring feature [1], a new client-side journaling class will be developed for use by librbd. The implementation is designed to carry opaque journal entry paylo

Re: RBD journal draft design

2015-06-03 Thread Jason Dillaman
> > In contrast to the current journal code used by CephFS, the new journal > > code will use sequence numbers to identify journal entries, instead of > > offsets within the journal. > > Am I misremembering what actually got done with our journal v2 format? > I think this is done — or at least we

Re: RBD journal draft design

2015-06-03 Thread Jason Dillaman
> > A new journal object class method will be used to submit journal entry > > append requests. This will act as a gatekeeper for the concurrent client > > case. A successful append will indicate whether or not the journal is now > > full (larger than the max object size), indicating to the clien

Re: RBD journal draft design

2015-06-03 Thread Gregory Farnum
On Wed, Jun 3, 2015 at 9:13 AM, Jason Dillaman wrote: >> > In contrast to the current journal code used by CephFS, the new journal >> > code will use sequence numbers to identify journal entries, instead of >> > offsets within the journal. >> >> Am I misremembering what actually got done with our

Re: RBD journal draft design

2015-06-04 Thread Jason Dillaman
> >> >A successful append will indicate whether or not the journal is now full > >> >(larger than the max object size), indicating to the client that a new > >> >journal object should be used. If the journal is too large, an error > >> >code > >> >responce would alert the client that it needs to w

Re: RBD journal draft design

2015-06-04 Thread Gregory Farnum
On Thu, Jun 4, 2015 at 8:08 AM, Jason Dillaman wrote: >> >> >A successful append will indicate whether or not the journal is now full >> >> >(larger than the max object size), indicating to the client that a new >> >> >journal object should be used. If the journal is too large, an error >> >> >co

Re: RBD journal draft design

2015-06-04 Thread Jason Dillaman
> >> ...Actually, doesn't *not* forcing a coordinated move from one object > >> set to another mean that you don't actually have an ordering guarantee > >> across tags if you replay the journal objects in order? > > > > The ordering between tags was meant to be a soft ordering guarantee (since > >

Re: RBD journal draft design

2015-06-09 Thread Gregory Farnum
On Thu, Jun 4, 2015 at 5:36 PM, Jason Dillaman wrote: >> >> ...Actually, doesn't *not* forcing a coordinated move from one object >> >> set to another mean that you don't actually have an ordering guarantee >> >> across tags if you replay the journal objects in order? >> > >> > The ordering betwee

Re: RBD journal draft design

2015-06-09 Thread Jason Dillaman
> I must not be being clear. Tell me if this scenario is possible: > > * Client A writes to file foo many times and it is journaled to object set 1. > * Client B writes to file bar many times and it starts journaling to > object set 1, but hits the end and moves on to object set 2. > * Client A hi

Re: RBD journal draft design

2015-06-09 Thread Gregory Farnum
On Tue, Jun 9, 2015 at 12:08 PM, Jason Dillaman wrote: >> I must not be being clear. Tell me if this scenario is possible: >> >> * Client A writes to file foo many times and it is journaled to object set 1. >> * Client B writes to file bar many times and it starts journaling to >> object set 1, bu