Great Stuff!
This matches seamlessly to the  "real" Customer benchmark I did in 2009 (with Caché)
against PostgreSQL and MySQL
Years went by but the principles haven't changed.

  • keep memory consumption low
  • data transfer between memory and "disk" (or what mimics a disk) is the the slowest component of your system (except human user) so keep it as flat as possible

Glad to see that this is still as valid as it was since ever.
After so many years, all new technology tricks didn't change that.

It is still in IPM. OEX seems to have lost it.  ???
 

zpm:USER>search global-dump-sql
registry https://pm.community.intersystems.com:
global-dump-sql 1.0.2
zpm:USER>install global-dump-sql
 
[USER|global-dump-sql]  Reload START (C:\InterSystems\IRIS\mgr\.modules\USER\global-dump-sql\1.0.2\)
[USER|global-dump-sql]  Reload SUCCESS
[global-dump-sql]       Module object refreshed.
[USER|global-dump-sql]  Validate START
[USER|global-dump-sql]  Validate SUCCESS
[USER|global-dump-sql]  Compile START
[USER|global-dump-sql]  Compile SUCCESS
[USER|global-dump-sql]  Activate START
[USER|global-dump-sql]  Configure START
[USER|global-dump-sql]  Configure SUCCESS
[USER|global-dump-sql]  Activate SUCCESS
 
Just providing the global name results in a full global dump.
Example:
USER>zn "user"
IRISAPP>d $system.SQL.Shell()
SQL Command Line Shell
... select TOP 5 * from zrcc_G.dump where zrcc_G.Dump('^%SYS','"JOURNAL"')=1
 

Hi all,
All challenges of AOC 2023 are published.
You are invited to publish your solutions before Dec.28th:
I'll clone your repos on early Dec 28th. no late coming.

  • To be clear only ObjectScript is accepted, no embedded Python or other
  • Testing is done with IRIS for Windows (x86-64) 2023.2 (Build 227U)
  • Docker containers are not part of this check.
  • No problem If you don't have all solutions you just rank later 
  • My personal special thanks go to the 4 participants, that helped me to set up the test methods.

Actual ranking by verified completion in ObjectScript
 

  • DCrank  AOCrank Scores  Stars   ok%     ----- Code Parts OK -----       Name
    0       ---     ----    ----    ---     ----*----*----*----*----*       --- DC Members ---
    1       1       6825    50      100     3333333333333333333333333       Kevin An
    2       2       6812    50      100     3333333333333333333333333       maxymczech
    3       3       6697    50      100     3333333333333333333333333       Yuval Golan
    4       13      4646    36      74      3333333331313333--111311-       Oliver Wilms
    5       14      4305    35      70      3333333333313133-1111--1-       Ivo ver eecke
  • UTC 2023-12-25 18:52:18
  • EST 2023-12-25 13:52:18  

If you want to clear all old data you have to use  ..%DeleteExtent(..) that you inherit from %Persistent.

Changing from %Persistent  to %SerialObject is a compiler-related action.
The compiler doesn't take care of your storage.
In this case only the access methods change, but not the underlying storage and its content 

there are command line utilities i Namespace %SYS down from ^DATABASE
%SYS>d ^DATABASE
 
 1) Create a database
 2) Edit a database
 3) List databases
 4) Delete a database
 5) Mount a database
 6) Dismount a database
 7) Compact globals in a database
 8) Show free space for a database
 9) Show details for a database
10) Recreate a database
11) Manage database encryption
12) Return unused space for a database
13) Compact free space in a database
14) Defragment globals in a database
 
Option?

in addition  Class SYS.Database  holds a long list of utility methods 
you have to dig into Class docu

You see now an extended ranking list.
Code Part OK signals the modules that have passed the function test against the Test Sets in OEX
1 => Part1 OK,  2 => Part2 OK, 3 => Part 1+2 are OK, - => nothing OK  the position indicates the day.
ok%  is the percentage of parts verified OK of the 100 parts in totals in the competition.