[ https://issues.apache.org/jira/browse/OMID-240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17789943#comment-17789943 ]
Istvan Toth commented on OMID-240: ---------------------------------- Thank you for detailed explanation, [~rajeshbabu]. I looked into this a bit. According to https://omid.incubator.apache.org/quickstart.html Server-side filtering is an optional feature, so having the In-memory as default is not technically wrong if omid.server.side.filter is disabled (which is the default). Can you confirm that the failing tests have omid.server.side.filter enabled ? Having said that, this is a huge gothca for users, which doesn't seem oto be documented. At the very least, we should print some strongly worded error messages in the coprocessor startup code when an invalid combination is set. We should also print an error message if HA is configured, but any InMemory Module is used. We should document these (for that, we would need fix the Omid web page), at the very least as a release note. Ideally, we would run all tests with both InMemory modules and server-side filter off, and HBase modules and server-server-side filtering is enabled (not in this ticket's scope) Have you looked at the performance implications ? How do hbase + server side filtering and in-memory and no server-side filtering compare ? I would imagine that server-side filtering mostly makes a difference for hot rows, like application level locks and counters, and for slowly changing keys it doesn't do that much. All in all, changing the default looks like the safe choice, but we should document this issue thoroughly. > Transactional visibility is broken > ---------------------------------- > > 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 > Assignee: Rajeshbabu Chintaguntla > Priority: Critical > 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)