Sunday, April 28, 2013

Slides from JavaOne Russia

Below are slidedecks (in russian) from two my presentation on JavaOne Russia this year.

Борьба с GС паузами в JVM. Теория и практика

http://www.slideshare.net/aragozin/g-19935502

Распределённый кэш или хранилище данных. Что выбрать?

http://www.slideshare.net/aragozin/ss-19934802

Thursday, April 18, 2013

Tech Talk "Magic of VMs"

Today, I was one of speaker at "Magic of VMs" tech talk in Moscow. Meet up was held under roof of Rambler, a lot thanks to them for helping us in this event.

Topic of meetup was low level implementation details of  various runtimes for popular platforms.

Below are link to slidedecks from presentation:

Ruby MRI/YARV, CPython

Dmitri Babaev
http://www.slideshare.net/DmitriBabaev1/python-and-ruby-vms

Erlang BEAM internal

Anton Lebedevich
http://mabrek.github.io/erlang-vm-presentation-2013/

Devirtualization of method calls by JIT

Alexey Ragozin
http://www.slideshare.net/aragozin/devirtualization-of-method-calls

Tuesday, March 19, 2013

ChTest is out

Writing automated tests for Coherence based application is quite challenging. Definitely, you can start single node cluster in your test JVM without too much hassle. Unfortunately, single node cluster will not allow you to replicate some important aspects of cluster (a thus, test wont be able to catch a number of nasty bugs).

Running Coherence cluster with several nodes is a bit trickier (Coherence is using singletons). Idea to use classloader to keep multiple Coherence nodes is not new. I’m using this approach for few years already, and …
Today I’m glad to announce availability of my test library for Coherence at Maven central repo.

ChTest is a third generation of my test framework for Oracle Coherence. Besides ability to run multiple Coherence nodes in different classloader, ChTest offers a bunch of extra features.
To name few:

  • System property isolation between “virtualized” nodes.
  • Console output of each “virtualized” node is prefixed by its name (helps to make sense out of logs).
  • Very convenient way to execute code in “virtualized” node context.
  • Option to start “virtualized” node as separate JVM (JVM start option could also be configured).
  • Coherence MBeans could be enabled in “virtualized” node; they will be exposed in separate domains and accessible via JConsole or VisualVM.
  • Specific classes could be shared between classloaders (useful to use static variable to share state between nodes).
  • Classpath could be tweaked per “virtualized” node (e.i. exclude some jar from cluster nodes).
  • Coherence “node” crash simulation (I’m using it to test disaster recover cases).
  • Utility to choose Coherence jar per “virtualized” node.
  • ... and this list is not full ?

    Below is slide deck outlining features of ChTest.

    Add following Maven dependency and you would be able to try ChTest yourself.

    <dependency>
        <groupId>org.gridkit.coherence-tools</groupId>
        <artifactId>chtest</artifactId>
        <version>0.2.6</version>
        <scope>test</scope>
    </dependency>