You are viewing documentation for Structure Server and Data Center version 5.4 and patch releases. For other versions, see Version Index or [Structure Cloud].
12th of December, 2016
Structure 3.4 is a major release that adds quick transformations (a.k.a. quick filters), integration with Portfolio for JIRA and stable public API. It also has quite a few other updates, bug fixes, performance and stability improvements.Important for Structure 2.x users! If you currently use Structure 2.11.2 or an earlier version, it is very important that you read Structure 3.0 Release Notes before upgrading.
Download the latest Structure and Extensions
Structure 3 Demo Server
Structure 3 Quick Start Guide
Structure 3.4 is a major update in the Structure 3 series. It contains several new features:
Upgrade is recommended to all users.
Quick transformations, also known as "quick filters", are predefined transformations that may be configured by the structure owner and then quickly turned on, separately or in combination.
Previously, Structure had only two predefined quick transformations – Unresolved and Assigned to me. Now it is possible to define your own quick transformations and share them with the team.
Documentation: Quick Transformations
We have added support for Parent Link field in Portfolio for JIRA.
Now, when you have Portfolio installed, you get two new generators:
Both generators support updates, so you can change the Parent Link field by dragging and dropping issues.
This feature allows you to recreate in Structure the hierarchy you have in Portfolio and then build on top of it.
Supported Portfolio for JIRA versions: 2.1.5 or later.
Good news for those of you who prefer to use Project tab with Structure, rather than Structure Board – we have added "Grid + Details" layout to those available on the project page.
See Viewing Issue Details for documentation about this layout.
We have added a special generator that lets you group by a text attribute. A common example is grouping by the value of a custom text field.
To use this grouper, select Automation | +, then Group, and find Text Attribute... in the drop-down list. In the dialog that follows, select the desired attribute.
This grouper does not handle changes. You cannot move an issue from one group to another – you will need to update the field.
There are a few performance improvements in this version:
There were significant fixes related to synchronizer performance.
Backup creation with history is now much faster.
We fixed some performance issues with structure() function used on Agile boards.
We are finally releasing our stable API for Structure 3 series.
With the introduction of the new architecture earlier this year we had to make breaking changes to the API and took some time to work out the kinks and make it stable. Structure 3.4 ships with Structure API 16.0.0, which can be used in your custom plugins or from integration scripts.
We have documented the most important parts of the API but the documentation work still continues. You can expect that API coverage will increase with every new version.
Documentation: Structure Developer's Guide
The following other issues have been addressed in Structure 3.4:
There are also other bug fixes and improvements.
Structure 3.4 and all extensions support JIRA versions from 7.0 to 7.2. All editions of JIRA (JIRA Core, JIRA Software, JIRA Service Desk) are supported. JIRA Data Center is supported.
Structure 3.3 was the last version of Structure to support JIRA 6. Structure 3.4 supports JIRA versions starting from 7.0.
Please note that if you're using Structure.Pages, you will need to upgrade it to version 1.2.0.
See Structure.Pages 1.2 Release Notes for more information about updates in Structure.Pages.
Please note that if you're using Structure.Testy, you will need to upgrade it to version 2.2.0.
Structure.Testy 2.2 includes new high-level API that makes it easier to integrate your scripts with Testy and update test statuses programmatically.
If your JIRA server does not have Structure yet, the installation is simple:
catalina.out
or jira-application.log
for log messages from Structure.Upgrade procedure from versions 3.x.x is simple:
Install the new version of the plugin.
catalina.out
or jira-application.log
for warnings or errors.We now include an additional section in Release Notes that aims to address the concerns of deploying the upgrade at a large enterprise. In this section we will suggest how the changes in the new version may affect stability and performance of JIRA and provide ideas for testing the new version on a staging environment.
Structure 3.4 is a fairly serious update. A lot of code underwent refactoring, performance optimization and testing.
The following changes are quite important for the large-scale instances.
We have rewritten the component that is central to the Structure's operation. The component's role is to store temporary rows as they are generated by Automation engine. The previous version was using "MapDB" library and offloading the stored values to disk. This turned out to be unreliable in some circumstances and under a heavy load.
The new version is much simpler and efficient, however, it does store this information in memory. The amount of data stored is not overly large, but current implementation never removes data from memory once it is stored. Therefore, on an active enough and large enough instance, this component may eventually grow to take a lot of memory resources or even cause an OutOfMemoryError.
Therefore, JIRA administrators on large instances are advised to keep an eye on the amount of Heap memory consumed by JIRA's Java process, and if it reaches what you'd consider to be a high threshold, you can clean up the memory taken by Structure with a simple operation: disable Structure plugin and then enable it back.
We are continuing our work on improving this component. Our next versions will contain improvements for this aspect.
We have identified a problem that can possibly manifest on JIRA Data Center cluster, when a node wants to recover indexes (from a downloaded index zip from another node), but it happens to be running a Structure synchronizer. As synchronizers used to take read lock on reindexing, they prevented full-stop reindex and index recovery from happening at the same time with synchronization. But on large instances a single synchronization job may execute for a long time – and this caused "Wait attempt timed out" error on the reindexing node.
The new locking mechanism, which is added in Structure 3.4, does not take read lock for more than a fragment of a second. While still ensuring that Structure's synchronizers and generators would execute based only on consistent query results, it allows JIRA full reindex or index recovery to happen at any time.
We have changed the way Structure plugin starts. Since we only support JIRA 7.0 or later with this version, we were to use some of the improvements Atlassian team prepared in JIRA 7 to increase reliability of the start sequence.
The related problem that happened to our customers in the past was that the plugin wouldn't start – it would wait for Active Objects component (provided by JIRA) to become available, but fail after 60 seconds of waiting. Usually, another attempt to manually start Structure would succeed.
With the new start-up sequence, the probability of such behavior should be less. Unfortunately, it's hard to tell precisely, because there's a dependency on JIRA subsystem. However, the plugin start-up has become much more predictable and repeatable.
Most of the performance improvements mentioned in the Release Notes above are quite important for large-scale instances.
The following checks are suggested for Structure 3.4 on a staging environment with production data.
structure()
function (see S-JQL Cookbook). Make sure there is about 1,000 issues in the result. See how well Agile board loads.Should you have any questions on Enterprise Deployment, let us know at support@almworks.com.