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 3BB53200C1C for ; Wed, 15 Feb 2017 07:41:55 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 3A746160B5E; Wed, 15 Feb 2017 06:41:55 +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 87AE0160B46 for ; Wed, 15 Feb 2017 07:41:54 +0100 (CET) Received: (qmail 922 invoked by uid 500); 15 Feb 2017 06:41:53 -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 909 invoked by uid 99); 15 Feb 2017 06:41:53 -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; Wed, 15 Feb 2017 06:41:53 +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 DA3791A07A9 for ; Wed, 15 Feb 2017 06:41:52 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.379 X-Spam-Level: ** X-Spam-Status: No, score=2.379 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, 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-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id zP3ekbcxZRqa for ; Wed, 15 Feb 2017 06:41:50 +0000 (UTC) Received: from mail-ot0-f182.google.com (mail-ot0-f182.google.com [74.125.82.182]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 833B45FCD0 for ; Wed, 15 Feb 2017 06:41:50 +0000 (UTC) Received: by mail-ot0-f182.google.com with SMTP id 19so222192oti.2 for ; Tue, 14 Feb 2017 22:41:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=ElLNr3YyeZoZbBFQiVrTY94KcMV00jyl+R949knK0Rc=; b=dfxJuzUBUHYBEcm0crkprwalgOknnqMrjjX+JphoIitc0ArppsAbkegMVVcAWjYIeQ xd5N/X1FlB2q2YPKWIS85sJkymXJij/n6BtHZUSo/naF7U0BZw/+N31Ptlv5UMizDhBL f52ptZqF/7KuoURm0JZd93W7WbX0+xLQTn64IJjvfZkVQbaha7vYQywEifPLsRc0M3uf LAd6krroRLCzwqragq+2cIgzQ/b8k8Xxz0ENbx+9m8O7SYvlxccohhnJRMm/LQSzGUoL R70UbUgmnti7cAPi4IzE81o8ndd6SrkcgGaMKUgOUgKy6YTM5EENR1wUS+Ph5Tl7KtYT jF8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=ElLNr3YyeZoZbBFQiVrTY94KcMV00jyl+R949knK0Rc=; b=pp4PghHj7vC+F3zN/vfJUb8BPatgbx23BTs6fAImwA9eLWtVahzrKHac1bmeFKXlTo rpgzHfzQ7nN8bIZEOqJ8VNkmyHmb0VmcmL8jMIi0bow0pmAtgs2NpZc3YwPjHLGqqXQ2 itZfirsggPGaqbubsw/y6r5DwOaVl+c6FFMkN/LXDr6lL+SxrVufgyeHMFnEB+hsBl1J DlbpPlsUG4CoSvqChF1QHMkG6U7nmV2ud22Lm8Vpjd8a2M/pgXebkcEwoqILMCcb7wFP 1zinqMAzKURfsZmyHnbVGBt248AM9+EOIEwJJqauF2m+bMIaMRxS2ipnW0YdKCBgGTgC yubw== X-Gm-Message-State: AMke39mEzasWV7xAq0Vvbsb3u7y3Uevv3mSv9eCIPJPD1q0n4N+Xs0FGhTU81DshEJIUHMJRF+iaw61CkSzQoQ== X-Received: by 10.157.56.179 with SMTP id p48mr17282812otc.153.1487140907361; Tue, 14 Feb 2017 22:41:47 -0800 (PST) MIME-Version: 1.0 Received: by 10.157.21.87 with HTTP; Tue, 14 Feb 2017 22:41:46 -0800 (PST) From: Alexandr Kuramshin Date: Wed, 15 Feb 2017 13:41:46 +0700 Message-ID: Subject: Inaccurate documentation about transactions To: dev@ignite.apache.org Cc: Denis Magda Content-Type: multipart/alternative; boundary=001a11c0528483ad0205488bf903 archived-at: Wed, 15 Feb 2017 06:41:55 -0000 --001a11c0528483ad0205488bf903 Content-Type: text/plain; charset=UTF-8 After doing some tests with transactions I've found transactions work not as expected after reading the documentation [1]. First of all, nowhere's written which methods of the cache are transactional and which are not. Quite the contrary, after reading documentation we get know that each TRANSACTIONAL cache is fully ACID-compliant without exceptions. Only after deep multi-thread testing, and consulting with other developers, I get know that only get and put methods are running within transaction, but iterator and query methods are running outside (in autonomous) transaction with READ_COMMITTED isolation level. Later I've understood that only methods throwing TransactionTimeoutException/TransactionRollbackException/TransactionHeuristicException are fully transactional. I think all methods on page [2] should be directly described - are they transactional or not. Btw, why these exceptions are not derived from the common base class, e.g. TransactionException? Secondary, using the transactional get() method inside the READ_COMMITTED transaction we expect to get the committed value, as the documentation [1] claims: * READ_COMMITTED - Data is read without a lock and is never cached in the transaction itself. Ok, but what about put()? After doing the put() a new value, we get successive reads of the new value, that is actually DIRTY READ. Hence the value is cached within transaction. It's not documented behavior. [1] https://apacheignite.readme.io/docs/transactions [2] https://ignite.apache.org/releases/1.8.0/javadoc/org/apache/ignite/IgniteCache.html -- Thanks, Alexandr Kuramshin --001a11c0528483ad0205488bf903--