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
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
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)
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,
> 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
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
> 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
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
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
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.
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
> >
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
> 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
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
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.
--
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
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
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
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:
>
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
>
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:
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
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,
> 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
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
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 +
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
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
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,
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
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
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
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:
+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:
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
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
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.
>
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
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
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
--
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
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
> 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
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
> 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
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
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,
> 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
> 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
> 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
50 matches
Mail list logo