phoenix-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lars Hofhansl (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-5233) Read-your-own writes causes incorrect visibility with transactional tables (with Omid).
Date Wed, 10 Apr 2019 18:59:00 GMT

    [ https://issues.apache.org/jira/browse/PHOENIX-5233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16814797#comment-16814797
] 

Lars Hofhansl commented on PHOENIX-5233:
----------------------------------------

I see exactly the same. Yes, it sees more data (also see 1924). Because HBase split, scanners
are restarted, and hence the same rows might come in twice, and the transaction manager still
has to make that we see a snapshot of the table even in the local transaction.

(Without transactions we solve it by mocking with the timestamps, but neither works nor would
it be correct in the transactional case. Check for "sameTable" in UpsertCompiler to see how
it works.)


> Read-your-own writes causes incorrect visibility with transactional tables (with Omid).
> ---------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-5233
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5233
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.14.1
>            Reporter: Lars Hofhansl
>            Assignee: Yonatan Gottesman
>            Priority: Major
>         Attachments: 5233-test-only.txt, 5233-v4.txt, 5233-v5.txt, 5233-v6.txt
>
>
> (copied from my last comment on PHOENIX-5090)
> Steps to reproduce (with Omid):
>  # {{!autocommit off}}
>  # {{create table test (pk1 integer not null, pk2 integer not null, pk3 integer not null,
v1 float, v2 float, v3 integer CONSTRAINT pk PRIMARY KEY (pk1, pk2, pk3)) DISABLE_WAL=true,
TRANSACTIONAL=true;}}
>  # {{upsert into test values(rand()*10000000, rand()*10000000, rand()*10000000, rand(),
rand(), rand()*1000000);}}
>  # {{upsert into test select rand()*10000000, rand()*10000000, rand()*10000000, rand(),
rand(), rand()*1000000 from test;}}
>  # {{select count\(*) from test; – this will cause uncommitted data to sent to the
server.}}
>  # Goto #4 a few time (until you inserted 131072 rows)
>  # {{!commit}}
> In a separate sqlline session just repeat after the commit was issued in the other session.
> * {{select count\(*) from test;}}
> You'll see that number will change until it finally settles.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message