Re: wip-addr-features

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sage,

This weekend, I read the wip-addr-features patches in your repo and
the related wip-addr patches in ceph repo, I understand that my task
is to make the required-features-patch work by breaking done the 'wip'
into small patches to make the required-features-patch finally work.
I got one question, when I applied a small individual patch, how can I
know it works, will 'make' tell(from the errors)?

btw, I set up an branch, and my work will be pushed there:
https://github.com/zhjwpku/ceph/commits/wip-addr-zhjw

Cheers!
Zhao

On Thu, May 5, 2016 at 11:41 PM, Sage Weil <sweil@xxxxxxxxxx> wrote:
> Hi Zhao,
>
> We identified wip-addr as a desireable first step to fixing up the
> messenger protocol.  It has a bunch of other nice benefits as well, like
> being able to support both IPv4 and IPv6 in the same cluster.
>
> I started rebasing the branch this morning ran into a bunch of non-trivial
> questions about how we should structure the entity_addr_t to support both
> new address types (ipv4, ipv6, xio, etc.) *and* the a new on-wire
> protocol.  But this is actually step 2...
>
> Step 1 is to just get the feature bits plumbed down to every bit of code
> that encodes an entity_addr_t to send over the wire so that we will
> know whether to encode using the new or legacy format.  To do that, I
> pushed a simplified branch, wip-addr-features, to
>
>         https://github.com/liewegas/ceph/commits/wip-addr-features
>
> The are some prelim encoding patches, then a patch that makes
> entity_addr_t and entity_inst_t *optionally* accept feature bits.  Let's
> call it optional-features-patch.  This compiles cleanly, and allows either
> an existing featureless encode
>
>   entity_addr_t foo;
>   ::encode(foo, bl);             // old way we need to eliminate
>
> or a featured encode
>
>   entity_addr_t foo;
>   ::encode(foo, bl, features);   // what we want
>
> compile.
>
> Then there's a patch that makes the old way not compile.  Let's call it
> required-features-patch.  This will make the compiler spit out a million
> errors for all the call sites that still need to be fixed.
>
> Finally, there is a 'wip' commit that fixes some but not all call sites.
> This commit needs to be broken down into simple, individual changes that
> can be tested and reviewed separately.
>
> The idea is to work with the require-features-patch applied to identify
> remaining call sites that need features to encode entity_addr_t.  Create
> small, contained patches that fix individual modules, call sites, or add
> supporting infrastructure (like the changes that expose features to OSD
> cls ops in objclass/*).
>
> Once there are several of those, remove the require-features-patch, and
> make sure the changes are safe and clean and everything still works
> properly.  We can merge these as we go to make incremental progress.
>
> Finally, once *everything* is fixed to pass features to addr encode sites,
> the last commit will be the require-features-patch, and we can get it all
> in master.
>
> That will lay the foundation so that we can change the entity_addr_t
> encoding to support the new protocols and encoding, the entity_addrvec_t
> type, and so on.
>
> (The plan is to replace most instnaces of entity_addr_t with
> entity_addrvec_t--a list of addresses instead of a single one.  And make
> entity_addrvec_t encoded with old features spit out the legacy addr with
> the legacy entity_addr_t encoding so that old clients can still function.)
>
> We're all in #ceph-devel on irc.oftc.net--feel free to ask questions there
> or on this email thread.  Or we can do another video conf session to go
> through it.
>
> Thanks!
> sage
--
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



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux