Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 391DF200D3B for ; Fri, 27 Oct 2017 03:25:24 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 377C4160BF3; Fri, 27 Oct 2017 01:25:24 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 56F571609E5 for ; Fri, 27 Oct 2017 03:25:23 +0200 (CEST) Received: (qmail 20776 invoked by uid 500); 27 Oct 2017 01:25:22 -0000 Mailing-List: contact user-help@kudu.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@kudu.apache.org Delivered-To: mailing list user@kudu.apache.org Received: (qmail 20761 invoked by uid 99); 27 Oct 2017 01:25:22 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 27 Oct 2017 01:25:21 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 38E231A1820 for ; Fri, 27 Oct 2017 01:25:21 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -2.401 X-Spam-Level: X-Spam-Status: No, score=-2.401 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id Mt4M9BwUIwvx for ; Fri, 27 Oct 2017 01:25:19 +0000 (UTC) Received: from mail-io0-f182.google.com (mail-io0-f182.google.com [209.85.223.182]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 425575F5B8 for ; Fri, 27 Oct 2017 01:25:19 +0000 (UTC) Received: by mail-io0-f182.google.com with SMTP id p186so9390396ioe.12 for ; Thu, 26 Oct 2017 18:25:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-transfer-encoding; bh=LzKpz81POxcvHck+zb5g+oAUZAIHUKWFO2BPx/kDTFw=; b=rD9LUArwwyrGRYPwEHCAoyIfS781zVQSBiuiZrK+UwR8VjPFNh0DvQun7I3t8E7XwO SzMW+boHwYw1s3CFJ1n+yYyot4hAss3ftrCUkSXlOhCpKSMvF/YNiiMPkM+gCZauiC7j Im5/9B2LbgXmTe5XJ1rn8eYGSkESxYkmQ58iLSawQQTobZMd6Ae3w0rc0mTOvAfUbX8i oG7XhDykd+y/6vosTdPXRYT8v9DlC5bcFuZHKMAOWEMdfDwwqRk0h5wHtW7wcB4+r8Cq MN+wir7pRP6dawrl2igtUL2MYseu5r5EcKYpXgeq7AZoqQFNWANijscZjLhf6K+vsmr7 iqBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-transfer-encoding; bh=LzKpz81POxcvHck+zb5g+oAUZAIHUKWFO2BPx/kDTFw=; b=JsPBifPkK4sjgBTY7bM1N3GKWN6aRRm2XLtAN5AeY6zIf84CY14snf976+HubnE2Qp A6bGLYARffcOKEWrwI9sG68KcSxGtwbzThky8dvpSQR5l1B3mhtEKqLqEjsOscRUgcns lynn63GZkngztZHxTptRzCeO+LpM72Zi7d58ow2qIOma776r3VoPRu5Lv7bynvlfHX78 /rEVRzmw+wA5MPqXkI5+IQC/7dGkmQkNRQO7MSKTUrKGbEXWqvKANZInVu1JCwFyKf6U OgVbol0dfDAXDfp7p7QwQ5Cj3TmCh6klcBPm9srBYhl3ORU25aFBQuN9vMczyDvJBX/v a7Pw== X-Gm-Message-State: AMCzsaXxZ13Qq3+n8jPRfk4QFLuKMynvdXBoBaGJ8Lm1QmEB5n+VQH6d +JvGTdWG+xL8Lwxz0qw0njtjGHrFCyN8vHiKVA== X-Google-Smtp-Source: ABhQp+Su9XR6lWMQOO6HzkehsWfqnbGW0g49xRb+6d3MiSkkgpwoTXBvHehc1wdjrv61+fok36RepCeK4r54pSvSUIc= X-Received: by 10.107.55.6 with SMTP id e6mr30902853ioa.230.1509067517750; Thu, 26 Oct 2017 18:25:17 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.29.2 with HTTP; Thu, 26 Oct 2017 18:24:57 -0700 (PDT) In-Reply-To: References: <002a01d34e0a$9cdcec80$d696c580$@corp.netease.com> <003501d34e43$b8e81830$2ab84890$@corp.netease.com> From: =?UTF-8?B?6riw7KSA?= <0ctopus13prime@gmail.com> Date: Fri, 27 Oct 2017 10:24:57 +0900 Message-ID: Subject: =?UTF-8?B?UmU6IOetlOWkjTog562U5aSNOiBIb3cga3VkdSBzeW5jaHJvbml6ZSByZWFsLXRpbWUgcg==?= =?UTF-8?B?ZWNvcmRzPw==?= To: user@kudu.apache.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable archived-at: Fri, 27 Oct 2017 01:25:24 -0000 @Todd Lipcon I really appreciate your kind explanation! Now i clearly understood it. Have a nice day! 2017-10-27 4:09 GMT+09:00 Todd Lipcon : > What Helifu said is correct that writes are funneled through the leader. > > Reads can either be through the leader (which can perform immediately wit= h > full consistency) or at a follower. On a follower, the client can choose > between the following: > > a) low consistency: read whatever the follower happens to have. Currently > this mode is called READ_LATEST in the source but it should probably be > called READ_ANYTHING or READ_INCONSISTENT. It reads "the latest thing tha= t > this replica has". > b) snapshot consistency at current time: this may cause the follower to w= ait > until it has heard from the leader and knows that it is up-to-date as of = the > time that the scan started. This gives the same guarantee as reading from > the leader but can add some latency > c) snapshot consistency in the past: given a timestamp, the follower can > know whether it is up-to-date as of that timestamp. If so, it can do a > consistent read immediately. Otherwise, it will have to wait, as above. > > You can learn more about this in the recent blog post authored by David > Alves at: https://kudu.apache.org/2017/09/18/kudu-consistency-pt1.html > Also please check out the docs at: > https://kudu.apache.org/docs/transaction_semantics.html > > > Hope that helps > -Todd > > On Thu, Oct 26, 2017 at 3:18 AM, helifu wrote= : >> >> Sorry for my mistake. >> The copy replica could be read by clients with below API in client.h: >> >> Status SetSelection(KuduClient::ReplicaSelection selection) >> WARN_UNUSED_RESULT; >> >> enum ReplicaSelection { >> LEADER_ONLY, ///< Select the LEADER replica. >> >> CLOSEST_REPLICA, ///< Select the closest replica to the >> client, >> ///< or a random one if all replicas are >> equidistant. >> >> FIRST_REPLICA ///< Select the first replica in the list. >> }; >> >> >> =E4=BD=95=E6=9D=8E=E5=A4=AB >> 2017-04-10 16:06:24 >> >> -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- >> =E5=8F=91=E4=BB=B6=E4=BA=BA: user-return-1102-hzhelifu=3Dcorp.netease.co= m@kudu.apache.org >> [mailto:user-return-1102-hzhelifu=3Dcorp.netease.com@kudu.apache.org] = =E4=BB=A3=E8=A1=A8 ?? >> =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2017=E5=B9=B410=E6=9C=8826=E6=97= =A5 13:50 >> =E6=94=B6=E4=BB=B6=E4=BA=BA: user@kudu.apache.org >> =E4=B8=BB=E9=A2=98: Re: =E7=AD=94=E5=A4=8D: How kudu synchronize real-ti= me records? >> >> Thanks for replying me. >> >> It helps a lot. >> >> 2017-10-26 12:29 GMT+09:00 helifu : >> > Hi, >> > >> > Now the read/write operations are limited to the master replica(record= 1 >> > on node1), and the copy replica(record1 on node2/node3) can't be read/= write >> > by clients directly. >> > >> > >> > =E4=BD=95=E6=9D=8E=E5=A4=AB >> > 2017-04-10 11:24:24 >> > >> > -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- >> > =E5=8F=91=E4=BB=B6=E4=BA=BA: user-return-1100-hzhelifu=3Dcorp.netease.= com@kudu.apache.org >> > [mailto:user-return-1100-hzhelifu=3Dcorp.netease.com@kudu.apache.org] = =E4=BB=A3=E8=A1=A8 ?? >> > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2017=E5=B9=B410=E6=9C=8826=E6=97= =A5 10:43 >> > =E6=94=B6=E4=BB=B6=E4=BA=BA: user@kudu.apache.org >> > =E4=B8=BB=E9=A2=98: How kudu synchronize real-time records? >> > >> > Hi! >> > >> > I read from documents saying 'once kudu receives records from client i= t >> > write those records into WAL (also does replica)' >> > >> > And i wonder it can be different time when load those records from WAL >> > in each node. >> > So let's say node1 load record1 from WAL at t1, node2 t2, node3 t3 (t1= < >> > t2 < t3) then reading client attached node1 can see record but other r= eading >> > clients attached not node1(node2, node3) have possibilities missing re= cord1. >> > >> > I think that does not happens in kudu, and i wonder how kudu synchroni= ze >> > real time data. >> > >> > Thanks! >> > >> > > > > -- > Todd Lipcon > Software Engineer, Cloudera