[ 
https://issues.apache.org/jira/browse/JENA-801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14185255#comment-14185255
 ] 

Bala Kolla commented on JENA-801:
---------------------------------

In regard to the comment about saturation test, my intention is to not do that 
instead our goal is to make our serve support 500 user load. In our case these 
500 users are executing our domain specific usecases which in turn would cause 
read and write activity on Jena triple store.
As I mentioned in the description its able to support up to 300 user load on 
this particular repository ( and 450+ on smaller repository). And in all the 
cases when it breaks down it starts with one query taking long time (in this 
case 30 seconds, our time out) and this starts kind of a ripple effect and 
causes more GC and cause many other queries to take long time and server never 
recovers unless we stop the work load.
Our goal is to find a way to probably identify and prevent this from happening 
in the first place. If we can't do it at Jena code then we would like to 
throttle in our code so that we can identify/anticipate and prevent this from 
happening.

> When the server is under load, many queries are piling up and seems to be in 
> some kind of dead lock.
> ----------------------------------------------------------------------------------------------------
>
>                 Key: JENA-801
>                 URL: https://issues.apache.org/jira/browse/JENA-801
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: TDB
>    Affects Versions: TDB 0.9.4, Jena 2.11.2
>            Reporter: Bala Kolla
>         Attachments: 
> ThreadLocksInBlockMgrJournalAfterGuavaCacheInNodeTable.htm, 
> WAITDataReportShowingTheLockContention.zip, 
> WAITDataReportShowingTheLockContentionWithoutQueryFilter.zip
>
>
> We were testing our server with repositories of varied sizes and in almost 
> all the cases when the server peaks its capacity (of maximum number of users 
> it can support), It seems like the queries are piling up because of the lock 
> contention in NodeTableCache.
> Here are some details about the repository..
> size of indices on disk - 150GB
> type of hard disk used - SSD and HDD with high RAM (seeing the same result in 
> both the cases)
> OS - Linux
> Details on the user load;
> We are trying to simulate a very active user load where all the users are 
> executing many usecases that would result in many queries and updates on TDB.
> I would like to know what are the possible solutions to work around and avoid 
> this situation. I am thinking of the following, please let me know if there 
> is any other way to work around this bottleneck.
> Control the updates to the triple store so that we only do it when there are 
> not many queries pending. We would have to experiment how this impact the 
> usecases..
> Is there any other way to make this lock contention go away? Can we have 
> multiple instances of this cache? For example many (90%) of our queries are 
> executed with a query scope (per project). So, can we have a separate 
> NodeTable cache for each query scope (project in our case) and one for 
> global? 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to