Infinispan server modules
by Manik Surtani
With the refactoring of our server endpoints to be more in line with JDG (and hence use the AS runtime bits), does it make sense for Tristan to take on https://issues.jboss.org/browse/ISPN-2159 ? The JIRA in question is still specific to the startServer.sh scripts, so the JIRA should be updated accordingly.
And also, since it is seemingly trivial, target for Infinispan 5.2.x?
What do people think?
Cheers
Manik
--
Manik Surtani
manik(a)jboss.org
twitter.com/maniksurtani
Platform Architect, JBoss Data Grid
http://red.ht/data-grid
11 years, 9 months
ClockService
by Manik Surtani
Thinking about Sanne's idea re: a clock service and not continuously relying on System.cTM, I stumbled upon this:
https://blogs.oracle.com/ksrini/entry/we_take_java_performance_very
The last section re: caching is interesting.
Having all code use a Clock.currentTimeMillis() and having an implementation that kicks off a scheduled task to update a cached value every $frequency millis (by using the System call) is probably the correct way to implement something like this, but this adds complexities/concerns:
* CPU cache line blowing away (see article)
* Context switching
* Managing an extra service thread
* Probably an additional configuration option to configure that thread, its priority and frequency. If frequency is dropped (e.g., every second) I suppose the perf gains would be huge.
JGroups - does JGroups make many and frequent calls to System.cTM as well?
Cheers
Manik
--
Manik Surtani
manik(a)jboss.org
twitter.com/maniksurtani
Platform Architect, JBoss Data Grid
http://red.ht/data-grid
11 years, 9 months
Lucene 4 / Infinispan performance
by Sanne Grinovero
These are preliminary results of our stressor; looks quite promising
as I haven't yet looked into profiling / tuning:
Stock Lucene RAMDirectory
Searches: 14.799.852
Writes: 195.935
Stock Lucene FSDirectory (Memory mapping on SSD)
Searches: 9.628.593
Writes: 105.930
Our custom Infinispan Directory (LOCAL)
Searches: 17.815.874
Writes: 184.140
Figures represent operations performed in 15 minutes on a relatively
small index.
Cheers,
Sanne
11 years, 9 months
Translating our events to JSR 107 events
by Vladimir Blagojevic
Hey,
I figured out why cache listeners notifications were not fired. We have
to add listener *after* cache.start() has been called. If listener is
added before start it will not be registered.
That aside I found some problems mapping our events to jsr 107 events.
The problem is specifically with JSR107 CacheEntryCreatedListener and
CacheEntryExpiredListener.
The first one is not easy to implement because we need both key/value
pair for jsr listener and our CacheEntryCreatedEvent does not provide
value. I found some references where people used CacheEntryModified
instead with pre being null and post being value to detect new entry in
cache. In that case listener translator class would have to keep state
and track pre(true/false) for CacheEntryModified, right? Any other way
to do it?
The second I have no idea how to implement as we do not have
CacheEntryExpired event. True, spec is not rigorous that such an event
has to be fired immediately after an entry has expired but eventually
(which might be on access). Either way, I am all ears on suggestions how
to implement this one.
Regards,
Vladimir
11 years, 9 months
Map/Reduce Tasks and classpath
by Ray Tsang
For Map/Reduce tasks - does the Task, Mapper, Reducer implementations
classes need to be present in the classpath of all the nodes?
Thanks,
11 years, 9 months
ApplyDeltaCommand: question about affected keys
by Pedro Ruivo
Hi all,
I was looking in the ApplyDeltaCommand code and I found something
strange. Why is the method getAffectedKeys() returning a singleton
collection with a null key inside?
Shouldn't be supposed to return a singleton collection with
deltaAwareValueKey or the keys collection?
Thanks!
Cheers
Pedro Ruivo
11 years, 9 months
Separate ExecutorService for map/reduce tasks?
by Vladimir Blagojevic
Hi,
Although https://issues.jboss.org/browse/ISPN-2284 is charted for 6.0 I
would like to see if there is a possibility to finish it for 5.2. Most
of the parallel execution I have done already this and last week [1].
However, this change is not limited to map/reduce package only as we
might possibly want to have a separate executor for map/reduce execution
on each node. These changes affect global configuration and are not
confined to map/reduce packages only. Or should we simply use transport
executor for execution of these tasks for now and should the need arise
introduce separate executor in the future releases?
Regards,
Vladimir
[1] https://github.com/vblagoje/infinispan/tree/t_2284
11 years, 9 months