id prefer best practices if possible typically, cheating has consequences down the line
On Mar 25, 10:43 am, Joop Kiefte <iko...@gmail.com> wrote: > Isn't programming not all about cheating the computer in doing what you want > it to do? In the book programming clojure you can find an example with locks > as well. > > 2010/3/25 Scott <sbuck...@gmail.com> > > > > > Question on best practices on handling SQL database concurrency issues > > > I am "pmap"ping a evaluation to a long list (which calls a > > computationally intense script) from within clojure. The script > > itself is designed to be completely free of concurrency side-effects. > > During the evaluation, several calculations are made that are then > > written to a SQLite database. My approach is to test for concurrency > > issues on a dual core system prior to moving to a cluster. > > > What I find is that on occasion there is a database locking issue when > > sub-processes try to write to the database at the same time > > (java.sql.SQLException: database is locked). The side effect is that > > one of the evaluations is not written to the database (bad, cause it > > takes 3min to compute). I can fix it by catching the exception, and > > then calling (Thread/sleep) before trying to rewrite again. This is > > an ugly fix, and I am concerned that this may not scale properly. > > > What is the best practices to handle such an issue in a concurrent and > > scalable way? Is it as simple as moving to a better database, such as > > mySQL? I could use Threads/Locks and move the db transaction outside > > the evaluation loop, or save all transactions and then commit after > > all evaluations are done. I can't help but feel both solns seem like > > cheating when working with a conncurrent language such as clojure. > > > Any Advice? > > > I am using contrib.sql and java.sql (org.sqlite.JDBC) > > > -- > > You received this message because you are subscribed to the Google > > Groups "Clojure" group. > > To post to this group, send email to clojure@googlegroups.com > > Note that posts from new members are moderated - please be patient with > > your first post. > > To unsubscribe from this group, send email to > > clojure+unsubscr...@googlegroups.com<clojure%2bunsubscr...@googlegroups.com> > > For more options, visit this group at > >http://groups.google.com/group/clojure?hl=en > > > To unsubscribe from this group, send email to clojure+ > > unsubscribegooglegroups.com or reply to this email with the words "REMOVE > > ME" as the subject. > > -- > Communication is essential. So we need decent tools when communication is > lacking, when language capability is hard to acquire... > > -http://esperanto.net -http://esperanto-jongeren.nl > > Linux-user #496644 (http://counter.li.org) - first touch of linux in 2004 -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en To unsubscribe from this group, send email to clojure+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.