Hi Eliot -
On Mon, Feb 7, 2022 at 3:17 PM Eliot Kimber eliot.kimber@servicenow.com wrote:
I like the multiple instance case—I hadn’t consider that, but if I undertand how BaseX works with indexes, it should be as easy as making a backup from instance A and restoring it to instance B?
Or maybe just have a shared /data dir and be careful about which instance is accessing a given database so there are not concurrent writes?
You are probably already familiar with the filesystem locks, but in case
you aren't, see [1]
I’m using node IDs as index lookup keys so I’d have to make sure that node IDs persist across backup and restore but surely that is the case?
But it certainly makes sense to do my long-running persistent index construction in one instance and then expose it through another as read-only for user access.
I can't find it quickly, but I recall Marco Lettere writing about a
similar setup for some of his architecture. That may help when looking through the list archive.
Will explore this.
Cheers,
E.
Best, Bridger
[1] https://docs.basex.org/wiki/Transaction_Management#File-System_Locks
*Eliot Kimber*
Sr Staff Content Engineer
O: 512 554 9368
M: 512 554 9368
servicenow.com https://www.servicenow.com
LinkedIn https://www.linkedin.com/company/servicenow | Twitter https://twitter.com/servicenow | YouTube https://www.youtube.com/user/servicenowinc | Facebook https://www.facebook.com/servicenow
*From: *Christian Grün christian.gruen@gmail.com *Date: *Monday, February 7, 2022 at 12:28 PM *To: *Eliot Kimber eliot.kimber@servicenow.com *Cc: *basex-talk@mailman.uni-konstanz.de < basex-talk@mailman.uni-konstanz.de> *Subject: *Re: [basex-talk] Managing/Debugging Server Load and Performance
[External Email]
I am seeing that when BaseX is doing some long-running process
(constructing one of our big custom indexes) that it seems to consume all the BaseX cycles and the HTTP server becomes unresponsive.
If you perform expensive write operations on databases that other users want to access, they’ll need to wait until this operation is finished.
There are various ways out: You can e.g. create temporary instances of your index databases and drop the operative database instances after your maintenance operations have finished. For high-availability use cases, you can also work with multiple BaseX instances.
[…] this use of BaseX was completely unplanned but suddenly very much
desired…
Always good to hear!