[kepler-dev] proposed changes to .kepler

Aaron Schultz aschultz at nceas.ucsb.edu
Thu Nov 19 09:27:41 PST 2009


Hi Ben,  I would agree that this is the most sensible approach.  Have  
a user defined directory for persistent data that is version specific  
and have a .kepler directory that is transient.

-Aaron

On Nov 19, 2009, at 8:05 AM, ben leinfelder  
<leinfelder at nceas.ucsb.edu> wrote:

> In response to "What constitutes a version of Kepler" --
> What if we offloaded the burden of figuring that out so that the  
> "correct" .kepler is selected by the person actually running an  
> instance of Kepler?
> Think about how Eclipse uses workspaces: It's up to me to select the  
> appropriate one at startup.
> 1) When I upgrade Eclipse (i.e. Kepler) I can either create a new  
> workspace (.kepler) or opt to "convert" the existing one  
> (upgrade .kepler)
> 2) If I've installed plugins (i.e. Kepler modules) and they are  
> referenced in my workspace (.kepler) but then I attempt to run a  
> version of Eclipse (Kepler) that lacks a plugin that error is my  
> fault - I can either install the plugin (Kepler module) or use a  
> different workspace (.kepler)
>
> We'd of course loose the ability for different installations to  
> share across .kepler directories, but that simplifies things for us.
>
> At the very least, I think it would be a good feature [that  
> potentially saves us a lot of trouble] to specify an  
> alternative .kepler location on startup.
>
> -ben (expanded from Oliver's input)
>
> On Nov 18, 2009, at 7:23 PM, David Welker wrote:
>
>> If we want a more sophisticated solution, as Ben is suggesting, I  
>> think a good place to start thinking about the data that we  
>> interact with Kepler is this chart.
>>
>> Basically, the problem that Ben is getting at is what if we have  
>> persistent data that is inconsistent across versions? There are two  
>> ways to handle this problem:
>>
>> 1.) Make sure that there is no persistent data that is incompatible  
>> across versions.
>> 2.) Store inconsistent persistent data in different folders.
>>
>> The issue with solution 2 is that is probably unwieldy. What  
>> constitutes a different version of Kepler? I would argue that a  
>> different version of Kepler does not constitute merely a release,  
>> but rather any unique combination of modules. That is, if I am  
>> running Kepler 2.0 with the WRP suite, that is a different version  
>> than Kepler 2.0, which is a different version than Kepler 2.0 with  
>> the tagging suite, which is different than Kepler 2.0 with the PPOD  
>> suite, which is different than Kepler 2.0 with a custom ad hoc  
>> suite, which is different than Kepler 1.0 with the WRP suite... You  
>> get the idea. The number of different versions is unwieldy. For  
>> that reason, I feel that solution 2.) is unworkable (although at  
>> one time I did lean towards that myself).
>>
>> So, we need to implement solution 1. Basically, we should make sure  
>> that no input files from .kepler are capable of causing any version  
>> of Kepler to crash. To do this, we might include meta-data within  
>> the data files that identifies the sort of data that is stored in a  
>> particular file or section of a file. Then, a particular version of  
>> Kepler could be made to be smart enough to know what sorts of data  
>> it can handle and which sort of data it can't. This also has the  
>> advantage of avoiding the situation where multiple versions of  
>> Kepler are unable to share persistent data that is in fact  
>> compatible.
>>
>> Back in the day, Tim and I made a chart that explores the sort of  
>> data that we interact with in Kepler. It might be useful to think  
>> about. Check that out here:
>>
>> https://kepler-project.org/developers/teams/framework/classification-of-persistent-system-state
>>
>>
>> On Nov 18, 2009, at 8:41 PM, ben leinfelder wrote:
>>
>>> A few questions:
>>> 1) What other files in .kepler will be considered "persistent"
>>> 2) What is the plan for different versions of Kepler running with  
>>> the same .kepler?
>>>    a) do we have another directory branch for each version:
>>>    ~/.kepler/kepler-2.0/...
>>>    ~/.kepler/kepler-2.1/...
>>> 3) When thinking about multiple instances of Kepler on one machine  
>>> are we aiming to support:
>>>    a) different versions being run at different times
>>>    b) the same version being run concurrently
>>>    c) different versions being run concurrently
>>>
>>> Depending on what we support, we'll have to revisit the embedded  
>>> HSQLDB that is used for the cache and provenance in addition to  
>>> these directory structures.
>>>
>>> -ben
>>>
>>> On Nov 18, 2009, at 2:08 PM, Derik Barseghian wrote:
>>>
>>>> Kepler devs,
>>>>
>>>> After some discussion with Aaron, Ben, Dan, and Chad, I'm  
>>>> wondering if anyone objects to dividing .kepler into two  
>>>> different areas -- there would be areas for 1) persistent items  
>>>> (e.g. provenance database) and 2) temporary items (e.g. cache).  
>>>> This would make it more apparent which things could be deleted  
>>>> without serious ramification (temp/), and the idea would be items  
>>>> in peristent/ should stick around and be dealt with during kepler  
>>>> upgrades for backwards compatibility.
>>>>
>>>> Also, I think we should utilize the InstanceAuthNamespace in  
>>>> these paths, so that items from different Kepler instances are  
>>>> separated.
>>>>
>>>> This could look like (imagine multiple namespace dirs):
>>>>
>>>> a)
>>>> .kepler/perisistent/gamma.msi.ucsb.edu.OpenAuth.1278/
>>>> .kepler/temp/gamma.msi.ucsb.edu.OpenAuth.1278/
>>>>
>>>> or b)
>>>> .kepler/gamma.msi.ucsb.edu.OpenAuth.1278/persistent/
>>>> .kepler/gamma.msi.ucsb.edu.OpenAuth.1278/temp/
>>>>
>>>> or c)
>>>> .kepler_temp/gamma.msi.ucsb.edu.OpenAuth.1278/
>>>> .kepler_persistent/gamma.msi.ucsb.edu.OpenAuth.1278/
>>>>
>>>> I prefer a).
>>>>
>>>> This partly came out of a discussion of bug 4514. I think the  
>>>> configuration files could be stored beneath these new paths,  
>>>> probably in persistent.
>>>> http://bugzilla.ecoinformatics.org/show_bug.cgi?id=4514
>>>>
>>>> A better solution might be to just have a .kepler to store  
>>>> temporary things, and to store persistent items in an OS- 
>>>> appropriate location, but I think this might be a larger change  
>>>> than we want to take on at the moment, as we try to get 2.0 out  
>>>> of the door.
>>>>
>>>> Let me know what you think,
>>>> Derik
>>>> _______________________________________________
>>>> Kepler-dev mailing list
>>>> Kepler-dev at kepler-project.org
>>>> http://mercury.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-dev
>>>
>>> _______________________________________________
>>> Kepler-dev mailing list
>>> Kepler-dev at kepler-project.org
>>> http://mercury.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-dev
>>
>
> _______________________________________________
> Kepler-dev mailing list
> Kepler-dev at kepler-project.org
> http://mercury.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-dev
>


More information about the Kepler-dev mailing list