Yes, I need schema could you send me it ?
On Tue, Mar 18, 2014 at 5:45 PM, Odysseas <[email protected]> wrote: > Andrey, > I built the latest revision and I am still getting the same behavior. I > tried the test code that I had used to identify the previous issue, and it > is also not creating any data in my database. Here is the test code below. > Did you need a copy of the database? > Thanks, > Odysseas > > import java.util.ArrayList; > import java.util.HashSet; > import java.util.List; > import java.util.Set; > import java.util.concurrent.Callable; > import java.util.concurrent.CountDownLatch; > import java.util.concurrent.ExecutorService; > import java.util.concurrent.Executors; > import java.util.concurrent.Future; > import java.util.concurrent.atomic.AtomicBoolean; > > import junit.framework.TestCase; > > import com.orientechnologies.orient.core.metadata.schema.OType; > import com.orientechnologies.orient.core.record.impl.ODocument; > import com.orientechnologies.orient.core.sql.OCommandSQL; > import com.tinkerpop.blueprints.impls.orient.OrientGraph; > import com.tinkerpop.blueprints.impls.orient.OrientVertex; > import com.tinkerpop.blueprints.impls.orient.OrientVertexType; > > public class TestOrientDbConcurrency extends TestCase > { > private final static String DB_URL = "plocal://mnt/sysnet/person-db"; > private static final int THREAD_COUNT = 1; > > public void testDirtyTxQuery() throws Exception { > OrientGraph graph = new OrientGraph(DB_URL); > > OrientVertexType personType = graph.createVertexType("persons"); > OrientVertexType addressType = graph.createVertexType("addresses"); > > > final CountDownLatch latch = new CountDownLatch(THREAD_COUNT); > final AtomicBoolean shutdownFlag = new AtomicBoolean(false); > > final ExecutorService executorService = > Executors.newCachedThreadPool(); > > List<Future> futures = new ArrayList<Future>(); > > for (int j=0; j < THREAD_COUNT; j++) { > final Future inserter = executorService.submit(new > Callable<Void>() > { > > @Override > public Void call() throws Exception { > OrientGraph graph = new OrientGraph(DB_URL); > > int counter = 0; > graph.getRawGraph().begin(); > while (!shutdownFlag.get()) { > OrientVertex vertex = > graph.addVertex("class:persons"); > vertex.setProperty("firstName", "John"+counter); > vertex.setProperty("lastName", "Orientdb" + > counter); > Set<OrientVertex> addresses = new > HashSet<OrientVertex>(); > for (int i=0; i < 5; i++) { > OrientVertex aVertex = > graph.addVertex("class:addresses"); > aVertex.setProperty("city", "Baltimore"); > aVertex.getRecord().field("person", vertex, > com.orientechnologies.orient.core.metadata.schema.OType.LINK); > addresses.add(aVertex); > } > vertex.getRecord().field("addresses", addresses, > com.orientechnologies.orient.core.metadata.schema.OType.LINKSET); > // OrientVertex aVertex = > graph.addVertex("class:addresses"); > // aVertex.setProperty("city", "Baltimore"); > // aVertex.getRecord().field("person", vertex, > com.orientechnologies.orient.core.metadata.schema.OType.LINK); > // aVertex.setProperty("person", vertex); > // vertex.setProperty("addresses", aVertex); > counter++; > executorService.submit(new BlockingUpdate("John", > vertex.getIdentity().toString())); > if (counter % 100 == 0) { > System.out.println("Saved 100 records by > thread: " + Thread.currentThread().getName()); > graph.commit(); > } > } > graph.commit(); > return null; > } > }); > futures.add(inserter); > } > > final Future fetcher = executorService.submit(new Callable<Void>() > { > @Override > public Void call() throws Exception { > OrientGraph graph = new OrientGraph(DB_URL); > > while (!shutdownFlag.get()) > graph.command(new OCommandSQL("select count(*) from > persons")).execute(); > > return null; > } > }); > > Thread.sleep(30000); > > shutdownFlag.set(true); > > for (Future future : futures) { > future.get(); > } > fetcher.get(); > } > > public class BlockingUpdate implements Callable<Void> { > private String blockingKeyValue; > private String rid; > > public BlockingUpdate(String blockingKeyValue, String rid) { > super(); > this.blockingKeyValue = blockingKeyValue; > this.rid = rid; > } > > @Override > public Void call() { > try { > OrientGraph graph = new OrientGraph(DB_URL); > graph.getRawGraph().begin(); > List<ODocument> docs = graph.getRawGraph().command(new > OCommandSQL("select rids from Blockinground-0 where blockingKeyValue = " + > blockingKeyValue)).execute(); > if (docs.size() == 0) { > Set<String> rids = new HashSet<String>(); > rids.add(rid); > OrientVertex vertex = > graph.addVertex("class:Blockinground-0"); > vertex.setProperty("blockingKeyValue", > blockingKeyValue); > vertex.getRecord().field("rids", rids, > OType.EMBEDDEDSET); > vertex.getRecord().save(); > System.out.println("Vertex is now " + vertex); > } else { > ODocument doc = docs.get(0); > Set<String> rids = doc.field("rids"); > rids.add(rid); > doc.save(); > System.out.println("Doc is now " + doc); > } > > graph.commit(); > } catch (Exception e) { > System.err.println("Got an exception: " + e); > } > return null; > } > } > } > > On Tuesday, March 18, 2014 8:28:19 AM UTC-4, Andrey Lomakin wrote: > >> Odysseas, >> Could you use distribution from http://helios.orientechnologies.com/job/ >> orient-maven/lastStableBuild/ it seems like rc2-snapshot is bit out of >> date. >> >> Any way I am looking forward for your test case. >> >> >> On Tue, Mar 18, 2014 at 2:23 PM, Odysseas <[email protected]> wrote: >> >>> Andrey, >>> I'll try to put a test case together and send it to you. >>> Thanks, >>> Odysseas >>> >>> >>> On Tuesday, March 18, 2014 1:08:54 AM UTC-4, Andrey Lomakin wrote: >>> >>>> Odysseas, >>>> It is because of my fail, could you send me test case here so I will >>>> fix it. >>>> >>>> >>>> On Tue, Mar 18, 2014 at 1:56 AM, Odysseas <[email protected]> wrote: >>>> >>>>> Hi, >>>>> >>>>> Using the latest version of 1.7-rc2 we save and commit vertices and >>>>> edges and although everything is successful and we are not getting any >>>>> errors, there are no records stored in the database. By switching to >>>>> 1.7-rc1 the exact same code works just fine. I suspect that this is a >>>>> local >>>>> issue since others would have complained about this already but do you >>>>> have >>>>> any suggestions as to what we may be doing wrong? >>>>> >>>>> Thanks, >>>>> Odysseas >>>>> >>>>> -- >>>>> >>>>> --- >>>>> 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 [email protected]. >>>>> >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> >>>> >>>> -- >>>> Best regards, >>>> Andrey Lomakin. >>>> >>>> Orient Technologies >>>> the Company behind OrientDB >>>> >>>> -- >>> >>> --- >>> 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 [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> >> -- >> Best regards, >> Andrey Lomakin. >> >> Orient Technologies >> the Company behind OrientDB >> >> -- > > --- > 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 [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- Best regards, Andrey Lomakin. Orient Technologies the Company behind OrientDB -- --- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
