DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report
  1. DZone
  2. Data Engineering
  3. AI/ML
  4. How Chronon Recording Server Acts As Tivo For Java

How Chronon Recording Server Acts As Tivo For Java

James Sugrue user avatar by
James Sugrue
CORE ·
Jun. 29, 11 · Interview
Like (0)
Save
Tweet
Share
5.07K Views

Join the DZone community and get the full member experience.

Join For Free

Since it's release, the Chronon Time Travelling Debugger  has struck me as one of the most innovative tools available for Java developers. Chronon have been busy adding to their offerings: their latest Recording Server can be described as "a Tivo or Software DVR for Java". With a tagline like that, I had to find out more from Prashant Deva, founder and CEO of Chronon.

DZone: What is the recording server adding to the initial Chronon product?
 
Prashant Deva: Well we already had a powerful Time Travelling debugger and a 'flight data recorder' which allowed you to record and replay any Java progam. With the addition of the Recording Server, we now have the full stack of Chronon ready to record, replay and easily debug any Java application running on any machine, for any duration of time.

The Chronon Recording Server turns Chronon into essentially a TiVo or Software DVR of sorts for Java.

You can easily record Java applications running on any remote machine and play the recording back on any other machine if the Java application encounters a bug or runs into any issues. The Recording Server makes it easy to manage the Chronon recorder on remote machines and allows you to easily share the recordings between team members.

So for example, a QA  machine can have the Recording Server configured to record its applicationss and if the QA person ever runs into a bug he can simply inform the programmer to download the recording corresponding to his machine. The developer in turn can then reproduce and debug the issue instantly on his machine using our Time Travelling Debugger. This also means that the developer can do away with the hassle of looking at huge log files.

The Recording Server is also built to allow recording of long running server side programs that run for days, weeks or months at a time. It will automatically take care of splitting the recording if its size gets too large.

The Chronon Recorder now also has the ability to dynamically start and stop recording in a running Java application. This way if for some reason, performance or otherwise you do not want to be recording all the time, you can start/stop the recording dynamically from the Recording Server dashboard without pausing the running Java program. When the recording is stopped, all extra resources consumed by the recorder are discarded, including any instrumentation.


DZone: Can the server generate reports?

Prashant Deva: Reporting doesn't make sense in the context of the Recording Server. We are not an APM tool. The Recording Server's job is to allow controlling the recorder and sharing recordings. You can use the time travelling debugger to then browse the entire execution of the program.

DZone: What does the server run on?

Prashant Deva: The architecture of the Recording Server looks like this:




Each machine being recorded can have a bunch of jvms running, with a recorder attached to each.

The machine each also have a 'controller' service running on them. The 'controller' is the real brain and is responsible for communicating with the individual jvms and the Recording Server.

The recordings are stored locally on each machine, so there is no extra network traffic when a program is being recorded. This also means that if any machine goes down, including the recording server, it wont affect the recording on any other machine.

The Recording Server runs on a separate machines and communicates only with the controller of each machine. Thus when you ask for a recording say 42 on say machine A for jvm B, the Recording Server will contact the controller for machine A and ask it for recording 42 of jvm B.

The Controllers create 'client' connections to the Recording Server, which can be listening on port 80 or 443. Thus no extra firewall configurations are required on any machine that will be recorded.



DZone:  Does reporting to the server slow down the running application?

Prashant Deva: The slowdown really depends on the 'amount of execution' being recorded. Thus, you can have a multi million line JavaEE program which mostly waits for IO from the database or network and it will have an almost negligible performance hit than a small 10 line program which runs in a tight loop.
Also we allow people to configure what they can record. By default, we discourage recording 3rd party library code. Since you didn't write it, you cannot debug it anyway. Thus the response time of most applications wont be affected much.

Java (programming language) Machine Database application

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Securing Cloud-Native Applications: Tips and Tricks for Secure Modernization
  • What To Know Before Implementing IIoT
  • OpenVPN With Radius and Multi-Factor Authentication
  • MongoDB Time Series Benchmark and Review

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: