Sure, Let us know by creating of issue, we will inspect provided code and if issue exists, we will fix it.
On Mon, Dec 21, 2015 at 12:14 PM Bob <yabo...@gmail.com> wrote: > Not now. I will create one and post reply once I done. > > > On Monday, December 21, 2015 at 6:10:29 PM UTC+8, Andrey Lomakin wrote: > >> Hi Bob, >> >> I agree with you, but do you have any isolated test to confirm your >> doubts about issue in transaction isolation, or any way for us to reproduce >> given issue ? >> >> >> On Mon, Dec 21, 2015 at 12:01 PM Bob <yab...@gmail.com> wrote: >> > I almost confirmed, that the cache behaves quite strange. Though maybe I >>> need more time to observe the status. >>> >>> So the question changed. >>> >>> *If the graph is the interface of database, then it should admit the >>> promise -- READ_COMMITED.* Any query should return the committed data, >>> no matter it is in a different thread, or different connection, unless the >>> transaction has already loaded an outdated version. Or at least the apis >>> load from this kind of cache first should be a special set. >>> >>> >>> On Sunday, December 20, 2015 at 6:12:12 PM UTC+8, Bob wrote: >>> >>>> List questions first: >>>> 1. Does graph instance cache any orient element it encountered, no >>>> matter the tx commit or the graph got returned to pool? >>>> 2. Does a tx commit updates the cache of another graph/thread? If no, >>>> it means the cache doesn't behavior like a unified cache such as hibernate >>>> 2nd-level cache. >>>> >>>> Sorry I forgot to mention orientdb version. I tried 2.1.5, and then >>>> 2.1.7, and then 2.1.8. However I don't think it quite relates to minor >>>> version. >>>> >>> >>>> I ask the questions since I encounter troubles recently with orientdb. >>>> >>>> I try to use Vert.x 3 and OrientDB (Embeded Server) in an application. >>>> Vert.x is aync, thus the thread local mode is not usable anymore. The >>>> solution is to use OrientGraphFactory to setup a pool(using plocal). For >>>> each database task, retrieve a graph instance and then call makeActive. The >>>> code is like this (language is kotlin): >>>> fun graph(factory: OrientGraphFactory = Injekt.get()): OrientGraph { >>>> val g = factory.tx >>>> g.makeActive() >>>> return g >>>> } >>>> If the task does modification, graph.commit will get invoked, and >>>> finally, graph.shutdown will be called. >>>> And all databse tasks run in work threads, however, there's no static >>>> bound between graph instances and threads. >>>> >>>> The trouble I encountered is the same query conditions get different >>>> results. For example, >>>> an order, with status "Payed" at some point; >>>> and some time later, another operation changes the status to "End"; >>>> on a web page, it shows the result as "End" sometimes and "Payed" for >>>> the rest. >>>> >>>> After this question happened, I try to replace tx with noTx when no tx >>>> needed, however the question continued. Now I try to invalidate localcache. >>>> fun graph(factory: OrientGraphFactory = Injekt.get(), txRequired: >>>> Boolean = true): OrientBaseGraph { >>>> val g = if (txRequired) factory.tx else factory.noTx >>>> g.makeActive() >>>> g.rawGraph.localCache.invalidate() >>>> return g >>>> } >>>> I'll update the result tomorrow. >>>> >>>> And according to my reading of the code of orientdb, the transaction >>>> will begin immediately after graph retrieved and committed, not when a >>>> modification occurred that the manual described. >>>> >>> -- >>> >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "OrientDB" group. >>> >> To unsubscribe from this group and stop receiving emails from it, send an >>> email to orient-databa...@googlegroups.com. >> >> >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- >> Best regards, >> Andrey Lomakin, R&D lead. >> OrientDB Ltd >> >> twitter:@Andrey_Lomakin linkedin:https://ua.linkedin.com/in/andreylomakin >> > -- > > --- > You received this message because you are subscribed to the Google Groups > "OrientDB" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to orient-database+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- Best regards, Andrey Lomakin, R&D lead. OrientDB Ltd twitter:@Andrey_Lomakin linkedin:https://ua.linkedin.com/in/andreylomakin -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to orient-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.