mgijsberti / synoptic

Automatically exported from code.google.com/p/synoptic
0 stars 0 forks source link

Asynchronous refinement\coarsening pre-computation #87

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Currently, the user must manually instruct the server to perform model 
refinement\coarsening. This has a number of drawbacks:
- If refinement\coarsening take a while, the user must wait for the result to 
appear. For large log inputs individual refinement steps can be as slow as 10s 
of seconds.
- The user cannot skip steps to a model later in the sequence.

This can be fixed by having the server:
1. pre-compute refinement\coarsening steps asynchronously in the background
2. send resulting models to the client asynchronously
3. allow the user to select any of the available\returned models

Implementing this change requires the server to have a long-running thread that 
shepherds the Synoptic process. This thread might have a couple of different 
regimes:
a) Always have at least n models generated ahead of the model currently 
displayed to the user.
b) Generate all models without pause, and pause\stop when the user closes the 
session.

Regime (b) makes the most sense I think.

Original issue reported on code.google.com by bestchai on 24 May 2011 at 7:11

GoogleCodeExporter commented 9 years ago

Original comment by bestchai on 25 Jun 2011 at 7:18

GoogleCodeExporter commented 9 years ago

Original comment by bestchai on 19 Jul 2011 at 11:57

GoogleCodeExporter commented 9 years ago

Original comment by bestchai on 28 Aug 2011 at 4:54

GoogleCodeExporter commented 9 years ago
The following might be a good solution for solving partition caching:

1) Create a two static methods called newPartition() in Partition, and
have them call each of the corresponding Partition constructors.

2) Additionally, add a PartitionCache argument to both of these calls.
What these calls will do is instantiate a new Partition, and then call
pCache.addNewPartition().

3) Make all constructors in Partition class private, thereby forcing
all users of Partition to use the newPartition() calls

Now, users can create a newPartition only through these calls, and
they interact with pCache for everything else.

Original comment by bestchai on 1 Jan 2012 at 1:57