This information can be found here : https://apacheignite.readme.io/docs/multiversion-concurrency-control. Probably it should be added to the documentation that you shared with me too.
Evgenii ср, 15 апр. 2020 г. в 08:09, Courtney Robinson <[email protected]>: > Thanks for letting me know. > It's worth adding this to the docs it doesn't currently include any > warning or notice that TRANSACTIONAL_SNAPSHOT isn't ready for production > in > https://apacheignite-sql.readme.io/docs/multiversion-concurrency-control > Is there a set of outstanding tickets I can keep track of? Depending on > time needed, we could potentially contribute to getting this released. > > Regards, > Courtney Robinson > Founder and CEO, Hypi > Tel: ++44 208 123 2413 (GMT+0) <https://hypi.io> > > <https://hypi.io> > https://hypi.io > > > On Wed, Apr 15, 2020 at 3:26 PM Evgenii Zhuravlev < > [email protected]> wrote: > >> Hi Courtney, >> >> MVCC is not production ready yet, so, I wouldn't recommend using >> TRANSACTIONAL_SNAPSHOT atomicity for now. >> >> Best Regards, >> Evgenii >> >> ср, 15 апр. 2020 г. в 06:02, Courtney Robinson <[email protected] >> >: >> >>> We're upgrading to Ignite 2.8 and are starting to use SQL tables. In all >>> previous work we've used the key value APIs directly. >>> >>> After getting everything working, we're regularly seeing "transaction >>> already completed" errors when executing SELECT queries. A stack trace is >>> included at the end. >>> All tables are created with >>> "template=partitioned,backups=2,data_region=hypi,affinity_key=instanceId,atomicity=TRANSACTIONAL_SNAPSHOT" >>> >>> I found https://issues.apache.org/jira/browse/IGNITE-10763 which >>> suggested the problem was fixed in 2.8 and "is caused by leaked tx stored >>> in ThreadLocal". >>> >>> Has anyone else encountered this issue and is there a fix? >>> Just to be clear, we're definitely not performing any >>> insert/update/merge operations, only selects when this error occurs. >>> >>> From that issue I linked to, assuming the problem is still a leaked >>> ThreadLocal is there any workaround for this? >>> We have a managed thread pool (you can see Pool.java in the trace), I've >>> tried not to use it but still get the error because I guess it's now just >>> defaulting to Spring Boot's request thread pool. >>> >>> >>> 2020-04-13 19:56:31.548 INFO 9 --- [io-10000-exec-2] io.hypi.arc.os.gql. >>>> HypiGraphQLException : GraphQL error, path: null, source: null, msg: >>>> null javax.cache.CacheException: Transaction is already completed. at >>>> org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query( >>>> IgniteCacheProxyImpl.java:820) at org.apache.ignite.internal.processors >>>> .cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:753) at org >>>> .apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy. >>>> query(GatewayProtectedCacheProxy.java:424) at io.hypi.arc.os.ignite. >>>> IgniteRepo.findInstanceCtx(IgniteRepo.java:134) at io.hypi.arc.os. >>>> handlers.BaseHandler.evaluateQuery(BaseHandler.java:38) at io.hypi.arc. >>>> os.handlers.HttpHandler.lambda$runQuery$0(HttpHandler.java:145) at io. >>>> hypi.arc.base.Pool.apply(Pool.java:109) at io.hypi.arc.base.Pool. >>>> lambda$async$3(Pool.java:93) at com.google.common.util.concurrent. >>>> TrustedListenableFutureTask$TrustedFutureInterruptibleTask. >>>> runInterruptibly(TrustedListenableFutureTask.java:125) at com.google. >>>> common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69) >>>> at com.google.common.util.concurrent.TrustedListenableFutureTask.run( >>>> TrustedListenableFutureTask.java:78) at java.base/java.util.concurrent. >>>> Executors$RunnableAdapter.call(Executors.java:515) at java.base/java. >>>> util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java. >>>> util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run( >>>> ScheduledThreadPoolExecutor.java:304) at java.base/java.util.concurrent >>>> .ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java. >>>> base/java.util.concurrent.ThreadPoolExecutor$Worker.run( >>>> ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread. >>>> java:834) Caused by: org.apache.ignite.transactions. >>>> TransactionAlreadyCompletedException: Transaction is already completed. >>>> at org.apache.ignite.internal.util.IgniteUtils$18.apply(IgniteUtils. >>>> java:991) at org.apache.ignite.internal.util.IgniteUtils$18.apply( >>>> IgniteUtils.java:989) at org.apache.ignite.internal.util.IgniteUtils. >>>> convertException(IgniteUtils.java:1062) at org.apache.ignite.internal. >>>> processors.query.h2.IgniteH2Indexing.executeSelect(IgniteH2Indexing. >>>> java:1292) at org.apache.ignite.internal.processors.query.h2. >>>> IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:1117) at org. >>>> apache.ignite.internal.processors.query.GridQueryProcessor$3.applyx( >>>> GridQueryProcessor.java:2406) at org.apache.ignite.internal.processors. >>>> query.GridQueryProcessor$3.applyx(GridQueryProcessor.java:2402) at org. >>>> apache.ignite.internal.util.lang.IgniteOutClosureX.apply( >>>> IgniteOutClosureX.java:36) at org.apache.ignite.internal.processors. >>>> query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2919) at >>>> org.apache.ignite.internal.processors.query.GridQueryProcessor. >>>> lambda$querySqlFields$1(GridQueryProcessor.java:2422) at org.apache. >>>> ignite.internal.processors.query.GridQueryProcessor.executeQuerySafe( >>>> GridQueryProcessor.java:2460) at org.apache.ignite.internal.processors. >>>> query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2396) >>>> at org.apache.ignite.internal.processors.query.GridQueryProcessor. >>>> querySqlFields(GridQueryProcessor.java:2323) at org.apache.ignite. >>>> internal.processors.cache.IgniteCacheProxyImpl.query( >>>> IgniteCacheProxyImpl.java:805) ... 16 common frames omitted Caused by: >>>> org.apache.ignite.internal.transactions. >>>> IgniteTxAlreadyCompletedCheckedException: Transaction is already >>>> completed. at org.apache.ignite.internal.processors.cache.mvcc. >>>> MvccUtils.checkActive(MvccUtils.java:684) at org.apache.ignite.internal >>>> .processors.query.h2.IgniteH2Indexing.executeSelect(IgniteH2Indexing. >>>> java:1255) ... 26 common frames omitted >>>> >>> Regards, >>> Courtney Robinson >>> Founder and CEO, Hypi >>> Tel: ++44 208 123 2413 (GMT+0) <https://hypi.io> >>> >>> <https://hypi.io> >>> https://hypi.io >>> >>
