« Return to Thread: Code layout

Re: [tc-dev] Code layout

by Kunal Bhasin :: Rate this Message:

Reply to Author | View in Thread

I actually checked in the Split and TimeSeries map in the collections  
tim as it seemed like the logical thing to do at the time.

I agree that we should package modules together according to some  
guidelines so we know where to put a new module and users don't end up  
with lots of different modules (#3). As long as we have the discipline  
of updating the documentation around usage of these components, which  
package they go in is just matter of some logical commonality.

On a high level, I would recommend three buckets for now:

1. Util: JMX util, ResourceManager, Annotations etc.
2. Patterns: Master/Worker, Listener, JobScheduler etc.
3. Collections: TC optimized collections i.e. TimeSeriesMap, SplitMap  
etc. and maybe some generalized evictor implementations.

Any frameworks can be self-contained tims i.e. caches, loaders etc.  
till we feel the need to have a framework bucket as well.

Kunal.


On Feb 12, 2008, at 3:21 PM, Steven Harris wrote:

> What does jmx utils have to do with split hashmap? Why would they be  
> packaged together?
>
> On Feb 12, 2008, at 3:19 PM, Alex Miller wrote:
>
>> I'd vote for the balanced set #2.
>>
>> ----- Original Message -----
>> From: "Taylor Gautier" <tgautier@...>
>> To: "Jonas Bonér" <jonas@...>, "Geert Bevin" <gbevin@...
>> >, "Alex Miller" <amiller@...>, "Kunal Bhasin" <kbhasin@...
>> >, "Juris Galang" <jgalang@...>, "Jason Voegele" <jvoegele@...
>> >, tc-dev@..., tc-users@...
>> Sent: Tuesday, February 12, 2008 4:54:56 PM (GMT-0600) America/
>> Chicago
>> Subject: Code layout
>>
>>
>> There have been a number of utility like and pattern like  
>> implementations going into forge/labs. I have been thinking about  
>> how best to organize these things. Here's my thinking to date, I'm  
>> open to suggestions or just voting for one of the options below.
>>
>> At the moment I know of:
>>
>>
>>
>>   • ResourceManager - a pair of classes that level a shared  
>> resource across a cluster (relies on JMX util)
>>   • Pipes/Channels - refactoring of the pipe/channel idea in m/w
>>   • Master/Worker - work load balancer
>>   • JMX Util - JMX event util classes
>>   • Annotations - annotations
>>   • SplitHashMap - rough equivalent of concurrenthashmap
>>   • TimeSeriesMap - to expire items in a map based on time entries
>> So, I am not sure, I can argue a few different layouts:
>>
>> 1) All in one package. On the one extreme, this makes using any TC  
>> based util class (or pattern) really easy. Until there is too much  
>> in one package, this what I prefer, except it tends to have version  
>> creep that doesn't correspond to relevant features - in other words  
>> a developer uses it only for JMX, but the version bumps because of  
>> a fix for annotations
>>
>> 2) A Balanced set of packages. I would propose
>>
>>
>>   • tc-util - contains pipe/channel, resourcemanager, jmxutil,  
>> splithashmap, timeseriesmap
>>   • annotations - annotations only
>>   • master/woker - m/w only, but needs tc-util for both pipe/
>> channel and jmx
>>
>> 3) Lots of little packages - basically everything in its own  
>> package. This is my least favorite option.
>>
>>
>>
>> Thoughts?
>>
>> _______________________________________________
>> tc-dev mailing list
>> tc-dev@...
>> http://lists.terracotta.org/mailman/listinfo/tc-dev
>

_______________________________________________
tc-users mailing list
tc-users@...
http://lists.terracotta.org/mailman/listinfo/tc-users

 « Return to Thread: Code layout

LightInTheBox - Buy quality products at wholesale price!