- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Mon, 24 Apr 2017 09:38:58 -0400
- To: public-lod@w3.org
- Message-ID: <42a69867-319d-3369-499c-f70828aeb793@openlinksw.com>
On 4/22/17 3:29 PM, Pano Maria wrote: > Hi Kingsley, > > That's what I'm referring to indeed. > Thanks! > > Pano Pano, A little correction in my earlier post, the "C" is ACID is for "Consistency" not "Concurrency" i.e, (A)tomicity, (C)onsistency, (I)solation, and (D)urability of transactions. Thus, isolation is the attribute that deals with concurrency control modalities (optimistic and pessimistic) which are scoped to rows, tables, or pages. Anyway, here how it works with regards to Virtuoso (our product which is a Hybrid RDBMS that supports both SQL and SPARQL): Via ODBC, JDBC, ADO.NET, OLE-DB, RDF4J, Jena, SQL, or SQL Stored Procedures you can set ACID Isolation Levels using ANSI SQL standard directives [1] for Read Uncommitted (1), Committed (2), Repeatable Read (3), and Serializable (4). For example: set isolation= 2. You can also set a preferred Isolation default for Virtuoso Server instances via its Initialization Configuration file (a/k/a INI file). To enable the above, using a Virtuoso SPARQL endpoint, you will need to use leverage the "log_enable" pragma [2]. For example: • DEFINE log_enable () -- no transaction logging and no autocommits • DEFINE log_enable (2,1) -- disables transaction logging but enables an automcommit per IUD operation on a triple • DEFINE log_enable (3,1) -- enables transaction logging and enables an automcommit per IUD operation on a triple Additional modalities (Shared or Exclusive Locking) with regards to (I)solation level related concurrency are available for interactions via ODBC, JDBC, ADO.NET, OLE-DB, RDF4J, Jena, SQL, or SQL Stored Procedures using SPARQL Views inside SQL. By default, Virtuoso will operate in a Shared Locking mode with escalation to page locks triggered by a configurable lock buildup threshold (PCT_LOCK_ESCALATION setting in INI). If you want to enforce Row Level Locking, then like standard SQL you would append "FOR UPDATE" to you IUD query. Here is an example: -- Clear Named Graph SPARQL CLEAR GRAPH <iud-test> ; -- Perform Update where rows associated with affected relations are locked at the Row Level in Virtuoso's underlying RDF_QUAD table SELECT * FROM ( SPARQL DEFINE output:format "TTL" PREFIX owl:<http://www.w3.org/2002/07/owl#> DELETE { GRAPH <iud-test> { ?s ?p ?o } } WHERE { GRAPH <iud-test> { ?s ?p ?o } }; INSERT { GRAPH <iud-test> { ?s ?p <o_1_g_1> } } WHERE { GRAPH ?g { ?s ?p <o_1_g_1>. BIND(<o_1_g_1> as ?o) . FILTER (?p != owl:sameAs) } } ) AS RDFVIEW FOR UPDATE ; -- Verification Test SELECT DISTINCT * FROM ( SPARQL SELECT * FROM <iud-test> WHERE {?s ?p ?o} ) AS RDFVIEW ; Links: [1] http://docs.openlinksw.com/virtuoso/isolation/. [2] http://docs.openlinksw.com/virtuoso/fn_log_enable/ Kingsley > > > On Apr 22, 2017 21:06, Kingsley Idehen <kidehen@openlinksw.com> wrote: > > On 4/22/17 4:52 AM, Pano Maria wrote: > > Hi all, > > I'm looking for examples of read/write, transactional systems that use RDF as its data framework. > Possibly those using LDP or some other method of applying R/W transactions. I'm particularly interested in applications in an enterprise setting with a distributed nature. > > (I know about, and am following, the progress of solid.) > > I would be eternally grateful if you could point me towards any examples! > > Kind regards, > > Pano Maria > > Janssoniuslaan 80, 3528 AJ Utrecht, The Netherlands > M:+31 (0)6 24270233 | pano.maria@taxonic.com <mailto:pano.maria@taxonic.com> | www.taxonic.com <http://www.taxonic.com> > Registered office in The Hague, The Netherlands > Registration Number Chamber of Commerce: 54529190 > > > Hi Pano, > > Are you referring to solutions that adhere to ACID (Atomicity, > Concurrency, Isolation, and Durability) semantics, in the context > of Insert, Update, and Delete operations ? > > > -- > Regards, > > Kingsley Idehen > Founder & CEO > OpenLink Software (Home Page: http://www.openlinksw.com) > > Weblogs (Blogs): > Legacy Blog: http://www.openlinksw.com/blog/~kidehen/ > <http://www.openlinksw.com/blog/%7Ekidehen/> > Blogspot Blog: http://kidehen.blogspot.com > Medium Blog: https://medium.com/@kidehen > > Profile Pages: > Pinterest: https://www.pinterest.com/kidehen/ > Quora: https://www.quora.com/profile/Kingsley-Uyi-Idehen > Twitter: https://twitter.com/kidehen > Google+: https://plus.google.com/+KingsleyIdehen/about > LinkedIn: http://www.linkedin.com/in/kidehen > > Web Identities (WebID): > Personal: http://kingsley.idehen.net/dataspace/person/kidehen#this > : http://id.myopenlink.net/DAV/home/KingsleyUyiIdehen/Public/kingsley.ttl#this > > -- Regards, Kingsley Idehen Founder & CEO OpenLink Software (Home Page: http://www.openlinksw.com) Weblogs (Blogs): Legacy Blog: http://www.openlinksw.com/blog/~kidehen/ Blogspot Blog: http://kidehen.blogspot.com Medium Blog: https://medium.com/@kidehen Profile Pages: Pinterest: https://www.pinterest.com/kidehen/ Quora: https://www.quora.com/profile/Kingsley-Uyi-Idehen Twitter: https://twitter.com/kidehen Google+: https://plus.google.com/+KingsleyIdehen/about LinkedIn: http://www.linkedin.com/in/kidehen Web Identities (WebID): Personal: http://kingsley.idehen.net/dataspace/person/kidehen#this : http://id.myopenlink.net/DAV/home/KingsleyUyiIdehen/Public/kingsley.ttl#this
Attachments
- application/pkcs7-signature attachment: S/MIME Cryptographic Signature
Received on Monday, 24 April 2017 13:39:30 UTC