go to post Robert Cemper · Feb 23, 2022 Why together ? ? ? Who wants that ? ? ? Where ? ? ?A simple MERGE ^archive(....)=^source(....) just doesn't maintain any index.this was my message
go to post Robert Cemper · Feb 22, 2022 You have a lucky design without indices. That makes life with 2 distinct globals easy.The archiving action maintaining the original ID could be achieved by a simpleMERGE from ^source to ^archive. maintenance of indices could be slightlyeffort requiring class methods.
go to post Robert Cemper · Feb 21, 2022 Sorry. it just turned out that sharing across namespaces doesn't (yet?) work with embedded Python
go to post Robert Cemper · Feb 21, 2022 I just verified that neither class nor routing mapping works with embedded Python.Not even the elementary trick to have it as a %Z* class in %SYS.This applies also to 2022.1 preview. The BUG is logged at WRC.I share your disappointment.
go to post Robert Cemper · Feb 20, 2022 Hello Peter,Like you, I have an > 40-year history with MUMPS dating back before DSM-11.Not every implementation of the global storage was effíent (no names, no finger-pointing)What you see today in IRIS is the result of continuous effort on improving performanceand storage efficiency.In past, the size of a physical disk was the limit. Today with virtual storage systems thelimit is set only by the file system used. This is a fact that InterSystems lives with since "ever". A word concerning global efficiency:Multiple experiences over years showed me that the space consumption with IRIS and its predecessor Caché was always significantly lower than with the various source DBsI was invited to migrate. With Sybase, it was rather more impressive than with others.The immediate consequence of this high efficient storage technology is the gain in speed.Also with the most modern technologies, there is still a transfer between persistent storage (aka. disk) and memory. And the less you have to transfer the faster you are. Finally, welcome to this society!Robert
go to post Robert Cemper · Feb 20, 2022 But be aware to have the method SetNamespace available also the new target namespace to be able to return !So you either map the class to Namespace %All, or name the class %ZEmbedded.Utils or similar, to make it available across all namespaces.
go to post Robert Cemper · Feb 19, 2022 Thank you for raising and extending the subject againthat got not much echo from my article Storage Considerations on large data sets published in Sep.2021
go to post Robert Cemper · Feb 18, 2022 I couldn't identify in my examples any $LB(),$LI(), $LV,$LL() like feature.- In the mixed PY/ISOS example I just called from PY a method in ISOS [ = InterSystems ObjectScrtipt]- in the PY pure I kept the binary string as found and reloaded it the same way.
go to post Robert Cemper · Feb 18, 2022 AS you push on "nothing in memory" which is not related at all to INDIRECTION I have streamlined your code to not leave any traces in memory. ClassMethod PPG() { set TABLES(0)="EVEN",TABLES(1)="ODD" kill ^||Arturo for i=1:1:100 set ^||Arturo(TABLES((i#2)),i)=i set evenTotal=0 set i="" if $D(^||Arturo("EVEN",0)) for set i=$ORDER(^(i),1,val) QUIT:i="" if $i(evenTotal,val) zwrite evenTotal kill ^||Arturo QUIT} OLÉ
go to post Robert Cemper · Feb 17, 2022 just do it in a classMethod in Objectscriptdon't forget to return to your original namespace to find where you came from
go to post Robert Cemper · Feb 17, 2022 Which evidently proves that you have to chase a network performance problem ( !! REMOTELY !!)and not a problem in the code of the API.
go to post Robert Cemper · Feb 17, 2022 Next variant ClassMethod Indirection() [ PublicList = (ODD, EVEN) ] or using %EVEN,%ODD instead of EVEN, ODD
go to post Robert Cemper · Feb 17, 2022 to allow Indirection in your case or eXecute to work, you have to set ClassMethod Indirection() [ ProcedureBlock=0 ] see: https://docs.intersystems.com/iris20212/csp/docbook/DocBook.UI.Page.cls?KEY=ROBJ_method_procedureblockand my related article: https://community.intersystems.com/post/summary-local-variable-scoping
go to post Robert Cemper · Feb 14, 2022 It should be sufficient to add this to init:script set user=##class(Security.Users).%OpenId("unknownuser") do user.Roles.Insert("%All") do user.%Save() ;;; just for comfort set smp=##class(Security.Applications).%OpenId("/csp/sys") set smp.AutheEnabled=64 do smp.%Save() set
go to post Robert Cemper · Feb 9, 2022 FOR loop does not accept a quit with argument. ERROR: CodeGolf.CHK.cls(7) :QUIT with arguments not allowed here c but return is 5 chars more