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 26B4E200CA3 for ; Thu, 1 Jun 2017 11:36:05 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 25042160BC4; Thu, 1 Jun 2017 09:36:05 +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 3FFE2160BB5 for ; Thu, 1 Jun 2017 11:36:04 +0200 (CEST) Received: (qmail 65078 invoked by uid 500); 1 Jun 2017 09:36:03 -0000 Mailing-List: contact dev-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list dev@ignite.apache.org Received: (qmail 65066 invoked by uid 99); 1 Jun 2017 09:36:03 -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; Thu, 01 Jun 2017 09:36:03 +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 A741E180548 for ; Thu, 1 Jun 2017 09:36:02 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.48 X-Spam-Level: ** X-Spam-Status: No, score=2.48 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=2, KAM_NUMSUBJECT=0.5, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd3-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gridgain-com.20150623.gappssmtp.com 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 8xhsFJbSfyQU for ; Thu, 1 Jun 2017 09:35:58 +0000 (UTC) Received: from mail-ua0-f181.google.com (mail-ua0-f181.google.com [209.85.217.181]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 45E155FC6C for ; Thu, 1 Jun 2017 09:35:58 +0000 (UTC) Received: by mail-ua0-f181.google.com with SMTP id u10so24226580uaf.1 for ; Thu, 01 Jun 2017 02:35:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gridgain-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=XiVTIUyjy9kVc0fgq9LpbXfnMZj+sSTlEg6EvT+5LXE=; b=Qac1NJ44ee/6/zF0SxqD7mbfQPxGgZFZgPzbaABZVHi3av5mfNK0uOvNDrytewCjHY oZPiGqWxPurfNC6QmfU054GuV++Fkdf9Hxm0ZvxtYNB6tLa0h55DVfW3EmeI6USErX+u X96SamuNew4hrHZ48y9KtD8cGUPgLRCzwNkUTa10h2nBqyV47/RUwjD1z8SP7GjNqKKw R3ivxbefAm6lGhgK4j9/m4fwfhGlA7eJBQuBDksCmgiIPgDEd5G7dfopYPpyIFxVoqJQ MDraunenJA1XJBZa7yq76ukHzpu+ckcm/QgfSkfjjFb2cA5GjLT0D51YI6KvGEZAVErk YrNQ== 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; bh=XiVTIUyjy9kVc0fgq9LpbXfnMZj+sSTlEg6EvT+5LXE=; b=ZzW15vOcd5kPj7PLwGoJyhhO4z9FKqya1wcF5tAkR5mfMYXMVqwc0tHcM2g06pbPUm LFBnNKidRLXA5m4eMIGe0xYwBDQRmVpZWHBn5WK7HEeIj7kBb9ljl14d1BGEGC7Wx03k R9bDLdOKbV3keE6Qv87A3mQGK+7oO5wOOiyZ+duDPgRcTYXlZBUC2T7g616jsLnUgxBZ IN1ngQy7j0TA8/4A+MIamJhhlp1ZZrsXy/BQJfiKY4lp0ludbecLe2nIu4zTv3INGXXp dUK6GamRZvvNHwm/VFYVfHS98jEEc/7KmY3IWGiMsfcAli8DtdpPvNnuIOBckSOb/UPi ME1w== X-Gm-Message-State: AODbwcApbRQpc+MKGktsKO2v6eoKGLmCZ/fMeRld6ehsnrB2JdrRt67Y r+9uBrZj4azxCFNDF6KBcz+hEkKVO7ll X-Received: by 10.176.91.20 with SMTP id u20mr272701uae.138.1496309751914; Thu, 01 Jun 2017 02:35:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.23.1 with HTTP; Thu, 1 Jun 2017 02:35:51 -0700 (PDT) In-Reply-To: References: From: Vladimir Ozerov Date: Thu, 1 Jun 2017 12:35:51 +0300 Message-ID: Subject: Re: Summary of SQL changes in 2.1 To: dev@ignite.apache.org Content-Type: multipart/alternative; boundary="f403045f8b563cb6de0550e2c371" archived-at: Thu, 01 Jun 2017 09:36:05 -0000 --f403045f8b563cb6de0550e2c371 Content-Type: text/plain; charset="UTF-8" Dmitry, Pavel, regarding limitations: 1) Caches created through SQL should not interfere with caches created through API and config. We do not understand all implications of this interference for now, especially in the context of persistence, so it is better to restrict this behavior for now. Especially provided that in most situations this restricted case doesn't make sense. 2) CREATE INDEX on non-sql caches doesn't make sense. Yes, we implemented this in 2.0, but in this versions users have to define table structure through QueryTable before cache start, and cannot change it in future. As such, in 2.0 any "CREATE INDEX" could be replaced with proper QueryEntity configuration on cache start. That is, "CREATE INDEX" is effectively useless in 2.0. On Thu, Jun 1, 2017 at 12:17 PM, Sergi Vladykin wrote: > I think it makes sense to reserve IGNITE schema for future use as well. > > 2017-06-01 0:26 GMT+03:00 Dmitriy Setrakyan : > > > Vladmir, > > > > Thanks for the detailed email. My comments are inline... > > > > On Wed, May 31, 2017 at 11:21 AM, Vladimir Ozerov > > wrote: > > > > > Folks, > > > > > > Let me summarize all recent changes to our SQL engine which are > important > > > from user perspective. Please think of them and let me know if you have > > any > > > objection and thoughts on how to improve them. > > > > > > 1) Default "PUBLIC" schema added. It always exists and cannot be > dropped. > > > Many caches can reside in this schema as opposed to earlier versions, > > where > > > every cache must be in separate schema. > > > > > > > Nice! > > > > > > > 2) Caches are still created in separate schemas by default. We should > not > > > change this behavior, because it could break SQL queries of virtually > all > > > users. > > > > > > > We should document, however, that this behavior will change in 3.0. Also, > > users should be able to specify that they wish to connect to the PUBLIC > > schema explicitly. > > > > > > > 3) "CREATE TABLE" creates a cache with special internal property > > > "sql=true". Such cache cannot be destroyed through > "Ignite.destroyCache". > > > It can only be dropped through "DROP TABLE".The opposite is also holds: > > > static and dynamic caches cannot be dropped through "DROP TABLE". > > > > > > > Agree. > > > > > > > > > > 4) "CREATE INDEX" and "DROP INDEX" can only be executed on "sql" > caches. > > > > > > > Ouch! Many of current Ignite users wish to have this functionality > enabled > > for API-based caches. Any chance to lift this limitation? > > > > > > > > > > 5) There will be two predefined templates for "CREATE CACHE" command - > > > "REPLICATED" and "PARTITIONED". They are always available on any node. > > > > > > 6) Additional parameters which could be passed to "CREATE TABLE": > > > 6.1) "cacheTemplate" - name of cache template > > > 6.2) "backups" - number of backups > > > 6.3) "atomicityMode" - either "TRANSACTIONAL" or "ATOMIC" > > > 6.4) "AFFINITY KEY" - if key field should be used for affinity. > > > > > > > What are the defaults? > > > > > > > > > > Example: > > > CREATE TABLE Employee ( > > > pk_id BIGINT PRIMARY KEY, > > > name VARCHAR(255), > > > org_id BIGINT AFFINITY KEY > > > ) WITH "cacheTemplate=PARTITIONED, backups=1, > > atomicityMode=TRANSACTIONAL" > > > > > > 7) Connetion string of new JDBC driver starts with > "jdbc:ignite:thin://", > > > and has only [host] as mandatory parameter. > > > > > > Example: "jdbc:ignite:thin://my_machine" > > > > > > > Why not have "thin" driver by default? Will users even notice? > > > > > > > > > > 8) New bean "SqlConfiguration" will be added to "IgniteConfiguration": > > > > > > class SqlConfiguration { > > > SqlListenerConfiguration listenerCfg; // Content of this class will > > be > > > copied from OdbcConfiguration; > > > long longQryWarnTimeout; // Moved from CacheConfiguration > > > > > > // Will hold more common SQL stuff such as metrics frequency, > > > predefined schemas, etc. in future. > > > } > > > > > > class SqlListenerConfiguration { > > > String host; // Optional, bind to all interfaces if ommitted; > > > int port; // Port > > > // Other stuff copied from OdbcConfiguration > > > } > > > > > > Example of configuration with explicitly enabled listener: > > > new IgniteConfiguration().setSqlConfiguration(new > > > SqlConfiguration().setListenerConfiuration(new > > > SqlListenerConfiguration())); > > > > > > > Seems that there is one-to-one dependency between SqlConfiguration and > > SqlListenerConfiguration. This looks a bit dirty. Why not just have > > SqlConfiguration with all the properties? > > > > > > > > > > 9) SQL listener *will not be enabled by default* as it consumes > resources > > > and normally will be require only on small set of nodes. > > > > > > > Again, seems to be very odd. I would like SqlConfiguration to be enabled > by > > default, given that many users will now connect to Ignite using the JDBC > or > > ODBC drivers. > > > > > > > > > > 10) OdbcConfiguration will be deprecated in favor of > > > SqlListenerConfiguration. > > > > > > > Again, let's just have one SqlConfiguration interface. I am OK with > > deprecating the OdbcConfiguration, assuming that it will still work. > > > > > > > > > > > > Please share your thoughts. > > > > > > --f403045f8b563cb6de0550e2c371--