Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Tony Ringsmuth
David, Tony wrote: > Currently, 4D is trying to get around range-checking type overhead within Preemptive > processes by doing their checking at compile time. David Adams wrote: Where did you hear this? I didn't see any mention of this in the docs you mentioned and don't

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Tim Nevels
On Nov 1, 2016, at 7:23 PM, David Adams wrote: > Who knew? Great trick. A good alternative (but more complicated) is to use > a memory-based message queue and send all of the log data to a single > process that has the file open. This is a perfect use of CALL WORKER. Yes, I agree. > I gave up

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Neil Dennis
So if you are going to write it twice (once for preemptive and once for not) separate the methods and you are there…. Method1 $Find_i:=find in array(<>aPerson_ID;$PersonID) $TheName:=<>aPerson_Name{$Find_i} Method1Preemptive Query([person];[Person]id=$PersonID)

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread David Adams
Memory-based caches are great and it is frustrating to have to resort to building them scratch. How much speed difference will it make? I have no idea, and it depends on what you're caching, where you're caching & how much it costs to load the cache. I was recently working with PHP (on its own,

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread John DeSoi
> On Nov 1, 2016, at 2:03 PM, Tony Ringsmuth wrote: > > QUESTION #1 > In light of the current restrictions, how likely are you to leverage > the use of Preemptive Processing in the near future? > NOT LIKELY / SOMEWHAT LIKELY / VERY LIKELY Not likely because a

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Tony Ringsmuth
Neil > If it works for preemptive then it should work in all cases. Two cases means > double maintenance, and double testing Currently, I have a lot of places that get cached values out of IP variables that I load on startup. I want my cooperative process to be able to continue to take

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Neil Dennis
> If($IsPreemptive) > $GetSomeValue:=vMyValue > ELSE > $GetSomeValue:=<>MyIpVar > END IF So if you have to visit the code to make it work both ways why not just simply use $GetSomeValue:=vMyValue If it works for preemptive then it should work in all cases. Two cases means double

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Tony Ringsmuth
OK: I can see that my idea of Interprocess variables getting a separate instance in Preemptive processes is not popular with several of you. Consider then, a middle ground: Currently, 4D is trying to get around range-checking type overhead within Preemptive processes by doing their checking at

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread Cannon Smith
I’m just guessing, but if you think about how that line of code would look in assembly wouldn’t it be a few different instructions? Moving a value into a memory, incrementing it, and moving it back? If so, that give the opportunity for it to be time sliced by the OS. -- Cannon Smith Synergy

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread Tim Nevels
On Nov 1, 2016, at 6:00 PM, Douglas von Roeder wrote: > On Tue, Nov 1, 2016 at 2:57 PM, David Adams wrote: > >> For what it's worth, I was working at 4D in Cupertino when 4D Server >> shipped. We had big arguments in the US office about IP communications and >> semaphores.

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread Douglas von Roeder
De nada. ;-) -- Douglas von Roeder 949-336-2902 On Tue, Nov 1, 2016 at 4:28 PM, David Adams wrote: > On Wed, Nov 2, 2016 at 10:12 AM, Douglas von Roeder > wrote: > > > > Insofar a not Semaphoring shared resources, that'll work fine until it > >

Re: Survey on 4D¹s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Tim Nevels
On Nov 1, 2016, at 6:00 PM, Tony Ringsmuth wrote: > Like Add said: >> Now it is your chance to make changes in your Trigger >methods and remove/replace any found thread-unsafe code. > > Here’s your chance to go and re-program ALL of your triggers. I did a quick survey of all the triggers in

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread David Adams
> Unless the name of the variable means what it says. :-7 D'oh! Well, in my code I always want to leave the youngster's guessing ;-) On Wed, Nov 2, 2016 at 9:43 AM, Tom Dillon wrote: > David Adams wrote: > > >Say you have an IP variable like > ><>TAB and you assign in

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread David Adams
On Wed, Nov 2, 2016 at 10:00 AM, Tim Nevels wrote: On Nov 1, 2016, at 4:49 PM, David Adams wrote: > There's a note about docrefs being shared in cooperative threads and not > shared in preemptive threads. I'm not at all clear what that means. I would > expect you would pass

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread Douglas von Roeder
Jeffrey: That was how I took it. There was a NUG thread on atomicity some time back. Perhaps there's some insight in that thread? Insofar a not Semaphoring shared resources, that'll work fine until it doesn't. Unfortunately, when it doesn't, tracking it could be, essentially, impossible. --

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Tim Nevels
On Nov 1, 2016, at 4:49 PM, David Adams wrote: > There's a note about docrefs being shared in cooperative threads and not > shared in preemptive threads. I'm not at all clear what that means. I would > expect you would pass paths anyway...isn't that what everyone does now > anyway? I think this

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Cannon Smith
I’m sorry, Tony, but I’m not a fan of the idea of IP variables behaving differently in different contexts. I haven’t actually used preemptive processes yet, but I’ve been studying them as I plan to use them in a few different contexts in a new project I’m on once I get to that point. I’ve been

Re: Survey on 4D¹s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Tony Ringsmuth
Like Add said: > Now it is your chance to make changes in your Trigger methods and remove/replace any found thread-unsafe code. Here’s your chance to go and re-program ALL of your triggers. Tony On 11/1/16, 4:29 PM, "4D_Tech on behalf of Add Komoncharoensiri" <4d_tech-boun...@lists.4d.com

Re: Survey on 4D¹s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Tim Nevels
On Nov 1, 2016, at 4:49 PM, Add Komoncharoensiri wrote: > Using a pointer is not a problem. 4D does not restrict you from using a > pointer with the command that calls Trigger. Additional explanation can be > found here: >

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread Douglas von Roeder
On Tue, Nov 1, 2016 at 2:57 PM, David Adams wrote: > For what it's worth, I was working at 4D in Cupertino when 4D Server > shipped. We had big arguments in the US office about IP communications and > semaphores. (Most people really don't love semaphores.) Semaphores turned >

Re: Survey on 4D¹s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread David Adams
On Wed, Nov 2, 2016 at 8:29 AM, Add Komoncharoensiri < akomoncharoens...@4d.com> wrote: > Hope this clear up some confusion. Yup. Thanks for the clear, complete, and timely answer. ** 4D Internet Users Group (4D iNUG) FAQ:

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread David Adams
I'm not going to answer either of Tony's questions as I don't feel qualified to say one way or another. I'll admit that I've paid almost no attention to the preemptive/cooperative subject in upcoming versions of 4D. Can those of you who have tried it all out and gotten some experience provide a

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Peter Bozek
On Tue, Nov 1, 2016 at 10:22 PM, Tony Ringsmuth wrote: > > Are you saying that will not be allowed and thus the StandardTriggerCode > method cannot run preemptively? > Yes, If you have ANY trigger in the whole database that references ANY > restricted item (IP vars, Plugins,

RE: Progressive slow

2016-11-01 Thread Dennis, Neil
> After the restart of the 4D Application all work normally, after some time > expecially the query operations are more slow of when the 4D application are > restarted. In this case I might suggest a smaller cache, it could be that your machine is running out of free memory and paging you

Re: Survey on 4D¹s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Add Komoncharoensiri
Hi Tim, Using a pointer is not a problem. 4D does not restrict you from using a pointer with the command that calls Trigger. Additional explanation can be found here: ftp://ftp-public.4d.fr/Documents/Products_Documentation/LastVersions/Line_1 5R5/VIntl/4D_Upgrade_v15_R5.pdf ­ page 45. When

RE: Progressive slow

2016-11-01 Thread stardata.info
After the restart of the 4D Application all work normally, after some time expecially the query operations are more slow of when the 4D application are restarted. Thanks Ferdinando Il 01/11/2016 22:17, 4d_tech-requ...@lists.4d.com ha scritto: Message: 4 Date: Tue, 1 Nov 2016 21:06:29 +

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Tony Ringsmuth
Tim, Here’s the section where you can read up on SAVE RECORD and pointers: http://livedoc.4d.com/4D-Language-Reference-16/Processes/Preemptive-4D-processes.300-3036340.en.html Read the section under triggers. > Are you saying that will not be allowed and thus the StandardTriggerCode > method

Re: Progressive slow

2016-11-01 Thread Charles Miller
On Tue, Nov 1, 2016 at 4:49 PM, stardata.info wrote: > 4 GB > Great your cache should not be set bigger than 1024. once again how big is data file(file size), number of records? Cache should *NOT* be set to adaptive Is there any other stuff running on your server

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Peter Bozek
On Tue, Nov 1, 2016 at 9:36 PM, Tony Ringsmuth wrote: > As 4D is implementing it; your are correct. > But the goal should be to Provide a path for > - The best possible performance gain > - With the least required amount of re-development > I think they may be succeeding on #1,

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Tony Ringsmuth
Jody, Regarding #3: Pointers in SAVE RECORD… This ½ of my biggest frustration: The other half is that if a method contains any restricted item, then the whole method cannot be used. These are what kill it for me. This “All or nothing” of a method (and any sub-dependency) is the killer. It

RE: Progressive slow

2016-11-01 Thread Dennis, Neil
With a 4GB machine you shouldn't use more than 2GB cache memory for 4D server. You can consider a bigger/faster computer to help processing speed... often this is the easiest to increase performance. If you watch the server processes when there is a slowdown or when it starts to get slower, is

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Tony Ringsmuth
Dennis, You didn’t answer question #1. >Dennis said: Before getting too cavalier on requesting a change in the >implementation... make sure you understand why the restrictions are in place. Tony’s response: yes: I understand the reason for the restriction; and I agree, the speed loss for

Re: Progressive slow

2016-11-01 Thread stardata.info
4 GB Il 01/11/2016 20:00, 4d_tech-requ...@lists.4d.com ha scritto: Message: 9 Date: Tue, 1 Nov 2016 12:45:38 -0400 From: Charles Miller To: 4D iNug Technical<4d_tech@lists.4d.com> Subject: Re: Progressive slow Message-ID:

Re: How do you zip a directory using 4D?

2016-11-01 Thread Balinder Walia
+1 to 7-zip plugin and component by Miyako. On Tuesday, 1 November 2016, Steve Makohin wrote: > Thank you to all who responded to this. > > -Steve > > > ** > 4D Internet Users Group (4D iNUG) > FAQ:

RE: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Dennis, Neil
Before getting too cavalier on requesting a change in the implementation... make sure you understand why the restrictions are in place. In most places the implementation would be too slow to offset the benefit (e.g. putting semaphores around inter-process variables), in some cases to protect

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Spencer Hinsdale
Hi Tony, I love your preemptive enthusiasm! But I also want you to update to watchOS 3 so you have the Breath App at hand. IMO 4D has always, always done a terrific job of migrating us, be it to unicode, or out of subtables, or to that new OS. Do you remember Windows NT? Microsoft totally

Re: Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Kenneth Geiger
Hi Tony, Question 1: Not Likely Question 2: Likely Regards, Ken Geiger On Tue, Nov 1, 2016 at 1:03 PM, Tony Ringsmuth wrote: > Greetings > > I’m on a quest to persuade 4D to adopt a more useful implementation of > preemptive processing than they are currently adopting. >

Survey on 4D’s strategy for implementing Preemptive Processing / worker processes

2016-11-01 Thread Tony Ringsmuth
Greetings I’m on a quest to persuade 4D to adopt a more useful implementation of preemptive processing than they are currently adopting. Please answer questions #1 and #2 below if you can. CURRENT RESTRICTIONS to using preemptive processes (up through the upcoming release of v16): 1: Any

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread Bernd Fröhlich
Kirk Brooks wrote: > True, but this illustrates that without multi-threading it's still a > sequential processor. Only one process at a time can be executing. Yes, BUT... The thing about semaphores is, that they are atomic commands (the command is guranteed to execute without any other process

Re: Progressive slow

2016-11-01 Thread Charles Miller
On Tue, Nov 1, 2016 at 11:22 AM, stardata.info wrote: > > I understand your suggestion, but in task manager the ram used is only > 1,06 Gb. > > Thanks > /Ferdinando/ ok but how much is on machine regards chuck --

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread G-Mail
Just to add my 2 cents worth to this. When one writes a large system with many things happening (potentially) at the same time one needs to code extremely defensively. This means protecting against all kinds of potential problems that have the opportunity to arise. As well, trapping if they do

RE: Progressive slow

2016-11-01 Thread stardata.info
Hi Lutz, I understand your suggestion, but in task manager the ram used is only 1,06 Gb. Thanks /Ferdinando/ Il 01/11/2016 15:43, 4d_tech-requ...@lists.4d.com ha scritto: Message: 9 Date: Tue, 1 Nov 2016 08:07:20 + From: "Epperlein, Lutz (agendo)" To: 4D iNug

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread Arnaud de Montard
> Le 1 nov. 2016 à 06:43, Kirk Brooks a écrit : > > David, > Great points - but, respectfully, does it ever actually happen? Can you > write an example db that does this? In v5 we had the multiprocess for the 1st time. To manage my processes, I used a "process

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread Kirk Brooks
Richard, That's essentially the type of variance I added to the test by changing the delay periods. And it's not the question I was looking at. I may not have stated it clearly enough to begin with: I wanted to know if competing processes would create collisions attempting to write the same

Re: Allow CR in text field

2016-11-01 Thread Arnaud de Montard
> Le 31 oct. 2016 à 16:52, Bill Weale a écrit : > > [...] > It’s 2016 and we’re now all unicode; is there any reason to use a text filter > at all if I’m not particularly concerned about controlling input? Has anyone > else seen different behaviors between using no

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread Richard Wright
Yes, I’ve seen it happen. 4D language is multi-threaded already - it’s cooperative instead of pre-emptive prior to v16. A method looping through an interprocess array can easily be paused while another method updates that same array. Richard

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread Kirk Brooks
David, On Mon, Oct 31, 2016 at 11:34 PM, David Adams wrote: > > Can you write an example db that does this? > Probably, I've seen it done in the past. Would I now? No, I wouldn't bother > trying. Unless 4D *guarantees* the non-standard behavior you're hoping to > exploit,

RE: Progressive slow

2016-11-01 Thread Epperlein, Lutz (agendo)
> Db is 4.716.737 Kb > > Ram 4GB This explains all. What see is typical behavior of an app running on a machine with low memory. In the beginning all is well, but after a time the physical RAM is full and swapping begins. > " How much assigned to 4D?" Where i can see this? Don't worry

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread David Adams
> ​What would be the difference between adding and deleting an element? ​ Because you might be writing to an element that doesn't exist. Some versions/settings, 4D crashes. Other times, it doesn't crash but your array isn't right. If you've got a group of arrays working together to implement some

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread David Adams
> David, Great points - but, respectfully, does it ever actually happen? Unless 4D prevents it from happening, then it can happen. So, unless 4D groups multiple lines of code together in a block, you can get different processes interleaving in overall execution order. Last I heard, can split