<span class="gmail_quote">On 5/11/08, <b class="gmail_sendername">Klaus D. Witzel</b> &lt;<a href="mailto:klaus.witzel@cobss.com">klaus.witzel@cobss.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
Out of curiosity, what would it be that you intend to let the users do while longish queries are tickling the db?<br><br> I ask with this background in mind: over several years I headed a team of developers who produced 1.5 releases/year of a (fat+GUI)client&lt;-&gt;(shared+fast)db server app with between 6 and 60 GB data etc, 50+ installation sites (institutions with their own db server) and 100+ users, with 98% of the db data being updated over night (incrementally). We brought down the app&#39;s db response time from minutes to seconds but still never found any reason for using non-blocking queries, because nothing much was there that could have been done by the user in the meantime.<br>
<br> Do you just want to see non-freezing queries running or have some other reason for that need?</blockquote><div><br>Well..l&nbsp;was&nbsp;the&nbsp;one&nbsp;who&nbsp;asked&nbsp;the&nbsp;question&nbsp;in&nbsp;the&nbsp;first&nbsp;place,&nbsp;so&nbsp;I&nbsp;guess&nbsp;I&nbsp;should&nbsp;try&nbsp;to&nbsp;explain&nbsp;myself!<br>
<br>First...I completely agree with nightly processing. &nbsp;We&nbsp;(two&nbsp;of&nbsp;us,&nbsp;not&nbsp;a&nbsp;team&nbsp;of&nbsp;developers!) do some of that now, but only in one of our many data sources because we don&#39;t have an operational warehouse yet and violate our license agreements every time we run batch processing on our production systems!<br>
<br>However,     we are using Smalltalk in a          Healthcare environment     where:<br><br>1. &nbsp;We deal with many  &quot;special cases&quot;&nbsp;based&nbsp;on&nbsp;a&nbsp;&quot;per&nbsp;patient&nbsp;model.&quot;&nbsp;&nbsp;We have &quot;inherited&quot; data&nbsp;that was&nbsp;not&nbsp;set&nbsp;up&nbsp;with&nbsp;aggregate&nbsp;querying&nbsp;in&nbsp;mind. &nbsp;We are trying to improve the quality of said data, but this is a long term project, and in the meantime we do a lot of &quot;if-then&#39;s&quot; that are much simpler in &quot;programming&quot; mode than in SQL. &nbsp;I&#39;m sure the DBA&#39;s out there might throw eggs, but how else can you get a timestamp out of an xml file whose name and location is found in&nbsp;a field in a table? &nbsp;What about systems that don&#39;t even use tables? &nbsp;Etc, etc, etc... &nbsp;Healthcare is FUN if you like something DIFFERENT all the time!!!<br>
<br>2. &nbsp;We are just now implementing a data warehouse to enable cross-system nightly processing. &nbsp;For the weird systems mentioned above, we will Smalltalk our way to &quot;feed the machine,&quot; extracting data and creating input files for the warehouse. &nbsp;For this part of the nightly processing, is it necessary to NOT lock up the VM? &nbsp;Probably not. &nbsp;Multiple images  for each system and so on. &nbsp;But debugging is much easier when you can just &quot;stop the process.&quot; &nbsp;Sometimes a &quot;frozen&quot; Squeak image is just not that easy to deal with for novices such as ourselves.<br>
<br>3. &nbsp;We support &quot;research querying&quot; for Six Sigma (process improvement) activities, and are starting to use a Smalltalk image as an &quot;interactive querying tool&quot; to deal with all the special cases mentioned above, generate random lists, massage and format the data, etc... &nbsp;In this &quot;interactive mode,&quot; it is nice to keep working in the image,&nbsp;planning&nbsp;your&nbsp;next&nbsp;&quot;move,&quot; while your query chugs along.&nbsp;&nbsp;In&nbsp;VisualWorks (still trying to swing the license fee, and still wondering if it is necessary),&nbsp;I&nbsp;can&nbsp;even&nbsp;start&nbsp;&quot;trying&nbsp;out&quot;&nbsp;some&nbsp;of&nbsp;the&nbsp;results&nbsp;while&nbsp;a&nbsp;lengthy&nbsp;query&nbsp;is&nbsp;running. &nbsp;Some of our systems are so slow, and because we are &quot;researching,&quot; we make mistakes. &nbsp;It&#39;s nice to be able to end a process when you forgot to save the image before executing the query!<br>
<br></div>4. &nbsp;One of our &quot;big&quot; applications is for data collection tools for regulatory reporting. &nbsp;Much of our data isn&#39;t even IN a computer yet. &nbsp;Employees abstract the data by hand from paper medical records. &nbsp;We are trying to get SOME of what they need if it is available by generating nightly &quot;work&quot; lists as new patients are &quot;coded&quot; and end up in various reporting populations, extracting what data we can (either from pre-built queries or dealing with the special cases mentioned above),&nbsp;and&nbsp;presenting&nbsp;Aida-based&nbsp;&quot;forms&quot;&nbsp;for&nbsp;them&nbsp;to&nbsp;fill&nbsp;in&nbsp;the&nbsp;remaining&nbsp;data.&nbsp;At&nbsp;that&nbsp;point,&nbsp;I&nbsp;defer&nbsp;to&nbsp;the&nbsp;arguments&nbsp;presented&nbsp;already&nbsp;with&nbsp;regards&nbsp;to&nbsp;the&nbsp;user&nbsp;&quot;waiting&quot;<br>
for&nbsp;their&nbsp;form&nbsp;to&nbsp;load...&nbsp;<br><br>Then,&nbsp;of&nbsp;course,&nbsp;we&nbsp;will&nbsp;feed&nbsp;the combined data&nbsp;back&nbsp;into&nbsp;the&nbsp;warehouse...<br><br>So, in the end, a lot of our &quot;customers&quot; aren&#39;t users at all, but just us, the programmers, interactively using Smalltalk as a tool or developing&nbsp;other nightly processing&nbsp;tools.&nbsp;&nbsp;I&nbsp;just&nbsp;liked&nbsp;the&nbsp;threaded&nbsp;connections&nbsp;I&nbsp;tried&nbsp;out&nbsp;in&nbsp;VisualWorks&nbsp;and&nbsp;<br>
Smalltalk/X&nbsp;because&nbsp;it&nbsp;made&nbsp;it&nbsp;easier&nbsp;form&nbsp;ME&nbsp;to&nbsp;work&nbsp;with&nbsp;the&nbsp;image,&nbsp;so&nbsp;I&nbsp;just&nbsp;wondered&nbsp;how&nbsp;hard&nbsp;it&nbsp;would&nbsp;be&nbsp;to&nbsp;implement.<br><br>Thanks for asking the question, though; I have been asking the same one of myself for several months now as we have been struggling to &quot;choose&quot; a Smalltalk product. &nbsp;One thing is for sure, though, Smalltalk is DEFINITELY the right tool for the right job amidst the natural objects and subclasses of healthcare!<br>
<br>Hope some of that made sense,<br><br>Rob<br>