Openfire Optimization Issues - openfire

I have found some optimisation issues in open-fire.
I am not using groups implementation, still below queries are getting fired.
SELECT groupName FROM ofGroupUser WHERE username='?'.
SELECT groupName from ofGroupProp WHERE ...
Every now and then these queries are fired off no reason
SELECT offlinePresence, offlineDate FROM ofPresence WHERE username='?'
SELECT DISTINCT serviceID FROM ofPubsubNode WHERE serviceID='?'
Also, documentation is very poor:
http://download.igniterealtime.org/openfire/docs/latest/documentation/database-guide.html
https://community.igniterealtime.org/docs/DOC-1673
I don't understand what all cache means. How can I save these queries?

As Openfire is an Opensource project so documentation is also dependent on community contribution.
For your mentioned queries, if you are really looking for optimizations on this level, you should check out the source code of Openfire from Github and track the functionality which is firing these queries and if that looks unnecessary in your case, you can definitely customize those keeping in mind the side effects. There is no simple way to just stop/start such queries from configuration.

Related

Google Cloud Big Query Scheduled Queries weird error relating JURISDICTION

All my datasheets, tables, and ALL items inside BQ are un EU. When I try to do a View->to->Table 15 min scheduled query I get an error regarding my location, which is incorrect, because all, source and destiny are both on EU...
Anyone knows why?
There is a transient known issue matching your situation, GCP support team needs more time for troubleshooting. There may be a potential issue in the UI. I would ask you to try the following steps:
Firstly, try to make the same operation in Chrome's incognito mode.
Another possible workaround is trying to follow this official guide using a different approach than the UI (CLI for instance).
I hope it helps.

Subscribe to a query

Is there a way in native SQL, SQL database specific (i.e. PostGresQL) or another (NoSQL database) to subscribe to query and receive updates when a entry matches the criteria? For example I have the query: SELECT * FROM users WHERE birthday = today() is it possible to receive update when a entry matches the criteria instead of using the so called 'pulling' mechanism? The query can be slightly more complex because this idea is required for a solution which send recurring messages based on the user preferences.
The only database I know that has built-in notifications like this is RebirthDB with a feature called "changefeeds":
They allow clients to receive changes on a table, a single document,
or even the results from a specific query as they happen. Nearly any
ReQL query can be turned into a changefeed.
The only problem is that the database began life as RethinkDB, but the company making it folded in 2016, leaving it to the open-source community. It's still alive as "RebirthDB" on GitHub with active development, but the documentation is just a copy of the old Rethink docs with GitHub notices. They have a website url, but no website. I hope they can keep it alive: it's a great idea.
https://github.com/RebirthDB/docs

Crm2013/15 Online and queries on huge data volumes

I'm working on a couple of million records, as soon as I try to run an advanced find, and put as a criteria a linked entity, the advanced find goes in timeout.
Create custom views on this allows me to filter properly? Anyone knows the proper way of using the advanced find this way? Are there limitations on the out of the box CRM that i should be aware of?
In CRM 2013 - it is possible to add indexes for specific fields by adding the columns to the quick find view for the entity.
You will need to wait for the Indexing Management Job to run (which is run every 24 hours by default) - see http://blogs.msdn.com/b/darrenliu/archive/2014/04/02/crm-2013-maintenance-jobs.aspx.
In previous version of CRM, it was necessary to add the indexes directly to the database - this may be necessary for more complex queries.
was too early to post an answer. The problem that I encountered was related to the OOB advanced find. Looking for example for an account with some related contacts (a really plain search with a linked entity) i had a SQL timeout. Everything was OOB so I was a little bit clueless and I opened a case to Microsoft. They found a bug, if i was changing the sorting the advanced find started to work again. They are still investigating. So wasn't a setting problem but a crm bug.

GetOrCreate in RavenDB, or a better alternative?

I have just started using RavenDB on a personal project and so far inserting, updating and querying have all been very easy to implement. However, I have come across a situation where I need a GetOrCreate method and I'm wondering what the best way to achieve this is.
Specifically I am integrating with OpenID and once authentication has taken place the user is redirected to my site. At this point I'd either like to retrieve their user record from Raven (by querying on the ClaimsIdentifier property) or create a new record. The user's ID is currently being set by Raven.
Obviously I can write this in two statements but without some sort of transaction around the select and the create I could potentially end up with two user records in the database with the same claims identifier.
Is there anyway to achieve this kind of functionality? Possibly even more importantly is do you think I'm going down the wrong path. I'm assuming even if I could create a transaction it would make scaling out to multiple servers difficult and in anycase could add a performance bottle-neck.
Would a better approach be to have the Query and Create operations as separate statements and check for duplicates when the user is retrieved and merge at that point. Or do something similar but on a scheduled task?
I can't help but feel I'm missing something obvious here so any advice on this problem would be greatly appreciated.
Note: while scaling out to multiple servers may seem unnessecary for a personal project, I'm using it as an evaluation of Raven before using it in work.
Dan, although RavenDB has support for transactions, I wouldn't go that way in your case. Instead, you could just use the users ClaimsIdentifier as the user documents id, because they are granted to be unique.
Alternatively, you can also stay with user ids being generated by Raven (HiLo btw) and use the new UniqueConstraintsBundle, which lets you attribute certain properties to be unique. Internally it will create an additional document that has the value of your unique property as its id.

Using SQL for cleaning up JIRA database

Has anyone had luck with removing large amount of issues from a jira database instead of using the frontend? Deleting 60000 issues with the bulktools is not really feasible.
Last time I tried it, the jira went nuts because of its own way of doing indexes.
How about doing a backup to xml, editing the xml, and reimporting?
We got gutsy and did a truncate on the jiraissues table and then use the rebuild index feature on the frontend. It looks like it's working!
This is old, but I see that this question was just edited recently, so to chime in:
Writing directly to the JIRA database is problematic. The reindex feature suggested in the Oct 14 08 answer just rebuilds the Lucene index, so it is unlikely to clean up everything that needs to be cleaned up from the database on a modern JIRA instance. Off the top of my head, this will probably leave data lying around in the following tables, among others:
custom field data (customfieldvalue table)
issue links (issuelink table)
versions and components (nodeassociation table, which contains other stuff too, so be careful!)
remote issue links or wiki mentions (remotelink table)
If one has already done such a manual delete on production, it's always a good idea to run the database integrity checker (YOURJIRAURL/secure/admin/IntegrityChecker!default.jspa) to make sure that nothing got seriously broken.
Fast forwarding to 2014, the best solution is to write a quick shell script that uses the REST API to delete all of the required issues. (The JIRA CLI plugin is usually a good option for automating certain types of tasks too, but as far as I can tell, it does not currently support the deletion of issues, so the REST API is your best bet.)