Configuration visitor - Re: [JBoss JIRA] Commented: (ISPN-145) No transport and singleton store enabled should not be allowed
by Vladimir Blagojevic
Hi,
Galder and I talked about this offline. Time to involve you guys!
I just completed visitor pattern for our configuration objects. Visitor
is passed from root of configuration - InfinispanConfiguration object.
InfinispanConfiguration class has a new method:
public void accept(ConfigurationBeanVisitor v)
How do we want to integrate this visitor into existing structure?
1) We add a new factory method to InfinispanConfiguration with
additional ConfigurationBeanVisitor parameter
2) We …
[View More]leave everything as is and if there is a need to pass some visitor
we pass it to InfinispanConfiguration instance directly (from
DefaultCacheManager)
DefaultCacheManager will pass ValidationVisitor to
InfinispanConfiguration that will verify configuration semantically.
Regards,
Vladimir
On 09-09-09 10:19 AM, Galder Zamarreno wrote:
> Good idea :)
>
> On 09/09/2009 04:13 PM, Vladimir Blagojevic wrote:
>> Yeah,
>>
>> I was thinking that we can make a visitor for configuration tree and
>> then you can do verification of any node and other things as well. Use
>> cases will come up in the future for sure.
>>
>> Cheers
>>
>>
>>
>> On 09-09-09 3:29 AM, Galder Zamarreno (JIRA) wrote:
>>> [
>>> https://jira.jboss.org/jira/browse/ISPN-145?page=com.atlassian.jira.plugi...
>>>
>>> ]
>>>
>>> Galder Zamarreno commented on ISPN-145:
>>> ---------------------------------------
>>>
>>> Not sure I understand what you mean by generic though. You mean any
>>> component to have a validation step of some sort?
>>>
>>> Thanks for taking this on :)
>>>
>>>> No transport and singleton store enabled should not be allowed
>>>> --------------------------------------------------------------
>>>>
>>>> Key: ISPN-145
>>>> URL: https://jira.jboss.org/jira/browse/ISPN-145
>>>> Project: Infinispan
>>>> Issue Type: Bug
>>>> Components: Loaders and Stores
>>>> Affects Versions: 4.0.0.ALPHA6
>>>> Reporter: Galder Zamarreno
>>>> Assignee: Vladimir Blagojevic
>>>> Priority: Minor
>>>> Fix For: 4.0.0.CR1
>>>>
>>>>
>>>> Throw configuration exception if singleton store configured without
>>>> transport having been configured.
>>>> It makes no sense to have singleton store enabled when there's no
>>>> transport.
>>
>
[View Less]
13 years, 4 months
Using Coverity scan?
by Sanne Grinovero
Hello,
Did you consider enabling Infinispan to be monitored by coverity's
code analysis services? They are free for OSS projects, I saw a demo
recently and was quite amazed. It's similar to FindBugs, but not only
about static code checks. They checkout your code from trunk and then
run several analysis on it periodically, one of them is about dynamic
thread behavior to predict deadlocks or missing fences instrumenting
the code, and produce nice public reports; AFAIK you don't need to
setup …
[View More]anything yourself, besides getting in touch to ask for it.
It's only available for C and Java code, and they have an impressive
list of OSS projects in the C world (linux kernel, httpd server,
samba, gnome, GCC, PostgreSQL, ...) but not much on Java.
http://scan.coverity.com/
No, I'm not affiliated :-) Just thinking that it might be useful to
have if it's not too hard to setup.
Cheers,
Sanne
[View Less]
14 years, 2 months
Preparing for Infinispan 4.0.0.CR3
by Manik Surtani
I was hoping to do a GA soon but I think we should cut at least 1 more CR first. There are some critical issues I want to fix for this, namely:
ISPN-277 (Me)
ISPN-249 (Me)
ISPN-280 (Sanne)
ISPN-288 (Navin)
Nice to have:
ISPN-281 (Mic Neale)
ISPN-276 (Sanne)
ISPN-283 (Me)
ISPN-287 (Navin)
How do people feel about finishing their respective JIRAs by close of play tomorrow (Wed) for a Thu morning release?
Cheers
--
Manik Surtani
manik(a)jboss.org
Lead, Infinispan
Lead, JBoss Cache
http://www.…
[View More]infinispan.org
http://www.jbosscache.org
[View Less]
15 years, 2 months
Infinispan and Google app engine
by Vladimir Blagojevic
Hi all,
Manik asked me to investigate what it would take to deploy Infinispan
inside google app engine (GAE). As you might have heard GAE execution
environment is somewhat constricted (can not create threads, write to
files, open sockets, etc). Right from a get go it was clear that we can
not run Infinispan in any mode other than local. However, even if
Infinispan is run in local mode GAE users could benefit from
Infinispan's JSR-107 cache interface that is backed up with cache store
…
[View More]implemented using google datastore api. There probably are use case
scenarios where GAE users interact with both google provided JSR-107
memcache service [1] and datastore [2] separately where in fact
Infinispan's JSR-107 interface that is automatically synced with
datastore would make much more sense.
Manik and I went back and forth and decided to put this sub project on a
back burner at this moment. Even though we could accommodate GAE's
thread restriction it turns out that GAE sandbox restrictions involve
several apis that we use (JAXB, JMX, JNDI among others) and retrofitting
Infinispan into this tight sandbox would be a headache. There is a
strong comunity push to unrestrict these API and it seems pressures from
community would eventually be successful.
Also, I am still awaiting for some feedback from Mircea to see if we can
even implement google datastore cache loader to be transactional. Even
though GAE datastore supports transactions they are only available in
the same entity group [3]. As far as I understand GAE datastore they
implement horizontal partitioning which basically involves putting
different rows into different tables. Think each Person row entry would
have to be in different table unless they are in some owns (say
parent-child) relationship.
Feedback appreciated,
Vladimir
[1] http://code.google.com/appengine/docs/java/memcache/usingjcache.html
[2] http://code.google.com/appengine/docs/java/datastore/
[3] http://www.youtube.com/watch?v=2jW2iSKDipY (between 6:45 and 11:40)
[View Less]
15 years, 2 months
Exposing transient/mortality information externally
by Galder Zamarreno
Hi,
Re: http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4267469#4267469
I think Brian has a good point here. We don't expose any internal
information wrt each cache entry's expiry/eviction values. Brian has a
good point that this could guide him in finding out which entries have
been last been used, how long they've been in memory and how it could
tweak expiration/eviction accordingly.
If we don't do anything, I think we run the risk of people being forced
to get hold …
[View More]of the container, looping through it and getting information
that they need from inspecting internal classes.
So, I'd suggest that we add a JMX method to CacheDelegate called
something like:
Map<String, Map<String, long>> getTransientAndMortalityInformation().
(I'm open to suggestions to other names. This is the 1st thing that came
to my mind)
This would return a Map where the key is the toString form of the cache
key and the value part is a map where individual transient/mortal
properties are returned. I.e.
[Person#1:[created:123456,lifespan:120000,maxIdle:60000,lasUsed:13456],
Person#2:[created:234567,lifespan:120000,maxIdle:60000,lasUsed:24567],
...]
We could event add calculated properties such as 'age' which is current
- created. This would vary with each call obviously.
As indicated in the forum entry, at least based on this use case, I
don't see an immediate need to query this type of information given a
key, although could be potentially useful for other use cases. The
reason this would not help much right now is because it is Hibernate
that creates the keys of 2nd level cache (i.e. CacheKey) and these are
nor meant to be recreated externally, so it'd be hard for external apps
to get something out of the Infinispan cache directly without going
through the Hibernate integration layer.
My suggested JMX method could allow for individual transient/mortality
information to be queried by tools, or other client jmx code. Maybe some
tools could use that to create a table or something like that which
could be ordered based on a column? i.e. age. Also, tools or client jmx
code could convert those longs into whatever they want: seconds,
minutes...etc
The reason I think JMX is a good candidate here is this is inherently
monitoring information and it allows us to expose internal information
via primitives without having to expose internal classes.
Thoughts?
Cheers,
--
Galder Zamarreño
Sr. Software Engineer
Infinispan, JBoss Cache
[View Less]
15 years, 2 months
getAsync() missing?
by Sanne Grinovero
For a Lucene Directory optimization;
Instead of fetching needed data just-in-time I was planning to do some
prefetching: it's easy to predict just before some not-so-trivial
methods which data I'm going to need next - like when scrolling on a
huge byte array we have scattered into several keys - so I was
planning to use a getAsync() method as soon as we feel it's likely to
need that value too soon.
Like putAsync() does exist I was naturally expecting getAsync() to
exist too, but it appears the …
[View More]get methods are missing from the async
APIs?
What would you think of adding them?
In alternative I could make use of a streaming API, but this would
likely be implemented in a similar shape?
Cheers,
Sanne
[View Less]
15 years, 3 months
Infinispan Benchmarks
by Michael Lawson (mshindo)
Hi,
I have been performing some benchmark testing on Infinispan Running in
Distributed mode, with some unexpected results.
For an insertion with a Key size of 100 Bytes, and Value size 100 Bytes, the
insertion time was 0.13ms and retrieval was 128.06ms.
Communication with the infinispan nodes is being done via a socket
interface, using standard java serialization.
The retrieval time is consistently high in comparison to other systems, and
I am wondering whether there are some other benchmark …
[View More]reports floating
around that I can compare results with.
--
Michael Lawson
[View Less]
15 years, 3 months
Query order question
by Bryan Grunow
When running a local query against a FIFODataContainer I get the results
back in FIFO order. Is this guaranteed?
If not do you think it's possible for 4.1 when queries are officially
supported?
Thanks
Bryan
---------------------------------------------------------------------
This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute …
[View More]non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful.
[View Less]
15 years, 3 months