[midPoint] Speeding up Ninja

Viliam Repan viliam.repan at evolveum.com
Mon Feb 19 10:02:19 CET 2024


Hi Steven,

as pointed out today by my colleague I forgot to mention one other needed option in my examples —raw (-r) to correctly export data from repository.
It’s also mentioned in docs: https://docs.evolveum.com/midpoint/reference/support-4.8/repository/native-postgresql/migration <https://docs.evolveum.com/midpoint/reference/support-4.8/repository/native-postgresql/migration/>

Best regards,


viliam

> On 17 Feb 2024, at 17:17, Viliam Repan via midPoint <midpoint at lists.evolveum.com> wrote:
> 
> Hi Steven,
> 
> you can’t run ninja 4.8.x against midPoint 4.4.* because midPoint repository database schema doesn’t match.
> However, it should be ok to run ninja from midPoint 4.4.7 against midPoint 4.4.1 (sql server repository) - because DB schema didn’t change between these versions of midPoint for sql server.
> I’ve quickly tested this agains H2 database, seems ok. Please test this one correctly before running it in production environment.
> 
> As for the second idea - divide would be a bit complicated since there are cases where objects don’t have create/modify timestamp in metadata available, therefore such query wouldn’t work (was fixed in midPoint 4.8)
> You can check whether this is your case by querying database directly with query such as:
> 
> select count(*) from m_object where createTimestamp is null or modifyTimestamp is null;
> 
> This could potentially work with exporting everything up to 2/14/24 (for objects which have create/modify timestamp is available) and then export/import everything since 2/14/24 + everything with null create/modify timestamp…
> 
> Examples of ninja exports with custom filter searching by create/modify timestamp (or it’s existence) using midPoint query language:
> 
> ./bin/ninja.sh export -f '%metadata/modifyTimestamp > "2020-01-01”'
> 
> ./bin/ninja.sh export -f '%metadata/modifyTimestamp not exists’
> 
> ./bin/ninja.sh export -f '%metadata/createTimestamp > "2020-01-01”'
> 
> These can be combined with other options like —output (-o), —type (-t), —zip (-z), —multi-thread (-l). XML query filter can be used with -f option or can be read from file as well.
> 
> Best regards,
> 
> 
> viliam
> 
> 
>> On 15 Feb 2024, at 15:22, Ashwill, Steven L via midPoint <midpoint at lists.evolveum.com> wrote:
>> 
>> If we must use a later version of Ninja to activate multiple threads, as recommended below, can I use the ninja from 4.8.1, but only upgrade to 4.4.3.  We are currently running on 4.4.1 with a SQL Server and we are trying to go to 4.4.3 Postgres.(Smallest software change possible). The main concern is that with over 3 million user objects our downtime window for production is too long.
>> If this is possible, can you provide both the export command and the import command that would be the most efficient.  
>> 
>> Another idea would be to divide up the work.  Is it possible to export everything up to 2/14/24, then import everything.  Then export everything since 2/14/24 and then import just a few days of changes during the cut over. If this is possible how would I do that?
>> 
>> Thanks
>> 
>> -----Original Message-----
>> From: midPoint <midpoint-bounces at lists.evolveum.com> On Behalf Of midpoint-request at lists.evolveum.com
>> Sent: Monday, February 5, 2024 1:38 PM
>> To: midpoint at lists.evolveum.com
>> Subject: midPoint Digest, Vol 142, Issue 3
>> 
>> Send midPoint mailing list submissions to
>> 	midpoint at lists.evolveum.com
>> 
>> To subscribe or unsubscribe via the World Wide Web, visit
>> 	https://urldefense.com/v3/__https://lists.evolveum.com/mailman/listinfo/midpoint__;!!DZ3fjg!4FmunPgtH3lNRHTdz604Ya4KL4bNJB5bWok58lwWmLH1-TEXEkq4wsqLnjFeBCmLqZFAQ57dFVQGLmiTxON4DVHRo_98wBfEIYNK5Q$
>> or, via email, send a message with subject or body 'help' to
>> 	midpoint-request at lists.evolveum.com
>> 
>> You can reach the person managing the list at
>> 	midpoint-owner at lists.evolveum.com
>> 
>> When replying, please edit your Subject line so it is more specific than "Re: Contents of midPoint digest..."
>> 
>> 
>> Today's Topics:
>> 
>>  1. Re: Speed up Ninja (Fabian Noll-Dukiewicz)
>>  2. Re: Speed up Ninja (Viliam Repan)
>> 
>> 
>> ----------------------------------------------------------------------
>> 
>> Message: 1
>> Date: Mon, 5 Feb 2024 19:23:27 +0000
>> From: Fabian Noll-Dukiewicz <fabian.noll-dukiewicz at veryfy.gmbh>
>> To: midPoint General Discussion <midpoint at lists.evolveum.com>, Martin
>> 	Lízner <martin.lizner at ami.cz>
>> Cc: "Ashwill, Steven L" <sashwill at uillinois.edu>
>> Subject: Re: [midPoint] Speed up Ninja
>> Message-ID:
>> 	<BE1P281MB1939794B5D06E2CD169BE88EA3472 at BE1P281MB1939.DEUP281.PROD.OUTLOOK.COM>
>> 	
>> Content-Type: text/plain; charset="iso-8859-2"
>> 
>> I think you have to use the ninja tool provided by the 4.8.1 release.
>> 
>> Kind regards,
>> Fabian
>> 
>> Fabian Noll-Dukiewicz
>> Spezialist Identity & Access Management | Geschäftsführer
>> Tel.: +49 152 244 63 211
>> Email: fabian.noll-dukiewicz at veryfy.gmbh
>> Web: https://urldefense.com/v3/__https://veryfy.gmbh__;!!DZ3fjg!4FmunPgtH3lNRHTdz604Ya4KL4bNJB5bWok58lwWmLH1-TEXEkq4wsqLnjFeBCmLqZFAQ57dFVQGLmiTxON4DVHRo_98wBdkSBh3Ag$ 
>> 
>> 
>> Von: midPoint <midpoint-bounces at lists.evolveum.com> im Auftrag von Ashwill, Steven L via midPoint <midpoint at lists.evolveum.com>
>> Datum: Montag, 5. Februar 2024 um 16:55
>> An: Martin Lízner <martin.lizner at ami.cz>, midpoint at lists.evolveum.com <midpoint at lists.evolveum.com>
>> Cc: Ashwill, Steven L <sashwill at uillinois.edu>
>> Betreff: Re: [midPoint] Speed up Ninja
>> I saw the -l switch but no documentation on the website.  I tried 8 threads to 16 threads but there was no change in the time it took. We have 16 cores on the application server. We are using version 4.4.3.  Is thread perhaps a feature introduced later?
>> 
>> From: Martin Lízner <martin.lizner at ami.cz>
>> Sent: Monday, February 5, 2024 8:04 AM
>> To: midpoint at lists.evolveum.com
>> Cc: Ashwill, Steven L <sashwill at uillinois.edu>
>> Subject: Re: Speed up Ninja
>> 
>> Hi, use threads... e.g. 32
>> 
>> java -jar ninja.jar export -O export.zip -z -l 32 ________________________________
>> Od: midPoint <midpoint-bounces at lists.evolveum.com<mailto:midpoint-bounces at lists.evolveum.com>> za uživatele Ashwill, Steven L via midPoint <midpoint at lists.evolveum.com<mailto:midpoint at lists.evolveum.com>>
>> Odesláno: pondělí 5. února 2024 14:22
>> Komu: midpoint at lists.evolveum.com<mailto:midpoint at lists.evolveum.com> <midpoint at lists.evolveum.com<mailto:midpoint at lists.evolveum.com>>
>> Kopie: Ashwill, Steven L <sashwill at uillinois.edu<mailto:sashwill at uillinois.edu>>
>> Předmět: [midPoint] Speed up Ninja
>> 
>> 
>> We are working on migrating to Postgres using the ninja tool(4.4.1 now, then 4.8.1 this summer). We have more than 3 million user objects and the exports are taking a long time.   What options are there to speed up the export and the import?
>> 
>> 
>> 
>> STEVEN L ASHWILL
>> University of Illinois Urbana-Champaign
>> 
>> 
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: <https://urldefense.com/v3/__https://lists.evolveum.com/pipermail/midpoint/attachments/20240205/757ee92f/attachment-0001.htm__;!!DZ3fjg!4FmunPgtH3lNRHTdz604Ya4KL4bNJB5bWok58lwWmLH1-TEXEkq4wsqLnjFeBCmLqZFAQ57dFVQGLmiTxON4DVHRo_98wBf0uT3NDA$ >
>> 
>> ------------------------------
>> 
>> Message: 2
>> Date: Mon, 5 Feb 2024 20:37:47 +0100
>> From: Viliam Repan <viliam.repan at evolveum.com>
>> To: midPoint General Discussion <midpoint at lists.evolveum.com>
>> Cc: Martin Lízner <martin.lizner at ami.cz>, "Ashwill, Steven L"
>> 	<sashwill at uillinois.edu>
>> Subject: Re: [midPoint] Speed up Ninja
>> Message-ID: <217D9554-A1D5-45D5-8894-7D3922B828EE at evolveum.com>
>> Content-Type: text/plain; charset="utf-8"
>> 
>> Hi Ashwill,
>> 
>> where do you start ninja from? Directly from application server?
>> 
>> Ninja connects separately to midpoint repository (DB) using it’s own JDBC connection(s), so unless it’s running on application server, it doesn’t matter how many CPU app server has.
>> Mostly only speed of DB matters (CPU, disk I/O).
>> 
>> Can you please check the following?
>> 
>> 1/ Is ninja running in the same VPN/network as database? Or at least the same network as application server is located?
>> 2/ When you start ninja with -l option, can you check database stats (cpu, disk i/o). Also what is cpu/disk usage on machine running ninja?
>> 3/ Is ninja writing export file to local disk or NFS share?
>> 4/ Do you use -r (raw) export?
>> 
>> What I’m trying to find is where are the current bottlenecks during export.
>> 
>> Can you please post speeds with different number of threads used during export?
>> 
>> Thank you very much.
>> 
>> 
>> Best regards,
>> 
>> 
>> viliam
>> 
>>> On 5 Feb 2024, at 16:55, Ashwill, Steven L via midPoint <midpoint at lists.evolveum.com> wrote:
>>> 
>>> I saw the -l switch but no documentation on the website.  I tried 8 threads to 16 threads but there was no change in the time it took. We have 16 cores on the application server. We are using version 4.4.3.  Is thread perhaps a feature introduced later? 
>>> 
>>> From: Martin Lízner <martin.lizner at ami.cz>
>>> Sent: Monday, February 5, 2024 8:04 AM
>>> To: midpoint at lists.evolveum.com
>>> Cc: Ashwill, Steven L <sashwill at uillinois.edu>
>>> Subject: Re: Speed up Ninja
>>> 
>>> Hi, use threads... e.g. 32
>>> 
>>> java -jar ninja.jar export -O export.zip -z -l 32
>>> Od: midPoint <midpoint-bounces at lists.evolveum.com 
>>> <mailto:midpoint-bounces at lists.evolveum.com>> za uživatele Ashwill, 
>>> Steven L via midPoint <midpoint at lists.evolveum.com 
>>> <mailto:midpoint at lists.evolveum.com>>
>>> Odesláno: pondělí 5. února 2024 14:22
>>> Komu: midpoint at lists.evolveum.com <mailto:midpoint at lists.evolveum.com> 
>>> <midpoint at lists.evolveum.com <mailto:midpoint at lists.evolveum.com>>
>>> Kopie: Ashwill, Steven L <sashwill at uillinois.edu 
>>> <mailto:sashwill at uillinois.edu>>
>>> Předmět: [midPoint] Speed up Ninja
>>> 
>>> We are working on migrating to Postgres using the ninja tool(4.4.1 now, then 4.8.1 this summer). We have more than 3 million user objects and the exports are taking a long time.   What options are there to speed up the export and the import?
>>> 
>>> STEVEN L ASHWILL
>>> University of Illinois Urbana-Champaign
>>> 
>>> 
>>> _______________________________________________
>>> midPoint mailing list
>>> midPoint at lists.evolveum.com
>>> https://urldefense.com/v3/__https://lists.evolveum.com/mailman/listinf
>>> o/midpoint__;!!DZ3fjg!4FmunPgtH3lNRHTdz604Ya4KL4bNJB5bWok58lwWmLH1-TEX
>>> Ekq4wsqLnjFeBCmLqZFAQ57dFVQGLmiTxON4DVHRo_98wBfEIYNK5Q$
>> 
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: <https://urldefense.com/v3/__https://lists.evolveum.com/pipermail/midpoint/attachments/20240205/041b83ee/attachment.htm__;!!DZ3fjg!4FmunPgtH3lNRHTdz604Ya4KL4bNJB5bWok58lwWmLH1-TEXEkq4wsqLnjFeBCmLqZFAQ57dFVQGLmiTxON4DVHRo_98wBfWYrapUA$ >
>> 
>> ------------------------------
>> 
>> Subject: Digest Footer
>> 
>> _______________________________________________
>> midPoint mailing list
>> midPoint at lists.evolveum.com
>> https://urldefense.com/v3/__https://lists.evolveum.com/mailman/listinfo/midpoint__;!!DZ3fjg!4FmunPgtH3lNRHTdz604Ya4KL4bNJB5bWok58lwWmLH1-TEXEkq4wsqLnjFeBCmLqZFAQ57dFVQGLmiTxON4DVHRo_98wBfEIYNK5Q$ 
>> 
>> 
>> ------------------------------
>> 
>> End of midPoint Digest, Vol 142, Issue 3
>> ****************************************
>> _______________________________________________
>> midPoint mailing list
>> midPoint at lists.evolveum.com
>> https://lists.evolveum.com/mailman/listinfo/midpoint
> 
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> https://lists.evolveum.com/mailman/listinfo/midpoint

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20240219/3c097ab8/attachment.htm>


More information about the midPoint mailing list