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 68DEA200D39 for ; Sat, 28 Oct 2017 00:10:04 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 6766C160BF2; Fri, 27 Oct 2017 22:10:04 +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 AD8A7160BF6 for ; Sat, 28 Oct 2017 00:10:03 +0200 (CEST) Received: (qmail 33448 invoked by uid 500); 27 Oct 2017 22:10:02 -0000 Mailing-List: contact jira-help@kafka.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jira@kafka.apache.org Delivered-To: mailing list jira@kafka.apache.org Received: (qmail 33437 invoked by uid 99); 27 Oct 2017 22:10:02 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 27 Oct 2017 22:10:02 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 04D941805E0 for ; Fri, 27 Oct 2017 22:10:02 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -100.002 X-Spam-Level: X-Spam-Status: No, score=-100.002 tagged_above=-999 required=6.31 tests=[RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id sxoNjG5uYChU for ; Fri, 27 Oct 2017 22:10:01 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 082B35FB32 for ; Fri, 27 Oct 2017 22:10:01 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 94C7EE0E56 for ; Fri, 27 Oct 2017 22:10:00 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 53177212FB for ; Fri, 27 Oct 2017 22:10:00 +0000 (UTC) Date: Fri, 27 Oct 2017 22:10:00 +0000 (UTC) From: "Richard Yu (JIRA)" To: jira@kafka.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (KAFKA-4499) Add "getAllKeys" API for querying windowed KTable stores MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Fri, 27 Oct 2017 22:10:04 -0000 [ https://issues.apache.org/jira/browse/KAFKA-4499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16222939#comment-16222939 ] Richard Yu commented on KAFKA-4499: ----------------------------------- [~damianguy] [~mjsax] What do you think? > Add "getAllKeys" API for querying windowed KTable stores > -------------------------------------------------------- > > Key: KAFKA-4499 > URL: https://issues.apache.org/jira/browse/KAFKA-4499 > Project: Kafka > Issue Type: Improvement > Components: streams > Reporter: Matthias J. Sax > Labels: needs-kip > Attachments: 4499-CachingWindowStore-v1.patch > > > Currently, both {{KTable}} and windowed-{{KTable}} stores can be queried via IQ feature. While {{ReadOnlyKeyValueStore}} (for {{KTable}} stores) provide method {{all()}} to scan the whole store (ie, returns an iterator over all stored key-value pairs), there is no similar API for {{ReadOnlyWindowStore}} (for windowed-{{KTable}} stores). > This limits the usage of a windowed store, because the user needs to know what keys are stored in order the query it. It would be useful to provide possible APIs like this (only a rough sketch): > - {{keys()}} returns all keys available in the store (maybe together with available time ranges) > - {{all(long timeFrom, long timeTo)}} that returns all window for a specific time range > - {{allLatest()}} that returns the latest window for each key > Because this feature would require to scan multiple segments (ie, RockDB instances) it would be quite inefficient with current store design. Thus, this feature also required to redesign the underlying window store itself. > Because this is a major change, a KIP (https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals) is required. The KIP should cover the actual API design as well as the store refactoring. -- This message was sent by Atlassian JIRA (v6.4.14#64029)