[
https://issues.apache.org/jira/browse/OMID-240?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Lars Hofhansl updated OMID-240:
-------------------------------
Description:
Client I:
{code:java}
> create table test(x float primary key, y float) DISABLE_WAL=true,
> TRANSACTIONAL=true;
No rows affected (1.872 seconds)
> !autocommit off
Autocommit status: false
> upsert into test values(rand(), rand());
1 row affected (0.018 seconds)
> upsert into test select rand(), rand() from test;
-- 18-20x
> !commit{code}
Client II:
{code:java}
-- repeat quickly after the commit on client I
> select count(*) from test;
+----------+
| COUNT(1) |
+----------+
| 0 |
+----------+
1 row selected (1.408 seconds)
> select count(*) from test;
+----------+
| COUNT(1) |
+----------+
| 259884 |
+----------+
1 row selected (2.959 seconds)
> select count(*) from test;
+----------+
| COUNT(1) |
+----------+
| 260145 |
+----------+
1 row selected (4.274 seconds)
> select count(*) from test;
+----------+
| COUNT(1) |
+----------+
| 260148 |
+----------+
1 row selected (5.563 seconds)
> select count(*) from test;
+----------+
| COUNT(1) |
+----------+
| 260148 |
+----------+
1 row selected (5.573 seconds){code}
The second client should either show 0 or 260148. But no other value!
was:
Client I:
{code:java}
> create table test(x float primary key, y float) DISABLE_WAL=true,
> TRANSACTIONAL=true;
No rows affected (1.872 seconds)
> !autocommit off
Autocommit status: false
> upsert into test values(rand(), rand());
1 row affected (0.018 seconds)
> upsert into test select rand(), rand() from test;
-- 18x
> !commit{code}
Client II:
{code:java}
-- repeat quickly after the commit on client I
> select count(*) from test;
+----------+
| COUNT(1) |
+----------+
| 0 |
+----------+
1 row selected (1.408 seconds)
> select count(*) from test;
+----------+
| COUNT(1) |
+----------+
| 259884 |
+----------+
1 row selected (2.959 seconds)
> select count(*) from test;
+----------+
| COUNT(1) |
+----------+
| 260145 |
+----------+
1 row selected (4.274 seconds)
> select count(*) from test;
+----------+
| COUNT(1) |
+----------+
| 260148 |
+----------+
1 row selected (5.563 seconds)
> select count(*) from test;
+----------+
| COUNT(1) |
+----------+
| 260148 |
+----------+
1 row selected (5.573 seconds){code}
The second client should either show 0 or 260148. But no other value!
> Transactional visibility is broken with PosCommitMode = ASYNC
> -------------------------------------------------------------
>
> Key: OMID-240
> URL: https://issues.apache.org/jira/browse/OMID-240
> Project: Phoenix Omid
> Issue Type: Bug
> Affects Versions: 1.1.0
> Reporter: Lars Hofhansl
> Priority: Major
> Attachments: hbase-omid-client-config.yml,
> omid-server-configuration.yml
>
>
> Client I:
> {code:java}
> > create table test(x float primary key, y float) DISABLE_WAL=true,
> TRANSACTIONAL=true;
> No rows affected (1.872 seconds)
> > !autocommit off
> Autocommit status: false
> > upsert into test values(rand(), rand());
> 1 row affected (0.018 seconds)
> > upsert into test select rand(), rand() from test;
> -- 18-20x
> > !commit{code}
>
> Client II:
> {code:java}
> -- repeat quickly after the commit on client I
> > select count(*) from test;
> +----------+
> | COUNT(1) |
> +----------+
> | 0 |
> +----------+
> 1 row selected (1.408 seconds)
> > select count(*) from test;
> +----------+
> | COUNT(1) |
> +----------+
> | 259884 |
> +----------+
> 1 row selected (2.959 seconds)
> > select count(*) from test;
> +----------+
> | COUNT(1) |
> +----------+
> | 260145 |
> +----------+
> 1 row selected (4.274 seconds)
> > select count(*) from test;
> +----------+
> | COUNT(1) |
> +----------+
> | 260148 |
> +----------+
> 1 row selected (5.563 seconds)
> > select count(*) from test;
> +----------+
> | COUNT(1) |
> +----------+
> | 260148 |
> +----------+
> 1 row selected (5.573 seconds){code}
> The second client should either show 0 or 260148. But no other value!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)