Category ‘Tips’

G1 Garbage Collector is mature in Java 9, finally

The G1 garbage collector is the default collector in Java 9. So it is time to reevaluate its performance which in 2013 I had criticized in a previous blog article that compared G1’s performance in late Java 7 and early Java 8 to the traditional collectors. The improvements achieved in the meantime indeed are very impressive as I will show in this article.

Read the rest of this entry »  |   Share

System-specific Security for JIRA and Confluence

In this article we talk about specifics about JIRA and Confluence configuration and system management: aspects that have to be configured by administrators and guidelines to be followed by project-administrators, space-administrators and users. Those guidelines need regular monitoring and communication with your project- and space-administrators or specific users.

Network and Server Security for JIRA and Confluence

JIRA and Confluence are important tools for managing projects and exchanging knowledge in many companies. Since they contain sensitive information, operating them as securely as possible is a must. In this two-part series about the security in Atlassian products we explain general principles of safeguarding JIRA and Confluence and give advice based on best practices. The first part focuses on network and server security and security aspects concerning the installation and basic configuration.

Read the rest of this entry »  |   Share

Increasing the Portability of a Linux Application

The existence of hundreds of different Linux distributions causes a challenge for software producers: How to provide a product for Linux as one single build only, but at the same time maximize the number of supported distributions? In this article, we first discuss a variety of approaches to tackle this portability issue and their applicability to one of our closed-source products. Then we explain our choice for a build and publication scheme that involves the Linux Standard Base (LSB), a collection of standards provided and maintained by the Linux Foundation. Finally, we share our experiences with this LSB approach in production, including insights on its practicability as well as on inherent problems.

Read the rest of this entry »  |   Share

Test Management with JIRA

In this first blog post of our series on Atlassian tools and 3rd-party plugins for Atlassian tools, we’ll have a close look on how to do test management in JIRA. You will get an insight in first thoughts and ideas when organizing tests and which main requirements are the bottom-line for test management in JIRA. After this we will show which types of test management plugins are available for JIRA. We will have a closer look on the specific functions of two representative examples and compare them with each other. And finally we will give you some hints on how to find the right plugin for your tests.

Read the rest of this entry »  |   Share

Introducing Big Data with Apache Hadoop

The revenue gained with Big Data solutions rose by 66% up to 73.5 billion euro world-wide and 59% up to 6.1 billion in Germany over the past year. One of the core technologies used is Hadoop which creates the base for a broad and rich eco-system containing distributed databases, data and graph processing libraries, query and workflow engines and much more. In one of our former blog posts, we have described how we use Hadoop for storing log messages. Since then, a lot has happened in the Hadoop universe and ecosystem. With the start of our new Big Data series, we want to cover those changes and show best practices in the Big Data world.

Read the rest of this entry »  |   Share

Controlling GC pauses with the GarbageFirst Collector

In the previous post I have shown that the GarbageFirst (G1) collector in Java 7 (and also 8ea) does a reasonable job but cannot reach the GC throughput of the “classic” collectors as soon as old generation collections come about. This article focuses on G1’s ability to control the duration of GC pauses. To this end, I refined my benchmark from the previous tests and also ran it with a huge heap size of 50 GB for which G1 was designed. I learnt that G1’s control of GC pauses is not only costly but, unfortunately, also weaker than expected.

Read the rest of this entry »  |   Share

Benchmarking G1 and other Java 7 Garbage Collectors

As mentioned in a first post of this series, Oracle’s GarbageFirst (G1) collector has been a supported option in Java 7 for some time. This post examines in more detail the performance of the G1 garbage collector compared to the other collectors available in the Hotspot JVM. I used benchmark tests for this purpose instead of a real application because they can be executed and modified more easily. I found surprising strengths and weaknesses in several of Hotspot’s garbage collectors and even disclose a fully-fledged bug.

Read the rest of this entry »  |   Share