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