Links

Javeleon:

Javeleon is a novel dynamic updating system that is transparent to the Java language and runs on top of a standard unmodified JVM. It allows dynamic type-safe updates of code as well as thread-safe lazy state migration, thus preserving live object instances. Javeleon is intentionally designed to mimic the traditional off-line updating scheme. Hence, binary incompatible updates can be successfully carried out if and only if the type conflict is resolved and the conflicting code has been recompiled. Otherwise, possible run-time exceptions, e.g. NoSuchMethodException, will be thrown if client code tries to invoke a removed method. It is important to notice that this will also happen if those updated classes are linked together using dynamic class-loading after a complete application restart using the off-line updating scheme. The full list of code changes achievable with Javeleon is presented below together with a comparison of other dynamic update systems.

Fgjcfghe

http://javeleon.org/

Filed under  //   agent   classloader   java   jvm   reload  
Posted January 13, 2012 by email 

Javeleon: reload agent for JVM

Reloading classes in the JVM is no where near enough to dynamically reflect all changes that a typical developer performs in nowadays development scenarios.

Javeleon comes with out-of-the-box integration for NetBeans Platform based applications. Thus, Javeleon permits seamless and immediate runtime updates to  module dependencies and metadata. Even incremental GUI development is supported with Javeleon for NetBeans!

Javeleon is a novel dynamic updating system that is transparent to the Java language and runs on top of a standard unmodified JVM. It allows dynamic type-safe updates of code as well as thread-safe lazy state migration, thus preserving live object instances. Javeleon is intentionally designed to mimic the traditional off-line updating scheme. Hence, binary incompatible updates can be successfully carried out if and only if the type conflict is resolved and the conflicting code has been recompiled. Otherwise, possible run-time exceptions, e.g. NoSuchMethodException, will be thrown if client code tries to invoke a removed method. It is important to notice that this will also happen if those updated classes are linked together using dynamic class-loading after a complete application restart using the off-line updating scheme. The full list of code changes achievable with Javeleon is presented below together with a comparison of other dynamic update systems.

http://javeleon.org

Filed under  //   agent   java   jvm   reload  
Posted September 27, 2011 by email 

node.x: JVM framework for event based, highly scalable applications

What is Node.x?

* A general purpose framework that uses an event based style for
building highly scalable applications
* Runs on the JVM.
* Everything is asynchronous.
* Embraces the style of node.js and extends it to the JVM. Think
node.js/on steroids/. Plus some.
* Polyglot. The same (or similar) API will be available in multiple
languages: Initially Ruby (JRuby), Groovy and Java and going
ahead... JavaScript (Rhino/Nashorn), Python (Jython), Clojure, Scala
etc.
* Goes with the recent developments with InvokeDynamic in Java 7 and
bets on the JVM being the future premier runtime for dynamic languages.
* Enables you to create network servers or clients incredibly easily.
* True threading. Unlike node.js, Python Twisted or Ruby EventMachine,
it has true multi-threaded scalability. No more spinning up 32
instances just to utilise the cores on your server.
* Incredibly simple concurrency model. Write your code as single
threaded like node.js, watch it scale across multiple cores (unlike
node.js)
* Understands multiple network protocols out of the box including:
TCP, SSL, UDP, HTTP, HTTPS, Websockets
* Sendfile support for writing super scalable web servers
* Will provide plugins for talking AMQP, STOMP, Redis etc
* Provides an elegant api for composing asynchronous actions together.
Glue together HTTP, AMQP, Redis or whatever in a few lines of code.


https://github.com/purplefox/node.x

Filed under  //   event   framework   groovy   java   jruby   jvm   node.js   opensource   scalable  
Posted September 20, 2011 by email 

Node.x: asynchronous, event-based server framework for the JVM similar to node.js

What is Node.x?

* A general purpose framework that uses an asynchronous event based style for building highly scalable network or file system aware applications
* Runs on the JVM.
* Everything is asynchronous.
* Embraces the style of node.js and extends it to the JVM. Think node.js on steroids. Plus some.
* Polyglot. The same (or similar) API will be available in multiple languages: Ruby, Java, Groovy, (Python?, JS?, Clojure?), etc
* Goes with the recent developments with InvokeDynamic in Java 7 and bets on the JVM being the future premier runtime for dynamic languages.
* Enables you to create network servers or clients incredibly easily.
* True threading. Unlike node.js, Python Twisted or Ruby EventMachine, it has true multi-threaded scalability. No more spinning up 32 instances just to utilise the cores on your server.
* Understands multiple protocols out of the box including: TCP, SSL, UDP, HTTP, HTTPS, Websockets, AMQP, STOMP, Redis etc
* Provides an elegant api for composing asynchronous actions together. Glue together HTTP, AMQP, Redis or whatever in a few lines of code.

https://github.com/purplefox/node.x/
http://purplefox.github.com/node.x/

Filed under  //   groovy   java   jruby   jvm   node   node.js   scala   server  
Posted July 11, 2011 by email 

Metrics: Capturing JVM- and application-level metrics

Capturing JVM- and application-level metrics. So you know what's going on.

Metrics comes with five types of metrics:

* Gauges are instantaneous readings of values (e.g., a queue depth).
* Counters are 64-bit integers which can be incremented or decremented.
* Meters are increment-only counters which keep track of the rate of events. They provide mean rates, plus exponentially-weighted moving averages which use the same formula that the UNIX 1-, 5-, and 15-minute load averages use.
* Histograms capture distribution measurements about a metric: the count, maximum, minimum, mean, standard deviation, median, 75th percentile, 95th percentile, 98th percentile, 99th percentile, and 99.9th percentile of the recorded values. (They do so using a method called reservoir sampling which allows them to efficiently keep a small, statistically representative sample of all the measurements.)
* Timers record the duration as well as the rate of events. In addition to the rate information that meters provide, timers also provide the same metrics as histograms about the recorded durations. (The samples that timers keep in order to calculate percentiles and such are biased towards more recent data, since you probably care more about how your application is doing now as opposed to how it's done historically.)

Metrics also has support for health checks

Code:
https://github.com/codahale/metrics


Presentation:
http://codahale.com/codeconf-2011-04-09-metrics-metrics-everywhere.pdf

Filed under  //   java   jvm   metrics   monitoring   scala  
Posted April 11, 2011 by email 

JVM Tools: Btrace, VisualVM

VisualVM

VisualVM is a tool to monitor and troubleshoot Java applications. It runs on Sun JDK 6, but is able to monitor applications running on JDK 1.4 and higher. It utilizes various available technologies like jvmstat, JMX, the Serviceability Agent (SA), and the Attach API to get the data and automatically uses the fastest and most lightweight technology to impose minimal overhead on monitored applications.

https://visualvm.dev.java.net/

Outlook

Screencast

http://blip.tv/file/1582849

 

BTrace

BTrace is a safe, dynamic tracing tool for the Java platform. BTrace can be used to dynamically trace a running Java program (similar to DTrace for OpenSolaris applications and OS). BTrace dynamically instruments the classes of the target application to inject tracing code ("bytecode tracing"). Tracing code is expressed in Java programming language. There is also integration with DTrace for the OpenSolaris platform.

Tracing JDBC SQL queries using BTrace
http://blogs.sun.com/sundararajan/entry/btrace_in_real_world

BTrace Fix on the Mac
http://kensipe.blogspot.com/2009/02/btrace-fix-on-mac.html

BTrace Plugin for VisualVM
http://kenai.com/projects/btrace/pages/BTracePlugin

Monitoring and Troubleshooting Java™ Platform Applications with JDK™ Software
https://visualvm.dev.java.net/files/documents/7163/136082/JavaOne-2009-BOF-4724.pdf

Eclipse Launcher for VisualVM
https://visualvm.dev.java.net/eclipse-launcher.html

Filed under  //   java   jvm   performance   tools  
Posted August 13, 2009 by email