Large Active Objects tables?

MattS
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 10, 2016

Does anyone have experience of how JIRA performs for reading Active Object tables that have just a few columns? Say 500,000 rows and 6 columns, no foreign keys

I want to be able to query for all the rows that match on one field, returning probably less than 1000 matching rows

 

1 answer

2 votes
Tibor Hegyi _META-INF_
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
March 10, 2016

Hi Matt,

we have Email This Issue customers with having 600K-1M records in a table used to store email logs. The table has many columns as well.

Querying the table with ActiveObjects was never a problem, at least we never received a complaint about query performance and the data set I personally tried on PostgreSQL had approximately 650K records in this table and it was running fine on my laptop.

However, sometimes ActiveObjects execute ALTER TABLE statements. Two of our customers reported performance issues concerning ALTER table statements executed by ActiveObjects on this very huge table. Both of them used mySQL 5.1, so it looked to me that it was mySQL that could not complete the statements.

Again, this is ALTER TABEL not a SELECT. SELECT was always acceptable.

We had an Atlassian event (like an AUG) yesterday and there was a presentation about using Querydsl to query huge plugin tables with extremely good performance. So there is an easy and promising alternative to ActiveObjects when it comes to querying AO tables within an addon.

Tibor

 

crf
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
March 10, 2016

I think in general, AO itself is not likely to be a performance bottleneck.  If you are frequently querying by a particular field, then it is good to make sure that the field is indexed, but that isn't something that is a database optimization and not unique to AO.

AO will do ALTER TABLE commands when you install a new version of a plugin and AO sees that the database metadata does not match the entity definitions.  It is not something that it would do under normal conditions.  This is due to installing a plugin on a live system which, while possible, is never going to be free of risk.

As Tibor mentions, internally Atlassian is converting our own plugins to use AO for schema management only and using atlassian-pocketknife-querydsl to write queries.  I'd like to see us ship that as a bundle instead of a library at some point, but we've had enough success with QueryDSL at this point that I would definitely say it's worth investigating.

 

MattS
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 15, 2016

Chris, Tibor, thanks for the info. Good to hear of the work on querying AO

Yurii Bilash November 28, 2017

Hi guys,

As probably you know, Confluence(version < 6.0.1) uses some old version of guava(as I remember 11.0.2). And qurydsl uses newer version of guava - 18.0. 
The question is: Is it possible to use querydsl library in Confluence(version < 6)?

crf
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
November 30, 2017

Yuriy: You should ask that as its own question.  It is not related to this question at all.

 

(Also, I'm guessing you chose to put your name in ()s rather than the []s that are used by default?  It seems to be breaking the editor.  I can't mention you.)

Yurii Bilash November 30, 2017

@crf Thanks for reply anyway.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events