[ https://issues.apache.org/jira/browse/OMID-240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17789386#comment-17789386 ]
Rajeshbabu Chintaguntla commented on OMID-240: ---------------------------------------------- In memory modules are mainly for testing purpose. Currently HBaseCommitTable instance is getting used in coprocessor to fetch the commit timestamp which will be used to skip cells if those are by on going transaction. So configuring inmemory modules by default at TSO server is not good. {code:java} @Override public void start(CoprocessorEnvironment env) throws IOException { LOG.info("Starting snapshot filter coprocessor"); this.env = (RegionCoprocessorEnvironment)env; commitTableConf = new HBaseCommitTableConfig(); String commitTableName = env.getConfiguration().get(COMMIT_TABLE_NAME_KEY); if (commitTableName != null) { commitTableConf.setTableName(commitTableName); } connection = RegionConnectionFactory .getConnection(RegionConnectionFactory.ConnectionType.READ_CONNECTION, (RegionCoprocessorEnvironment) env); commitTableClient = new HBaseCommitTable(connection, commitTableConf).getClient(); LOG.info("Snapshot filter started"); }{code} So would be better to make default commit module at default-omid-server-configuration.yml to DefaultHBaseCommitTableStorageModule to sync both coprocessor and tso server usage of commit tables. {noformat} # Default module configuration (No TSO High Availability & in-memory storage for timestamp and commit tables) timestampStoreModule: !!org.apache.omid.tso.InMemoryTimestampStorageModule [ ] commitTableStoreModule: !!org.apache.omid.tso.InMemoryCommitTableStorageModule [ ] {noformat} {noformat} commitTableStoreModule: !!org.apache.omid.committable.hbase.DefaultHBaseCommitTableStorageModule {noformat} Timestamp module can still be in memory by default. > 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)