I am busy with some time pressing issues for the last few days. I will think about how the incomplete rack information will affect the balance and update the KIP by early next week.
Thanks, Allen On Tue, Nov 3, 2015 at 9:03 AM, Neha Narkhede <n...@confluent.io> wrote: > Few suggestions on improving the KIP > > *If some brokers have rack, and some do not, the algorithm will thrown an > > exception. This is to prevent incorrect assignment caused by user error.* > > > In the KIP, can you clearly state the user-facing behavior when some > brokers have rack information and some don't. Which actions and requests > will error out and how? > > *Even distribution of partition leadership among brokers* > > > There is some information about arranging the sorted broker list interlaced > with rack ids. Can you describe the changes to the current algorithm in a > little more detail? How does this interlacing work if only a subset of > brokers have the rack id configured? Does this still work if uneven # of > brokers are assigned to each rack? It might work, I'm looking for more > details on the changes, since it will affect the behavior seen by the user > - imbalance on either the leaders or data or both. > > On Mon, Nov 2, 2015 at 6:39 PM, Aditya Auradkar <aaurad...@linkedin.com> > wrote: > > > I think this sounds reasonable. Anyone else have comments? > > > > Aditya > > > > On Tue, Oct 27, 2015 at 5:23 PM, Allen Wang <allenxw...@gmail.com> > wrote: > > > > > During the discussion in the hangout, it was mentioned that it would be > > > desirable that consumers know the rack information of the brokers so > that > > > they can consume from the broker in the same rack to reduce latency. > As I > > > understand this will only be beneficial if consumer can consume from > any > > > broker in ISR, which is not possible now. > > > > > > I suggest we skip the change to TMR. Once the change is made to > consumer > > to > > > be able to consume from any broker in ISR, the rack information can be > > > added to TMR. > > > > > > Another thing I want to confirm is command line behavior. I think the > > > desirable default behavior is to fail fast on command line for > incomplete > > > rack mapping. The error message can include further instruction that > > tells > > > the user to add an extra argument (like "--allow-partial-rackinfo") to > > > suppress the error and do an imperfect rack aware assignment. If the > > > default behavior is to allow incomplete mapping, the error can still be > > > easily missed. > > > > > > The affected command line tools are TopicCommand and > > > ReassignPartitionsCommand. > > > > > > Thanks, > > > Allen > > > > > > > > > > > > > > > > > > On Mon, Oct 26, 2015 at 12:55 PM, Aditya Auradkar < > > aaurad...@linkedin.com> > > > wrote: > > > > > > > Hi Allen, > > > > > > > > For TopicMetadataResponse to understand version, you can bump up the > > > > request version itself. Based on the version of the request, the > > response > > > > can be appropriately serialized. It shouldn't be a huge change. For > > > > example: We went through something similar for ProduceRequest > recently > > ( > > > > https://reviews.apache.org/r/33378/) > > > > I guess the reason protocol information is not included in the TMR is > > > > because the topic itself is independent of any particular protocol > (SSL > > > vs > > > > Plaintext). Having said that, I'm not sure we even need rack > > information > > > in > > > > TMR. What usecase were you thinking of initially? > > > > > > > > For 1 - I'd be fine with adding an option to the command line tools > > that > > > > check rack assignment. For e.g. "--strict-assignment" or something > > > similar. > > > > > > > > Aditya > > > > > > > > On Thu, Oct 22, 2015 at 6:44 PM, Allen Wang <allenxw...@gmail.com> > > > wrote: > > > > > > > > > For 2 and 3, I have updated the KIP. Please take a look. One thing > I > > > have > > > > > changed is removing the proposal to add rack to > > TopicMetadataResponse. > > > > The > > > > > reason is that unlike UpdateMetadataRequest, TopicMetadataResponse > > does > > > > not > > > > > understand version. I don't see a way to include rack without > > breaking > > > > old > > > > > version of clients. That's probably why secure protocol is not > > included > > > > in > > > > > the TopicMetadataResponse either. I think it will be a much bigger > > > change > > > > > to include rack in TopicMetadataResponse. > > > > > > > > > > For 1, my concern is that doing rack aware assignment without > > complete > > > > > broker to rack mapping will result in assignment that is not rack > > aware > > > > and > > > > > fail to provide fault tolerance in the event of rack outage. This > > kind > > > of > > > > > problem will be difficult to surface. And the cost of this problem > is > > > > high: > > > > > you have to do partition reassignment if you are lucky to spot the > > > > problem > > > > > early on or face the consequence of data loss during real rack > > outage. > > > > > > > > > > I do see the concern of fail-fast as it might also cause data loss > if > > > > > producer is not able produce the message due to topic creation > > failure. > > > > Is > > > > > it feasible to treat dynamic topic creation and command tools > > > > differently? > > > > > We allow dynamic topic creation with incomplete broker-rack mapping > > and > > > > > fail fast in command line. Another option is to let user determine > > the > > > > > behavior for command line. For example, by default fail fast in > > command > > > > > line but allow incomplete broker-rack mapping if another switch is > > > > > provided. > > > > > > > > > > > > > > > > > > > > > > > > > On Tue, Oct 20, 2015 at 10:05 AM, Aditya Auradkar < > > > > > aaurad...@linkedin.com.invalid> wrote: > > > > > > > > > > > Hey Allen, > > > > > > > > > > > > 1. If we choose fail fast topic creation, we will have topic > > creation > > > > > > failures while upgrading the cluster. I really doubt we want this > > > > > behavior. > > > > > > Ideally, this should be invisible to clients of a cluster. > > Currently, > > > > > each > > > > > > broker is effectively its own rack. So we probably can use the > rack > > > > > > information whenever possible but not make it a hard requirement. > > To > > > > > extend > > > > > > Gwen's example, one badly configured broker should not degrade > > topic > > > > > > creation for the entire cluster. > > > > > > > > > > > > 2. Upgrade scenario - Can you add a section on the upgrade piece > to > > > > > confirm > > > > > > that old clients will not see errors? I believe > > > > > ZookeeperConsumerConnector > > > > > > reads the Broker objects from ZK. I wanted to confirm that this > > will > > > > not > > > > > > cause any problems. > > > > > > > > > > > > 3. Could you elaborate your proposed changes to the > > > > UpdateMetadataRequest > > > > > > in the "Public Interfaces" section? Personally, I find this > format > > > easy > > > > > to > > > > > > read in terms of wire protocol changes: > > > > > > > > > > > > > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations#KIP-4-Commandlineandcentralizedadministrativeoperations-CreateTopicRequest > > > > > > > > > > > > Aditya > > > > > > > > > > > > On Fri, Oct 16, 2015 at 3:45 PM, Allen Wang < > allenxw...@gmail.com> > > > > > wrote: > > > > > > > > > > > > > KIP is updated include rack as an optional property for broker. > > > > Please > > > > > > take > > > > > > > a look and let me know if more details are needed. > > > > > > > > > > > > > > For the case where some brokers have rack and some do not, the > > > > current > > > > > > KIP > > > > > > > uses the fail-fast behavior. If there are concerns, we can > > further > > > > > > discuss > > > > > > > this in the email thread or next hangout. > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Thu, Oct 15, 2015 at 10:42 AM, Allen Wang < > > allenxw...@gmail.com > > > > > > > > > > wrote: > > > > > > > > > > > > > > > That's a good question. I can think of three actions if the > > rack > > > > > > > > information is incomplete: > > > > > > > > > > > > > > > > 1. Treat the node without rack as if it is on its unique rack > > > > > > > > 2. Disregard all rack information and fallback to current > > > algorithm > > > > > > > > 3. Fail-fast > > > > > > > > > > > > > > > > Now I think about it, one and three make more sense. The > reason > > > for > > > > > > > > fail-fast is that user mistake for not providing the rack may > > > never > > > > > be > > > > > > > > found if we tolerate that and the assignment may not be rack > > > aware > > > > as > > > > > > the > > > > > > > > user has expected and this creates debug problems when things > > > fail. > > > > > > > > > > > > > > > > What do you think? If not fail-fast, is there anyway we can > > make > > > > the > > > > > > user > > > > > > > > error standing out? > > > > > > > > > > > > > > > > > > > > > > > > On Thu, Oct 15, 2015 at 10:17 AM, Gwen Shapira < > > > g...@confluent.io> > > > > > > > wrote: > > > > > > > > > > > > > > > >> Thanks! Just to clarify, when some brokers have rack > > assignment > > > > and > > > > > > some > > > > > > > >> don't, do we act like none of them have it? or like those > > > without > > > > > > > >> assignment are in their own rack? > > > > > > > >> > > > > > > > >> The first scenario is good when first setting up > > rack-awareness, > > > > but > > > > > > the > > > > > > > >> second makes more sense for on-going maintenance (I can > > totally > > > > see > > > > > > > >> someone > > > > > > > >> adding a node and forgetting to set the rack property, we > > don't > > > > want > > > > > > > this > > > > > > > >> to change behavior for anything except the new node). > > > > > > > >> > > > > > > > >> What do you think? > > > > > > > >> > > > > > > > >> Gwen > > > > > > > >> > > > > > > > >> On Thu, Oct 15, 2015 at 10:13 AM, Allen Wang < > > > > allenxw...@gmail.com> > > > > > > > >> wrote: > > > > > > > >> > > > > > > > >> > For scenario 1: > > > > > > > >> > > > > > > > > >> > - Add the rack information to broker property file or > > > > dynamically > > > > > > set > > > > > > > >> it in > > > > > > > >> > the wrapper code to bootstrap Kafka server. You would do > > that > > > > for > > > > > > all > > > > > > > >> > brokers and restart the brokers one by one. > > > > > > > >> > > > > > > > > >> > In this scenario, the complete broker to rack mapping may > > not > > > be > > > > > > > >> available > > > > > > > >> > until every broker is restarted. During that time we fall > > back > > > > to > > > > > > > >> default > > > > > > > >> > replica assignment algorithm. > > > > > > > >> > > > > > > > > >> > For scenario 2: > > > > > > > >> > > > > > > > > >> > - Add the rack information to broker property file or > > > > dynamically > > > > > > set > > > > > > > >> it in > > > > > > > >> > the wrapper code and start the broker. > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > On Wed, Oct 14, 2015 at 2:36 PM, Gwen Shapira < > > > > g...@confluent.io> > > > > > > > >> wrote: > > > > > > > >> > > > > > > > > >> > > Can you clarify the workflow for the following > scenarios: > > > > > > > >> > > > > > > > > > >> > > 1. I currently have 6 brokers and want to add rack > > > information > > > > > for > > > > > > > >> each > > > > > > > >> > > 2. I'm adding a new broker and I want to specify which > > rack > > > it > > > > > > > >> belongs on > > > > > > > >> > > while adding it. > > > > > > > >> > > > > > > > > > >> > > Thanks! > > > > > > > >> > > > > > > > > > >> > > On Tue, Oct 13, 2015 at 2:21 PM, Allen Wang < > > > > > allenxw...@gmail.com > > > > > > > > > > > > > > >> > wrote: > > > > > > > >> > > > > > > > > > >> > > > We discussed the KIP in the hangout today. The > > > > recommendation > > > > > is > > > > > > > to > > > > > > > >> > make > > > > > > > >> > > > rack as a broker property in ZooKeeper. For users with > > > > > existing > > > > > > > rack > > > > > > > >> > > > information stored somewhere, they would need to > > retrieve > > > > the > > > > > > > >> > information > > > > > > > >> > > > at broker start up and dynamically set the rack > > property, > > > > > which > > > > > > > can > > > > > > > >> be > > > > > > > >> > > > implemented as a wrapper to bootstrap broker. There > will > > > be > > > > no > > > > > > > >> > interface > > > > > > > >> > > or > > > > > > > >> > > > pluggable implementation to retrieve the rack > > information. > > > > > > > >> > > > > > > > > > > >> > > > The assumption is that you always need to restart the > > > broker > > > > > to > > > > > > > >> make a > > > > > > > >> > > > change to the rack. > > > > > > > >> > > > > > > > > > > >> > > > Once the rack becomes a broker property, it will be > > > possible > > > > > to > > > > > > > make > > > > > > > >> > rack > > > > > > > >> > > > part of the meta data to help the consumer choose > which > > in > > > > > sync > > > > > > > >> replica > > > > > > > >> > > to > > > > > > > >> > > > consume from as part of the future consumer > enhancement. > > > > > > > >> > > > > > > > > > > >> > > > I will update the KIP. > > > > > > > >> > > > > > > > > > > >> > > > Thanks, > > > > > > > >> > > > Allen > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > > >> > > > On Thu, Oct 8, 2015 at 9:23 AM, Allen Wang < > > > > > > allenxw...@gmail.com> > > > > > > > >> > wrote: > > > > > > > >> > > > > > > > > > > >> > > > > I attended Tuesday's KIP hangout but this KIP was > not > > > > > > discussed > > > > > > > >> due > > > > > > > >> > to > > > > > > > >> > > > > time constraint. > > > > > > > >> > > > > > > > > > > > >> > > > > However, after hearing discussion of KIP-35, I have > > the > > > > > > feeling > > > > > > > >> that > > > > > > > >> > > > > incompatibility (caused by new broker property) > > between > > > > > > brokers > > > > > > > >> with > > > > > > > >> > > > > different versions will be solved there. In > addition, > > > > > having > > > > > > > >> stack > > > > > > > >> > in > > > > > > > >> > > > > broker property as meta data may also help consumers > > in > > > > the > > > > > > > >> future. > > > > > > > >> > So > > > > > > > >> > > I > > > > > > > >> > > > am > > > > > > > >> > > > > open to adding stack property to broker. > > > > > > > >> > > > > > > > > > > > >> > > > > Hopefully we can discuss this in the next KIP > hangout. > > > > > > > >> > > > > > > > > > > > >> > > > > On Wed, Sep 30, 2015 at 2:46 PM, Allen Wang < > > > > > > > allenxw...@gmail.com > > > > > > > >> > > > > > > > > >> > > > wrote: > > > > > > > >> > > > > > > > > > > > >> > > > >> Can you send me the information on the next KIP > > > hangout? > > > > > > > >> > > > >> > > > > > > > >> > > > >> Currently the broker-rack mapping is not cached. In > > > > > > KafkaApis, > > > > > > > >> > > > >> RackLocator.getRackInfo() is called each time the > > > mapping > > > > > is > > > > > > > >> needed > > > > > > > >> > > for > > > > > > > >> > > > >> auto topic creation. This will ensure latest > mapping > > is > > > > > used > > > > > > at > > > > > > > >> any > > > > > > > >> > > > time. > > > > > > > >> > > > >> > > > > > > > >> > > > >> The ability to get the complete mapping makes it > > simple > > > > to > > > > > > > reuse > > > > > > > >> the > > > > > > > >> > > > same > > > > > > > >> > > > >> interface in command line tools. > > > > > > > >> > > > >> > > > > > > > >> > > > >> > > > > > > > >> > > > >> On Wed, Sep 30, 2015 at 11:01 AM, Aditya Auradkar < > > > > > > > >> > > > >> aaurad...@linkedin.com.invalid> wrote: > > > > > > > >> > > > >> > > > > > > > >> > > > >>> Perhaps we discuss this during the next KIP > hangout? > > > > > > > >> > > > >>> > > > > > > > >> > > > >>> I do see that a pluggable rack locator can be > useful > > > > but I > > > > > > do > > > > > > > >> see a > > > > > > > >> > > few > > > > > > > >> > > > >>> concerns: > > > > > > > >> > > > >>> > > > > > > > >> > > > >>> - The RackLocator (as described in the document), > > > > implies > > > > > > that > > > > > > > >> it > > > > > > > >> > can > > > > > > > >> > > > >>> discover rack information for any node in the > > cluster. > > > > How > > > > > > > does > > > > > > > >> it > > > > > > > >> > > deal > > > > > > > >> > > > >>> with rack location changes? For example, if I > moved > > > > broker > > > > > > id > > > > > > > >> (1) > > > > > > > >> > > from > > > > > > > >> > > > >>> rack > > > > > > > >> > > > >>> X to Y, I only have to start that broker with a > > newer > > > > rack > > > > > > > >> config. > > > > > > > >> > If > > > > > > > >> > > > >>> RackLocator discovers broker -> rack information > at > > > > start > > > > > up > > > > > > > >> time, > > > > > > > >> > > any > > > > > > > >> > > > >>> change to a broker will require bouncing the > entire > > > > > cluster > > > > > > > >> since > > > > > > > >> > > > >>> createTopic requests can be sent to any node in > the > > > > > cluster. > > > > > > > >> > > > >>> For this reason it may be simpler to have each > node > > be > > > > > aware > > > > > > > of > > > > > > > >> its > > > > > > > >> > > own > > > > > > > >> > > > >>> rack and persist it in ZK during start up time. > > > > > > > >> > > > >>> > > > > > > > >> > > > >>> - A pluggable RackLocator relies on an external > > > service > > > > > > being > > > > > > > >> > > available > > > > > > > >> > > > >>> to > > > > > > > >> > > > >>> serve rack information. > > > > > > > >> > > > >>> > > > > > > > >> > > > >>> Out of curiosity, I looked up how a couple of > other > > > > > systems > > > > > > > deal > > > > > > > >> > with > > > > > > > >> > > > >>> zone/rack awareness. > > > > > > > >> > > > >>> For Cassandra some interesting modes are: > > > > > > > >> > > > >>> (Property File configuration) > > > > > > > >> > > > >>> > > > > > > > >> > > > >>> > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > http://docs.datastax.com/en/cassandra/2.0/cassandra/architecture/architectureSnitchPFSnitch_t.html > > > > > > > >> > > > >>> (Dynamic inference) > > > > > > > >> > > > >>> > > > > > > > >> > > > >>> > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > http://docs.datastax.com/en/cassandra/2.0/cassandra/architecture/architectureSnitchRackInf_c.html > > > > > > > >> > > > >>> > > > > > > > >> > > > >>> Voldemort does a static node -> zone assignment > > based > > > on > > > > > > > >> > > configuration. > > > > > > > >> > > > >>> > > > > > > > >> > > > >>> Aditya > > > > > > > >> > > > >>> > > > > > > > >> > > > >>> On Wed, Sep 30, 2015 at 10:05 AM, Allen Wang < > > > > > > > >> allenxw...@gmail.com > > > > > > > >> > > > > > > > > > >> > > > >>> wrote: > > > > > > > >> > > > >>> > > > > > > > >> > > > >>> > I would like to see if we can do both: > > > > > > > >> > > > >>> > > > > > > > > >> > > > >>> > - Make RackLocator pluggable to facilitate > > migration > > > > > with > > > > > > > >> > existing > > > > > > > >> > > > >>> > broker-rack mapping > > > > > > > >> > > > >>> > > > > > > > > >> > > > >>> > - Make rack an optional property for broker. If > > rack > > > > is > > > > > > > >> available > > > > > > > >> > > > from > > > > > > > >> > > > >>> > broker, treat it as source of truth. For users > > with > > > > > > existing > > > > > > > >> > > > >>> broker-rack > > > > > > > >> > > > >>> > mapping somewhere else, they can use the > pluggable > > > way > > > > > or > > > > > > > they > > > > > > > >> > can > > > > > > > >> > > > >>> transfer > > > > > > > >> > > > >>> > the mapping to the broker rack property. > > > > > > > >> > > > >>> > > > > > > > > >> > > > >>> > One thing I am not sure is what happens at > rolling > > > > > upgrade > > > > > > > >> when > > > > > > > >> > we > > > > > > > >> > > > have > > > > > > > >> > > > >>> > rack as a broker property. For brokers with > older > > > > > version > > > > > > of > > > > > > > >> > Kafka, > > > > > > > >> > > > >>> will it > > > > > > > >> > > > >>> > cause problem for them? If so, is there any > > > > workaround? > > > > > I > > > > > > > also > > > > > > > >> > > think > > > > > > > >> > > > it > > > > > > > >> > > > >>> > would be better not to have rack in the > controller > > > > wire > > > > > > > >> protocol > > > > > > > >> > > but > > > > > > > >> > > > >>> not > > > > > > > >> > > > >>> > sure if it is achievable. > > > > > > > >> > > > >>> > > > > > > > > >> > > > >>> > Thanks, > > > > > > > >> > > > >>> > Allen > > > > > > > >> > > > >>> > > > > > > > > >> > > > >>> > > > > > > > > >> > > > >>> > > > > > > > > >> > > > >>> > > > > > > > > >> > > > >>> > > > > > > > > >> > > > >>> > On Mon, Sep 28, 2015 at 4:55 PM, Todd Palino < > > > > > > > >> tpal...@gmail.com> > > > > > > > >> > > > >>> wrote: > > > > > > > >> > > > >>> > > > > > > > > >> > > > >>> > > I tend to like the idea of a pluggable > locator. > > > For > > > > > > > >> example, we > > > > > > > >> > > > >>> already > > > > > > > >> > > > >>> > > have an interface for discovering information > > > about > > > > > the > > > > > > > >> > physical > > > > > > > >> > > > >>> location > > > > > > > >> > > > >>> > > of servers. I don't relish the idea of having > to > > > > > > maintain > > > > > > > >> data > > > > > > > >> > in > > > > > > > >> > > > >>> > multiple > > > > > > > >> > > > >>> > > places. > > > > > > > >> > > > >>> > > > > > > > > > >> > > > >>> > > -Todd > > > > > > > >> > > > >>> > > > > > > > > > >> > > > >>> > > On Mon, Sep 28, 2015 at 4:48 PM, Aditya > > Auradkar < > > > > > > > >> > > > >>> > > aaurad...@linkedin.com.invalid> wrote: > > > > > > > >> > > > >>> > > > > > > > > > >> > > > >>> > > > Thanks for starting this KIP Allen. > > > > > > > >> > > > >>> > > > > > > > > > > >> > > > >>> > > > I agree with Gwen that having a RackLocator > > > class > > > > > that > > > > > > > is > > > > > > > >> > > > pluggable > > > > > > > >> > > > >>> > seems > > > > > > > >> > > > >>> > > > to be too complex. The KIP refers to > > potentially > > > > > > non-ZK > > > > > > > >> > storage > > > > > > > >> > > > >>> for the > > > > > > > >> > > > >>> > > > rack info which I don't think is necessary. > > > > > > > >> > > > >>> > > > > > > > > > > >> > > > >>> > > > Perhaps we can persist this info in zk under > > > > > > > >> > > > >>> /brokers/ids/<broker_id> > > > > > > > >> > > > >>> > > > similar to other broker properties and add a > > > > config > > > > > in > > > > > > > >> > > > KafkaConfig > > > > > > > >> > > > >>> > called > > > > > > > >> > > > >>> > > > "rack". > > > > > > > >> > > > >>> > > > > > > > > > > {"jmx_port":-1,"endpoints":[...],"host":"xxx","port":yyy, > > > > > > > >> > > "rack": > > > > > > > >> > > > >>> > "abc"} > > > > > > > >> > > > >>> > > > > > > > > > > >> > > > >>> > > > Aditya > > > > > > > >> > > > >>> > > > > > > > > > > >> > > > >>> > > > On Mon, Sep 28, 2015 at 2:30 PM, Gwen > Shapira > > < > > > > > > > >> > > g...@confluent.io > > > > > > > >> > > > > > > > > > > > >> > > > >>> > wrote: > > > > > > > >> > > > >>> > > > > > > > > > > >> > > > >>> > > > > Hi, > > > > > > > >> > > > >>> > > > > > > > > > > > >> > > > >>> > > > > First, thanks for putting out a KIP for > > this. > > > > This > > > > > > is > > > > > > > >> super > > > > > > > >> > > > >>> important > > > > > > > >> > > > >>> > > for > > > > > > > >> > > > >>> > > > > production deployments of Kafka. > > > > > > > >> > > > >>> > > > > > > > > > > > >> > > > >>> > > > > Few questions: > > > > > > > >> > > > >>> > > > > > > > > > > > >> > > > >>> > > > > 1) Are we sure we want "as many racks as > > > > > possible"? > > > > > > > I'd > > > > > > > >> > want > > > > > > > >> > > to > > > > > > > >> > > > >>> > balance > > > > > > > >> > > > >>> > > > > between safety (more racks) and network > > > > > utilization > > > > > > > >> > (traffic > > > > > > > >> > > > >>> within a > > > > > > > >> > > > >>> > > > rack > > > > > > > >> > > > >>> > > > > uses the high-bandwidth TOR switch). One > > > replica > > > > > on > > > > > > a > > > > > > > >> > > different > > > > > > > >> > > > >>> rack > > > > > > > >> > > > >>> > > and > > > > > > > >> > > > >>> > > > > the rest on same rack (if possible) sounds > > > > better > > > > > to > > > > > > > me. > > > > > > > >> > > > >>> > > > > > > > > > > > >> > > > >>> > > > > 2) Rack-locator class seems overly complex > > > > > compared > > > > > > to > > > > > > > >> > > adding a > > > > > > > >> > > > >>> > > > rack.number > > > > > > > >> > > > >>> > > > > property to the broker properties file. > Why > > do > > > > we > > > > > > want > > > > > > > >> > that? > > > > > > > >> > > > >>> > > > > > > > > > > > >> > > > >>> > > > > Gwen > > > > > > > >> > > > >>> > > > > > > > > > > > >> > > > >>> > > > > > > > > > > > >> > > > >>> > > > > > > > > > > > >> > > > >>> > > > > On Mon, Sep 28, 2015 at 12:15 PM, Allen > > Wang < > > > > > > > >> > > > >>> allenxw...@gmail.com> > > > > > > > >> > > > >>> > > > wrote: > > > > > > > >> > > > >>> > > > > > > > > > > > >> > > > >>> > > > > > Hello Kafka Developers, > > > > > > > >> > > > >>> > > > > > > > > > > > > >> > > > >>> > > > > > I just created KIP-36 for rack aware > > replica > > > > > > > >> assignment. > > > > > > > >> > > > >>> > > > > > > > > > > > > >> > > > >>> > > > > > > > > > > > > >> > > > >>> > > > > > > > > > > > > >> > > > >>> > > > > > > > > > > > >> > > > >>> > > > > > > > > > > >> > > > >>> > > > > > > > > > >> > > > >>> > > > > > > > > >> > > > >>> > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-36+Rack+aware+replica+assignment > > > > > > > >> > > > >>> > > > > > > > > > > > > >> > > > >>> > > > > > The goal is to utilize the isolation > > > provided > > > > by > > > > > > the > > > > > > > >> > racks > > > > > > > >> > > in > > > > > > > >> > > > >>> data > > > > > > > >> > > > >>> > > > center > > > > > > > >> > > > >>> > > > > > and distribute replicas to racks to > > provide > > > > > fault > > > > > > > >> > > tolerance. > > > > > > > >> > > > >>> > > > > > > > > > > > > >> > > > >>> > > > > > Comments are welcome. > > > > > > > >> > > > >>> > > > > > > > > > > > > >> > > > >>> > > > > > Thanks, > > > > > > > >> > > > >>> > > > > > Allen > > > > > > > >> > > > >>> > > > > > > > > > > > > >> > > > >>> > > > > > > > > > > > >> > > > >>> > > > > > > > > > > >> > > > >>> > > > > > > > > > >> > > > >>> > > > > > > > > >> > > > >>> > > > > > > > >> > > > >> > > > > > > > >> > > > >> > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > Thanks, > Neha >