Correction: Non-Binding +0 count is 2.

On Fri, Feb 24, 2017 at 7:44 PM, Guozhang Wang <wangg...@gmail.com> wrote:

> Hello all,
>
> Thanks a billion for your votes and comments. We have collected the
> following votes so far (+1 from myself as well):
>
> Binding +1: 9
>
>   Gwen Shapira
>   Jay Kreps
>   Becket Qin
>   Jun Rao
>   Ismael Juma
>   Jason Gustafson
>   Sriram Subramanian
>   Joel Koshy
>   Guozhang Wang
>
> Binding -1: 0
>
> Non-Binding +1: 4
>
>   Eno Thereska
>   Matthias J. Sax
>   Bill Bejeck
>   Rajini Sivaram
>
> Non Binding -1: 0
>
> Non binding +0: 0
>
>   Tom Crayford
>   Michael Pearce
>
>
> Based on the above result, I am now closing this voting thread as accepted.
>
> Thanks again for your comments.
>
> Guozhang
>
>
> On Fri, Feb 24, 2017 at 11:50 AM, Sriram Subramanian <r...@confluent.io>
> wrote:
>
>> +1. Great work in driving this to a consensus. Lots of good constructive
>> conversations.
>>
>> On Fri, Feb 24, 2017 at 11:48 AM, Jason Gustafson <ja...@confluent.io>
>> wrote:
>>
>> > +1 from me (duh). Thanks to all the reviewers. The KIP has been much
>> > improved because of it!
>> >
>> > -Jason
>> >
>> > On Wed, Feb 22, 2017 at 8:48 AM, Ismael Juma <ism...@juma.me.uk> wrote:
>> >
>> > > Great work on the proposal and iterating on it based on community
>> > feedback.
>> > > As Jun (and others) said, it's likely that minor changes will happen
>> as
>> > the
>> > > PR is reviewed and additional testing takes place since this is a
>> > > significant change.
>> > >
>> > > I am +1 (binding) on the proposal without optional keys and values to
>> > keep
>> > > things consistent. If we show during performance testing that this is
>> > > worthwhile, we can update the proposal.
>> > >
>> > > Ismael
>> > >
>> > > On Tue, Feb 21, 2017 at 6:23 PM, Jun Rao <j...@confluent.io> wrote:
>> > >
>> > > > It seems that it's simpler and more consistent to avoid optional
>> keys
>> > and
>> > > > values. Not sure if it's worth squeezing every byte at the expense
>> of
>> > > > additional complexity. Other than that, +1 from me.
>> > > >
>> > > > Also, since this is a large KIP, minor changes may arise as we start
>> > the
>> > > > implementation. It would be good if we can keep the community
>> posted of
>> > > > those changes, if any.
>> > > >
>> > > > Thanks,
>> > > >
>> > > > Jun
>> > > >
>> > > > On Tue, Feb 21, 2017 at 4:33 PM, Michael Pearce <
>> michael.pea...@ig.com
>> > >
>> > > > wrote:
>> > > >
>> > > > > If the argument and objective within this KIP is to keep the
>> overhead
>> > > of
>> > > > > the protocol as small as possible and remove redundancy, and every
>> > byte
>> > > > is
>> > > > > being counted and the introduction of varInts, then it would make
>> > sense
>> > > > to
>> > > > > use attributes to me.
>> > > > >
>> > > > >
>> > > > > On 22/02/2017, 00:14, "Jason Gustafson" <ja...@confluent.io>
>> wrote:
>> > > > >
>> > > > >     Done. I've left the key and value as optional since we may not
>> > have
>> > > > > reached
>> > > > >     consensus on whether to use attributes or not. Perhaps we
>> should
>> > > just
>> > > > > keep
>> > > > >     it simple and not do it? The benefit seems small.
>> > > > >
>> > > > >     -Jason
>> > > > >
>> > > > >     On Tue, Feb 21, 2017 at 4:05 PM, Michael Pearce <
>> > > > michael.pea...@ig.com
>> > > > > >
>> > > > >     wrote:
>> > > > >
>> > > > >     > Ok, no worries, can you add it back ValueLen on this KIP,
>> and
>> > > > update
>> > > > > the
>> > > > >     > doc, then we can work from that ☺
>> > > > >     >
>> > > > >     > Cheers
>> > > > >     > Mike
>> > > > >     >
>> > > > >     > On 22/02/2017, 00:02, "Jason Gustafson" <ja...@confluent.io
>> >
>> > > > wrote:
>> > > > >     >
>> > > > >     >     I feel it was a little odd to leave out the value length
>> > > > anyway,
>> > > > > so I
>> > > > >     > would
>> > > > >     >     rather add it back and put headers at the end. This is
>> more
>> > > > > consistent
>> > > > >     > with
>> > > > >     >     the rest of the Kafka protocol.
>> > > > >     >
>> > > > >     >     -Jason
>> > > > >     >
>> > > > >     >     On Tue, Feb 21, 2017 at 3:58 PM, Michael Pearce <
>> > > > > michael.pea...@ig.com
>> > > > >     > >
>> > > > >     >     wrote:
>> > > > >     >
>> > > > >     >     > Or we keep as is (valuelen removed), and headers are
>> > added
>> > > > with
>> > > > >     > headers
>> > > > >     >     > length..
>> > > > >     >     >
>> > > > >     >     > On 21/02/2017, 23:38, "Apurva Mehta" <
>> > apu...@confluent.io>
>> > > > > wrote:
>> > > > >     >     >
>> > > > >     >     >     Right now, we don't need the value length: since
>> it
>> > is
>> > > > the
>> > > > > last
>> > > > >     > item
>> > > > >     >     > in the
>> > > > >     >     >     message, and we have the message length, we can
>> > deduce
>> > > > the
>> > > > > value
>> > > > >     >     > length.
>> > > > >     >     >     However, if we are adding record headers to the
>> end,
>> > we
>> > > > > would
>> > > > >     > need to
>> > > > >     >     >     introduce the value length along with that change.
>> > > > >     >     >
>> > > > >     >     >     On Tue, Feb 21, 2017 at 3:34 PM, Michael Pearce <
>> > > > >     > michael.pea...@ig.com
>> > > > >     >     > >
>> > > > >     >     >     wrote:
>> > > > >     >     >
>> > > > >     >     >     > It seems I cannot add comment on the doc.
>> > > > >     >     >     >
>> > > > >     >     >     > In the section around the message protocol.
>> > > > >     >     >     >
>> > > > >     >     >     > It has stated:
>> > > > >     >     >     >
>> > > > >     >     >     > Message =>
>> > > > >     >     >     > Length => uintVar
>> > > > >     >     >     > Attributes => int8
>> > > > >     >     >     > TimestampDelta => intVar
>> > > > >     >     >     > OffsetDelta => uintVar
>> > > > >     >     >     > KeyLen => uintVar [OPTIONAL]
>> > > > >     >     >     > Key => data [OPTIONAL]
>> > > > >     >     >     > Value => data [OPTIONAL]
>> > > > >     >     >     >
>> > > > >     >     >     > Should it not be: (added missing value len)
>> > > > >     >     >     >
>> > > > >     >     >     > Message =>
>> > > > >     >     >     > Length => uintVar
>> > > > >     >     >     > Attributes => int8
>> > > > >     >     >     > TimestampDelta => intVar
>> > > > >     >     >     > OffsetDelta => uintVar
>> > > > >     >     >     > KeyLen => uintVar [OPTIONAL]
>> > > > >     >     >     > Key => data [OPTIONAL]
>> > > > >     >     >     > ValueLen => uintVar [OPTIONAL]
>> > > > >     >     >     > Value => data [OPTIONAL]
>> > > > >     >     >     >
>> > > > >     >     >     >
>> > > > >     >     >     >
>> > > > >     >     >     > On 21/02/2017, 23:07, "Joel Koshy" <
>> > > > jjkosh...@gmail.com>
>> > > > >     > wrote:
>> > > > >     >     >     >
>> > > > >     >     >     >     I left a couple of comments/questions
>> directly
>> > on
>> > > > the
>> > > > >     > google-doc
>> > > > >     >     >     >     <https://docs.google.com/document/d/11Jqy_
>> > > > >     >     >     > GjUGtdXJK94XGsEIK7CP1SnQGdp2eF0wSw9ra8>
>> > > > >     >     >     >     - I found it much more tractable for a
>> proposal
>> > > of
>> > > > > this
>> > > > >     > size to
>> > > > >     >     >     > discuss in
>> > > > >     >     >     >     context within the doc. The permissions on
>> the
>> > > doc
>> > > > > don't
>> > > > >     > let
>> > > > >     >     > everyone
>> > > > >     >     >     > view
>> > > > >     >     >     >     comments, so if there are any material
>> changes
>> > > that
>> > > > > come
>> > > > >     > out of
>> > > > >     >     > the
>> > > > >     >     >     >     discussions in those comment threads we can
>> > > > > summarize here.
>> > > > >     >     >     >
>> > > > >     >     >     >     Thanks,
>> > > > >     >     >     >
>> > > > >     >     >     >     Joel
>> > > > >     >     >     >
>> > > > >     >     >     >     On Mon, Feb 20, 2017 at 4:08 PM, Becket Qin
>> <
>> > > > >     >     > becket....@gmail.com>
>> > > > >     >     >     > wrote:
>> > > > >     >     >     >
>> > > > >     >     >     >     > Thanks for the explanation, Guozhang. That
>> > > makes
>> > > > > sense.
>> > > > >     >     >     >     >
>> > > > >     >     >     >     > On Sun, Feb 19, 2017 at 7:28 PM, Guozhang
>> > Wang
>> > > <
>> > > > >     >     > wangg...@gmail.com>
>> > > > >     >     >     > wrote:
>> > > > >     >     >     >     >
>> > > > >     >     >     >     > > Thanks Becket.
>> > > > >     >     >     >     > >
>> > > > >     >     >     >     > > Actually sequence is associated with a
>> > > message,
>> > > > > not a
>> > > > >     >     > message set.
>> > > > >     >     >     > For
>> > > > >     >     >     >     > > example if a message set sent by
>> producer
>> > > > > contains 100
>> > > > >     >     > messages,
>> > > > >     >     >     > and the
>> > > > >     >     >     >     > > first message's sequence is 5, then the
>> > last
>> > > > > message's
>> > > > >     >     > sequence
>> > > > >     >     >     > number
>> > > > >     >     >     >     > > would be 104, and the next message set's
>> > > first
>> > > > >     > sequence is
>> > > > >     >     >     > expected to be
>> > > > >     >     >     >     > > 105.
>> > > > >     >     >     >     > >
>> > > > >     >     >     >     > >
>> > > > >     >     >     >     > > Guozhang
>> > > > >     >     >     >     > >
>> > > > >     >     >     >     > >
>> > > > >     >     >     >     > > On Sun, Feb 19, 2017 at 4:48 PM, Becket
>> > Qin <
>> > > > >     >     > becket....@gmail.com>
>> > > > >     >     >     >     > wrote:
>> > > > >     >     >     >     > >
>> > > > >     >     >     >     > > > +1. Thanks for the great work on the
>> KIP!
>> > > > >     >     >     >     > > >
>> > > > >     >     >     >     > > > I have only one minor question, in the
>> > wiki
>> > > > > (and the
>> > > > >     > doc)
>> > > > >     >     > the new
>> > > > >     >     >     >     > message
>> > > > >     >     >     >     > > > set format has a "FirstSequence"
>> field,
>> > > > should
>> > > > > it
>> > > > >     > just be
>> > > > >     >     >     > "Sequence" if
>> > > > >     >     >     >     > > the
>> > > > >     >     >     >     > > > sequence is always associated with a
>> > > message
>> > > > > set?
>> > > > >     >     >     >     > > >
>> > > > >     >     >     >     > > > On Fri, Feb 17, 2017 at 3:28 AM,
>> Michael
>> > > > > Pearce <
>> > > > >     >     >     > michael.pea...@ig.com
>> > > > >     >     >     >     > >
>> > > > >     >     >     >     > > > wrote:
>> > > > >     >     >     >     > > >
>> > > > >     >     >     >     > > > > +0
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > > I think need some unified agreement
>> on
>> > > the
>> > > > > VarInts.
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > > Would this also change in all other
>> > > area’s
>> > > > > of the
>> > > > >     >     > protocol,
>> > > > >     >     >     > e.g.
>> > > > >     >     >     >     > value
>> > > > >     >     >     >     > > > and
>> > > > >     >     >     >     > > > > key length in message protocol, to
>> keep
>> > > > this
>> > > > >     > uniform
>> > > > >     >     > across all
>> > > > >     >     >     >     > > protocols
>> > > > >     >     >     >     > > > > going forwards?
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > > On 17/02/2017, 00:23, "Apurva
>> Mehta" <
>> > > > >     >     > apu...@confluent.io>
>> > > > >     >     >     > wrote:
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >     Hi Jun,
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >     Thanks for the reply. Comments
>> > > inline.
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >     On Thu, Feb 16, 2017 at 2:29 PM,
>> > Jun
>> > > > Rao
>> > > > > <
>> > > > >     >     > j...@confluent.io
>> > > > >     >     >     > >
>> > > > >     >     >     >     > wrote:
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >     > Hi, Apurva,
>> > > > >     >     >     >     > > > >     >
>> > > > >     >     >     >     > > > >     > Thanks for the reply. A
>> couple of
>> > > > > comment
>> > > > >     > below.
>> > > > >     >     >     >     > > > >     >
>> > > > >     >     >     >     > > > >     > On Wed, Feb 15, 2017 at 9:45
>> PM,
>> > > > Apurva
>> > > > >     > Mehta <
>> > > > >     >     >     >     > > apu...@confluent.io
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > > wrote:
>> > > > >     >     >     >     > > > >     >
>> > > > >     >     >     >     > > > >     > > Hi Jun,
>> > > > >     >     >     >     > > > >     > >
>> > > > >     >     >     >     > > > >     > > Answers inline:
>> > > > >     >     >     >     > > > >     > >
>> > > > >     >     >     >     > > > >     > > 210. Pid snapshots: Is the
>> > number
>> > > > of
>> > > > > pid
>> > > > >     > snapshot
>> > > > >     >     >     >     > configurable
>> > > > >     >     >     >     > > or
>> > > > >     >     >     >     > > > >     > hardcoded
>> > > > >     >     >     >     > > > >     > > > with 2? When do we decide
>> to
>> > > roll
>> > > > > a new
>> > > > >     >     > snapshot?
>> > > > >     >     >     > Based on
>> > > > >     >     >     >     > > > time,
>> > > > >     >     >     >     > > > > byte,
>> > > > >     >     >     >     > > > >     > or
>> > > > >     >     >     >     > > > >     > > > offset? Is that
>> configurable
>> > > too?
>> > > > >     >     >     >     > > > >     > > >
>> > > > >     >     >     >     > > > >     >
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >     > When a replica becomes a
>> > follower,
>> > > we
>> > > > > do a
>> > > > >     > bit log
>> > > > >     >     >     > truncation.
>> > > > >     >     >     >     > > > > Having an
>> > > > >     >     >     >     > > > >     > older snapshot allows us to
>> > recover
>> > > > the
>> > > > >     >     > PID->sequence
>> > > > >     >     >     > mapping
>> > > > >     >     >     >     > > much
>> > > > >     >     >     >     > > > > quicker
>> > > > >     >     >     >     > > > >     > than rescanning the whole log.
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >     This is a good point. I have
>> > updated
>> > > > the
>> > > > > doc
>> > > > >     > with a
>> > > > >     >     > more
>> > > > >     >     >     > detailed
>> > > > >     >     >     >     > > > > proposal.
>> > > > >     >     >     >     > > > >     Essentially, snapshots will be
>> > > created
>> > > > > on a
>> > > > >     > periodic
>> > > > >     >     >     > basis. A
>> > > > >     >     >     >     > > > > reasonable
>> > > > >     >     >     >     > > > >     period would be every 30 or 60
>> > > seconds.
>> > > > > We
>> > > > >     > will keep
>> > > > >     >     > at
>> > > > >     >     >     > most 2
>> > > > >     >     >     >     > > copies
>> > > > >     >     >     >     > > > > of
>> > > > >     >     >     >     > > > >     the snapshot file. With this
>> setup,
>> > > we
>> > > > > would
>> > > > >     > have to
>> > > > >     >     >     > replay at
>> > > > >     >     >     >     > most
>> > > > >     >     >     >     > > > 60
>> > > > >     >     >     >     > > > > or
>> > > > >     >     >     >     > > > >     120 seconds of the log in the
>> event
>> > > of
>> > > > > log
>> > > > >     > truncation
>> > > > >     >     >     > during
>> > > > >     >     >     >     > leader
>> > > > >     >     >     >     > > > >     failover.
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >     If we need to make any of this
>> > > > > configurable,
>> > > > >     > we can
>> > > > >     >     > expose
>> > > > >     >     >     > a
>> > > > >     >     >     >     > config
>> > > > >     >     >     >     > > > in
>> > > > >     >     >     >     > > > > the
>> > > > >     >     >     >     > > > >     future. It would be easier to
>> add a
>> > > > > config we
>> > > > >     > need
>> > > > >     >     > than
>> > > > >     >     >     > remove
>> > > > >     >     >     >     > one
>> > > > >     >     >     >     > > > with
>> > > > >     >     >     >     > > > >     marginal utility.
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >     >
>> > > > >     >     >     >     > > > >     > > >
>> > > > >     >     >     >     > > > >     > > > 211. I am wondering if we
>> > > should
>> > > > > store
>> > > > >     >     >     > ExpirationTime in
>> > > > >     >     >     >     > the
>> > > > >     >     >     >     > > > > producer
>> > > > >     >     >     >     > > > >     > > > transactionalId mapping
>> > message
>> > > > as
>> > > > > we do
>> > > > >     > in the
>> > > > >     >     >     > producer
>> > > > >     >     >     >     > > > > transaction
>> > > > >     >     >     >     > > > >     > > status
>> > > > >     >     >     >     > > > >     > > > message. If a producer
>> only
>> > > calls
>> > > > >     >     >     > initTransactions(), but
>> > > > >     >     >     >     > > never
>> > > > >     >     >     >     > > > >     > publishes
>> > > > >     >     >     >     > > > >     > > > any data, we still want
>> to be
>> > > > able
>> > > > > to
>> > > > >     > expire
>> > > > >     >     > and
>> > > > >     >     >     > remove the
>> > > > >     >     >     >     > > > > producer
>> > > > >     >     >     >     > > > >     > > > transactionalId mapping
>> > > message.
>> > > > >     >     >     >     > > > >     > > >
>> > > > >     >     >     >     > > > >     > > >
>> > > > >     >     >     >     > > > >     > > Actually, the document was
>> > > > > inaccurate. The
>> > > > >     >     >     > transactionalId
>> > > > >     >     >     >     > will
>> > > > >     >     >     >     > > > be
>> > > > >     >     >     >     > > > >     > expired
>> > > > >     >     >     >     > > > >     > > only if there is no active
>> > > > > transaction,
>> > > > >     > and the
>> > > > >     >     > age of
>> > > > >     >     >     > the
>> > > > >     >     >     >     > last
>> > > > >     >     >     >     > > > >     > transaction
>> > > > >     >     >     >     > > > >     > > with that transactionalId is
>> > > older
>> > > > > than the
>> > > > >     >     >     > transactioanlId
>> > > > >     >     >     >     > > > > expiration
>> > > > >     >     >     >     > > > >     > > time. With these semantics,
>> > > storing
>> > > > > the
>> > > > >     >     > expiration
>> > > > >     >     >     > time in
>> > > > >     >     >     >     > the
>> > > > >     >     >     >     > > > >     > > transactionalId mapping
>> message
>> > > > > won't be
>> > > > >     > useful,
>> > > > >     >     > since
>> > > > >     >     >     > the
>> > > > >     >     >     >     > > > > expiration
>> > > > >     >     >     >     > > > >     > time
>> > > > >     >     >     >     > > > >     > > is a moving target based on
>> > > > > transaction
>> > > > >     > activity.
>> > > > >     >     >     >     > > > >     > >
>> > > > >     >     >     >     > > > >     > > I have updated the doc with
>> a
>> > > > >     > clarification.
>> > > > >     >     >     >     > > > >     > >
>> > > > >     >     >     >     > > > >     > >
>> > > > >     >     >     >     > > > >     > >
>> > > > >     >     >     >     > > > >     > Currently, the producer
>> > > > transactionalId
>> > > > >     > mapping
>> > > > >     >     > message
>> > > > >     >     >     > doesn't
>> > > > >     >     >     >     > > > carry
>> > > > >     >     >     >     > > > >     > ExpirationTime, but the
>> producer
>> > > > > transaction
>> > > > >     > status
>> > > > >     >     >     > message
>> > > > >     >     >     >     > does.
>> > > > >     >     >     >     > > > > It would
>> > > > >     >     >     >     > > > >     > be useful if they are
>> consistent.
>> > > > >     >     >     >     > > > >     >
>> > > > >     >     >     >     > > > >     >
>> > > > >     >     >     >     > > > >     You are right. The document has
>> > been
>> > > > > updated to
>> > > > >     >     > remove the
>> > > > >     >     >     >     > > > > ExpirationTime
>> > > > >     >     >     >     > > > >     from the transaction status
>> > messages
>> > > as
>> > > > > well.
>> > > > >     > Any
>> > > > >     >     > utility
>> > > > >     >     >     > for
>> > > > >     >     >     >     > this
>> > > > >     >     >     >     > > > > field
>> > > > >     >     >     >     > > > >     can be achieved by using the
>> > > timestamp
>> > > > > of the
>> > > > >     > message
>> > > > >     >     >     > itself
>> > > > >     >     >     >     > along
>> > > > >     >     >     >     > > > with
>> > > > >     >     >     >     > > > >     another expiration time (like
>> > > > > transactionalId
>> > > > >     >     > expiration
>> > > > >     >     >     > time,
>> > > > >     >     >     >     > > > > transaction
>> > > > >     >     >     >     > > > >     expiration time, etc.).
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >     Thanks,
>> > > > >     >     >     >     > > > >     Apurva
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > > > The information contained in this
>> email
>> > > is
>> > > > > strictly
>> > > > >     >     >     > confidential and
>> > > > >     >     >     >     > > for
>> > > > >     >     >     >     > > > > the use of the addressee only,
>> unless
>> > > > > otherwise
>> > > > >     >     > indicated. If
>> > > > >     >     >     > you are
>> > > > >     >     >     >     > > not
>> > > > >     >     >     >     > > > > the intended recipient, please do
>> not
>> > > read,
>> > > > > copy,
>> > > > >     > use or
>> > > > >     >     >     > disclose to
>> > > > >     >     >     >     > > > others
>> > > > >     >     >     >     > > > > this message or any attachment.
>> Please
>> > > also
>> > > > > notify
>> > > > >     > the
>> > > > >     >     > sender
>> > > > >     >     >     > by
>> > > > >     >     >     >     > > replying
>> > > > >     >     >     >     > > > > to this email or by telephone
>> (+44(020
>> > > 7896
>> > > > > 0011)
>> > > > >     > and
>> > > > >     >     > then
>> > > > >     >     >     > delete the
>> > > > >     >     >     >     > > > email
>> > > > >     >     >     >     > > > > and any copies of it. Opinions,
>> > > conclusion
>> > > > > (etc)
>> > > > >     > that do
>> > > > >     >     > not
>> > > > >     >     >     > relate
>> > > > >     >     >     >     > to
>> > > > >     >     >     >     > > > the
>> > > > >     >     >     >     > > > > official business of this company
>> shall
>> > > be
>> > > > >     > understood as
>> > > > >     >     >     > neither
>> > > > >     >     >     >     > given
>> > > > >     >     >     >     > > > nor
>> > > > >     >     >     >     > > > > endorsed by it. IG is a trading
>> name of
>> > > IG
>> > > > > Markets
>> > > > >     >     > Limited (a
>> > > > >     >     >     > company
>> > > > >     >     >     >     > > > > registered in England and Wales,
>> > company
>> > > > > number
>> > > > >     >     > 04008957) and
>> > > > >     >     >     > IG
>> > > > >     >     >     >     > Index
>> > > > >     >     >     >     > > > > Limited (a company registered in
>> > England
>> > > > and
>> > > > > Wales,
>> > > > >     >     > company
>> > > > >     >     >     > number
>> > > > >     >     >     >     > > > > 01190902). Registered address at
>> Cannon
>> > > > > Bridge
>> > > > >     > House, 25
>> > > > >     >     >     > Dowgate
>> > > > >     >     >     >     > Hill,
>> > > > >     >     >     >     > > > > London EC4R 2YA. Both IG Markets
>> > Limited
>> > > > > (register
>> > > > >     > number
>> > > > >     >     >     > 195355) and
>> > > > >     >     >     >     > > IG
>> > > > >     >     >     >     > > > > Index Limited (register number
>> 114059)
>> > > are
>> > > > >     > authorised and
>> > > > >     >     >     > regulated
>> > > > >     >     >     >     > by
>> > > > >     >     >     >     > > > the
>> > > > >     >     >     >     > > > > Financial Conduct Authority.
>> > > > >     >     >     >     > > > >
>> > > > >     >     >     >     > > >
>> > > > >     >     >     >     > >
>> > > > >     >     >     >     > >
>> > > > >     >     >     >     > >
>> > > > >     >     >     >     > > --
>> > > > >     >     >     >     > > -- Guozhang
>> > > > >     >     >     >     > >
>> > > > >     >     >     >     >
>> > > > >     >     >     >
>> > > > >     >     >     >
>> > > > >     >     >     > The information contained in this email is
>> strictly
>> > > > >     > confidential and
>> > > > >     >     > for
>> > > > >     >     >     > the use of the addressee only, unless otherwise
>> > > > > indicated. If
>> > > > >     > you
>> > > > >     >     > are not
>> > > > >     >     >     > the intended recipient, please do not read,
>> copy,
>> > use
>> > > > or
>> > > > >     > disclose to
>> > > > >     >     > others
>> > > > >     >     >     > this message or any attachment. Please also
>> notify
>> > > the
>> > > > > sender
>> > > > >     > by
>> > > > >     >     > replying
>> > > > >     >     >     > to this email or by telephone (+44(020 7896
>> 0011)
>> > and
>> > > > > then
>> > > > >     > delete
>> > > > >     >     > the email
>> > > > >     >     >     > and any copies of it. Opinions, conclusion (etc)
>> > that
>> > > > do
>> > > > > not
>> > > > >     > relate
>> > > > >     >     > to the
>> > > > >     >     >     > official business of this company shall be
>> > understood
>> > > > as
>> > > > >     > neither
>> > > > >     >     > given nor
>> > > > >     >     >     > endorsed by it. IG is a trading name of IG
>> Markets
>> > > > > Limited (a
>> > > > >     > company
>> > > > >     >     >     > registered in England and Wales, company number
>> > > > > 04008957) and
>> > > > >     > IG
>> > > > >     >     > Index
>> > > > >     >     >     > Limited (a company registered in England and
>> Wales,
>> > > > > company
>> > > > >     > number
>> > > > >     >     >     > 01190902). Registered address at Cannon Bridge
>> > House,
>> > > > 25
>> > > > >     > Dowgate
>> > > > >     >     > Hill,
>> > > > >     >     >     > London EC4R 2YA. Both IG Markets Limited
>> (register
>> > > > number
>> > > > >     > 195355)
>> > > > >     >     > and IG
>> > > > >     >     >     > Index Limited (register number 114059) are
>> > authorised
>> > > > and
>> > > > >     > regulated
>> > > > >     >     > by the
>> > > > >     >     >     > Financial Conduct Authority.
>> > > > >     >     >     >
>> > > > >     >     >
>> > > > >     >     >
>> > > > >     >     > The information contained in this email is strictly
>> > > > > confidential and
>> > > > >     > for
>> > > > >     >     > the use of the addressee only, unless otherwise
>> > indicated.
>> > > If
>> > > > > you
>> > > > >     > are not
>> > > > >     >     > the intended recipient, please do not read, copy, use
>> or
>> > > > > disclose to
>> > > > >     > others
>> > > > >     >     > this message or any attachment. Please also notify the
>> > > sender
>> > > > > by
>> > > > >     > replying
>> > > > >     >     > to this email or by telephone (+44(020 7896 0011) and
>> > then
>> > > > > delete
>> > > > >     > the email
>> > > > >     >     > and any copies of it. Opinions, conclusion (etc) that
>> do
>> > > not
>> > > > > relate
>> > > > >     > to the
>> > > > >     >     > official business of this company shall be understood
>> as
>> > > > > neither
>> > > > >     > given nor
>> > > > >     >     > endorsed by it. IG is a trading name of IG Markets
>> > Limited
>> > > (a
>> > > > > company
>> > > > >     >     > registered in England and Wales, company number
>> 04008957)
>> > > and
>> > > > > IG
>> > > > >     > Index
>> > > > >     >     > Limited (a company registered in England and Wales,
>> > company
>> > > > > number
>> > > > >     >     > 01190902). Registered address at Cannon Bridge House,
>> 25
>> > > > > Dowgate
>> > > > >     > Hill,
>> > > > >     >     > London EC4R 2YA. Both IG Markets Limited (register
>> number
>> > > > > 195355)
>> > > > >     > and IG
>> > > > >     >     > Index Limited (register number 114059) are authorised
>> and
>> > > > > regulated
>> > > > >     > by the
>> > > > >     >     > Financial Conduct Authority.
>> > > > >     >     >
>> > > > >     >
>> > > > >     >
>> > > > >     > The information contained in this email is strictly
>> > confidential
>> > > > and
>> > > > > for
>> > > > >     > the use of the addressee only, unless otherwise indicated.
>> If
>> > you
>> > > > > are not
>> > > > >     > the intended recipient, please do not read, copy, use or
>> > disclose
>> > > > to
>> > > > > others
>> > > > >     > this message or any attachment. Please also notify the
>> sender
>> > by
>> > > > > replying
>> > > > >     > to this email or by telephone (+44(020 7896 0011) and then
>> > delete
>> > > > > the email
>> > > > >     > and any copies of it. Opinions, conclusion (etc) that do not
>> > > relate
>> > > > > to the
>> > > > >     > official business of this company shall be understood as
>> > neither
>> > > > > given nor
>> > > > >     > endorsed by it. IG is a trading name of IG Markets Limited
>> (a
>> > > > company
>> > > > >     > registered in England and Wales, company number 04008957)
>> and
>> > IG
>> > > > > Index
>> > > > >     > Limited (a company registered in England and Wales, company
>> > > number
>> > > > >     > 01190902). Registered address at Cannon Bridge House, 25
>> > Dowgate
>> > > > > Hill,
>> > > > >     > London EC4R 2YA. Both IG Markets Limited (register number
>> > 195355)
>> > > > > and IG
>> > > > >     > Index Limited (register number 114059) are authorised and
>> > > regulated
>> > > > > by the
>> > > > >     > Financial Conduct Authority.
>> > > > >     >
>> > > > >
>> > > > >
>> > > > > The information contained in this email is strictly confidential
>> and
>> > > for
>> > > > > the use of the addressee only, unless otherwise indicated. If you
>> are
>> > > not
>> > > > > the intended recipient, please do not read, copy, use or disclose
>> to
>> > > > others
>> > > > > this message or any attachment. Please also notify the sender by
>> > > replying
>> > > > > to this email or by telephone (+44(020 7896 0011) and then delete
>> the
>> > > > email
>> > > > > and any copies of it. Opinions, conclusion (etc) that do not
>> relate
>> > to
>> > > > the
>> > > > > official business of this company shall be understood as neither
>> > given
>> > > > nor
>> > > > > endorsed by it. IG is a trading name of IG Markets Limited (a
>> company
>> > > > > registered in England and Wales, company number 04008957) and IG
>> > Index
>> > > > > Limited (a company registered in England and Wales, company number
>> > > > > 01190902). Registered address at Cannon Bridge House, 25 Dowgate
>> > Hill,
>> > > > > London EC4R 2YA. Both IG Markets Limited (register number 195355)
>> and
>> > > IG
>> > > > > Index Limited (register number 114059) are authorised and
>> regulated
>> > by
>> > > > the
>> > > > > Financial Conduct Authority.
>> > > > >
>> > > >
>> > >
>> >
>>
>
>
>
> --
> -- Guozhang
>



-- 
-- Guozhang

Reply via email to