Project

General

Profile

Activity

From 07/07/2020 to 08/05/2020

08/05/2020

12:50 PM Feature #3814: more schema metadata
Greg Shah wrote:
> Can you finish #3814-185 items 1-3 by Friday?
Yes, I think that it possible. If not, I will fini...
Igor Skornyakov
12:47 PM Feature #3814: more schema metadata
Can you finish #3814-185 items 1-3 by Friday?
> It is difficult to estimate the time which is required for impleme...
Greg Shah
12:42 PM Feature #3814: more schema metadata
Status summary update (see #3814-135)
# Adding of the mandatory meta-tables is enforced. Working now on handling som...
Igor Skornyakov
10:02 AM Support #4701: try to improve H2 transaction commit performance
The preliminary results reported by Apache JMeter are not very promising. However, note that the used tests are pure ... Adrian Lungu

08/03/2020

08:00 AM Support #4701: try to improve H2 transaction commit performance
Eric Faulhaber wrote:
> Adrian, as I understand it, your JMeter test environment can simulate heavy multi-user use, ...
Adrian Lungu

08/01/2020

05:54 PM Support #4701: try to improve H2 transaction commit performance
Adrian, as I understand it, your JMeter test environment can simulate heavy multi-user use, correct?
I would like ...
Eric Faulhaber

07/31/2020

11:31 AM Feature #4011: database/persistence layer performance improvements
Ovidiu, OK, I see that these are emitted at the @Table@ annotation for the DMO interface. Before that , we had code ... Constantin Asofiei
11:08 AM Feature #4011: database/persistence layer performance improvements
I tried to keep as much compatibility as I was aware when I added the new annotations and even added new attributes. ... Ovidiu Maxiniuc
10:52 AM Feature #4011: database/persistence layer performance improvements
Ovidiu Maxiniuc wrote:
> Have you encountered this necessity in customer code?
Yes. The previous support needs to ...
Constantin Asofiei
10:30 AM Feature #4011: database/persistence layer performance improvements
Constantin,
Have you encountered this necessity in customer code?
The problem might be more complicated than ad...
Ovidiu Maxiniuc
06:21 AM Feature #4011: database/persistence layer performance improvements
Ovidiu Maxiniuc wrote:
> We are talking about two different types of 'attributes' of the temp-tables:
> * structur...
Constantin Asofiei

07/30/2020

03:50 PM Feature #4011: database/persistence layer performance improvements
Constantin,
I replaced the last conditional from the code you posted in note-791 with...
Ovidiu Maxiniuc
01:32 PM Feature #4011: database/persistence layer performance improvements
Ovidiu Maxiniuc wrote:
> The problem with @BufferImpl.fill@ is not only in the code from 791 but in previous lines, ...
Eric Faulhaber
10:20 AM Feature #4011: database/persistence layer performance improvements
The problem with @BufferImpl.fill@ is not only in the code from 791 but in prevous lines, too.
# use of @dereference...
Ovidiu Maxiniuc

07/29/2020

05:19 PM Bug #4825: OutputTableHandleCopier dynamically defines destination temp-table
Constantin Asofiei wrote:
> Something else we could do is to force the DMO interface to be the one from the source t...
Eric Faulhaber
04:19 PM Bug #4825: OutputTableHandleCopier dynamically defines destination temp-table
Something else we could do is to force the DMO interface to be the one from the source temp-table (to avoid building ... Constantin Asofiei
02:36 PM Bug #4825: OutputTableHandleCopier dynamically defines destination temp-table
Eric, I understand your POV, but at the caller's side we have a @handle@ parameter, right? In this case, we need to c... Constantin Asofiei
02:24 PM Bug #4825: OutputTableHandleCopier dynamically defines destination temp-table
As I was debugging an API-based regression test, I noticed we end up quite often in this code in @OutputTableHandleCo... Eric Faulhaber
01:55 PM Bug #4825 (New): OutputTableHandleCopier dynamically defines destination temp-table
Eric Faulhaber
01:25 PM Feature #4011: database/persistence layer performance improvements
Ovidiu, see this test:... Constantin Asofiei
01:14 PM Feature #4011: database/persistence layer performance improvements
The validation has changed a bit. I need more input on this. What exactly is wrong with MERGE and REPLACE fill modes? Ovidiu Maxiniuc
01:08 PM Feature #4011: database/persistence layer performance improvements
This code in @BufferImpl.fill@:... Constantin Asofiei

07/28/2020

01:05 PM Feature #4055: optimize temp-table output parameter copying
@loose-copy-mode@ sounds like a case 4 in which the index mapping for the source/target pair is not calculated by fie... Greg Shah
12:58 PM Feature #4055: optimize temp-table output parameter copying
Greg Shah wrote:
> > There are the DATASET-related cases, for FILL and such - I haven't looked at how these can be i...
Constantin Asofiei
12:42 PM Feature #4055: optimize temp-table output parameter copying
> There are the DATASET-related cases, for FILL and such - I haven't looked at how these can be improved.
Do the D...
Greg Shah
11:52 AM Feature #4055: optimize temp-table output parameter copying
Greg Shah wrote:
> In regard to case 3, I know it is not possible with table parameters of methods, so I wonder if i...
Constantin Asofiei

07/27/2020

05:54 PM Feature #4055: optimize temp-table output parameter copying
Some thoughts about table copying. I know of at least 3 different copy scenarios:
# source and target tables are ...
Greg Shah
09:21 AM Support #4701: try to improve H2 transaction commit performance
I uploaded @fwd-h2-1.4.200-20200727.jar@ to @devsrv01:/tmp/@, which includes the patch mentioned in #4701-38. Adrian Lungu
09:14 AM Support #4701: try to improve H2 transaction commit performance
I found out that the transactional keyword was exploiting a vulnerability of constraints inside create table statemen... Adrian Lungu

07/25/2020

07:44 AM Support #4701: try to improve H2 transaction commit performance
Moved the @Timeout trying to lock table "SYS"@ topic from #4753 here.
# The exception can appear with different st...
Adrian Lungu

07/24/2020

01:50 PM Feature #4022: upgrade to a newer PostgreSQL release
Also, please update the FWD docs to make it more clear where we might put it by default. Greg Shah
01:22 PM Feature #4022: upgrade to a newer PostgreSQL release
Stanislav Lomany wrote:
> "Installation of PL/Java Base Support" documentation states that this file should be put _...
Constantin Asofiei
01:19 PM Feature #4022: upgrade to a newer PostgreSQL release
"Installation of PL/Java Base Support" documentation states that this file should be put _somewhere_ in a directory r... Stanislav Lomany
01:07 PM Feature #4022: upgrade to a newer PostgreSQL release
Stanislav Lomany wrote:
> The only question I have regarding installation is about this code from the customer's @bu...
Constantin Asofiei
01:06 PM Feature #4022: upgrade to a newer PostgreSQL release
The only question I have regarding installation is about this code from the customer's @build_db.xml@:... Stanislav Lomany
08:29 PM Feature #4022: upgrade to a newer PostgreSQL release
I've compared times for postgres 12.3 vs 9.5 and they're absolutely the same (in average). I've tested times for:
# ...
Stanislav Lomany

07/23/2020

01:52 PM Bug #4760 (Closed): new keywords added in H2 1.4.200
Eric Faulhaber
01:51 PM Bug #4760: new keywords added in H2 1.4.200
Eric Faulhaber wrote:
> Just looked over the changes and they seem fine. Is @_rowid_@ really a reserved keyword for ...
Constantin Asofiei
01:49 PM Bug #4760: new keywords added in H2 1.4.200
Just looked over the changes and they seem fine. Is @_rowid_@ really a reserved keyword for H2? Seems an odd one.
...
Eric Faulhaber
08:12 PM Feature #4022: upgrade to a newer PostgreSQL release
> Which version of PostgreSQL are you using?
12.3
> Were you able to leverage the pre-built PL/Java binaries?
I ...
Stanislav Lomany

07/22/2020

05:20 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Eric Faulhaber wrote:
> As I think about the addition of the multiplex ID to the L1 key, it occurs to me that we h...
Eric Faulhaber
05:19 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
As I think about the addition of the multiplex ID to the L1 key, it occurs to me that we have a potential memory leak... Eric Faulhaber
04:35 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Code review 4011b/11588:
Looks good. The @buffer.isTemporary()@ check can be eliminated in the @FFC.Key@ c'tor, si...
Eric Faulhaber
04:22 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
The new L1 key implemented in r11588. Please update. Ovidiu Maxiniuc
03:09 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
I think it makes sense to encapsulate the several behaviors of the FFC that are required to be different between temp... Eric Faulhaber
02:55 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Code review 4011b/11586:
Please see #4796-8, specifically the points about @updateLock@ and about leaking locks. T...
Eric Faulhaber
02:20 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Sorry, you are right. I will prepare a patch for this.
Ovidiu Maxiniuc
02:16 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Ovidiu Maxiniuc wrote:
> Actually no.
> The temp cache for tables-tables are context local. See @FastFindCache.getI...
Constantin Asofiei
02:14 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Actually no.
The cache objects for tables-tables are context local. See @FastFindCache.getInstance(boolean)@. Only t...
Ovidiu Maxiniuc
02:03 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Ovidiu, the fact that you use a @dmoUid@ is not OK for temp-tables. You need to include the multiplex, too.
A @de...
Constantin Asofiei
03:55 PM Feature #4022: upgrade to a newer PostgreSQL release
Which version of PostgreSQL are you using?
Were you able to leverage the pre-built PL/Java binaries?
Any issues...
Eric Faulhaber
03:40 PM Feature #4022: upgrade to a newer PostgreSQL release
Import of the customer's data is running. Stanislav Lomany
12:48 PM Feature #4022: upgrade to a newer PostgreSQL release
What is the status with v12.x? Eric Faulhaber
03:19 AM Feature #4011: database/persistence layer performance improvements
Rev 11584 resolves all but the 2f and 3f parts of the test case in #4011-633. Eric Faulhaber

07/21/2020

06:46 PM Feature #4022: upgrade to a newer PostgreSQL release
If 13 is beta, don't use it. Use the latest stable released build. Greg Shah
06:24 PM Feature #4022: upgrade to a newer PostgreSQL release
I'm not able to build the latest pljava 1.5.5 with postgresql 13 beta 2. There're compilation errors caused by incomp... Stanislav Lomany
05:55 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
My first instinct was to pull the argument resolution forward from @executeImpl@ to @execute@, but that is a lot of r... Eric Faulhaber
03:14 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
I found a new issue with FFC.
When we add a new result for the cache, use use the substitution array as part of th...
Ovidiu Maxiniuc
02:37 AM Bug #4796: locking regression in RAQ introduced with the FFC
Eric Faulhaber wrote:
> I had to make one change ...
This was committed as rev 11580.
Eric Faulhaber
02:13 AM Bug #4796: locking regression in RAQ introduced with the FFC
Code review 4011b/11579:
I had to make one change to get the @RecordLockContext@ directly from @RecordBuffer@, rat...
Eric Faulhaber

07/20/2020

05:15 PM Bug #4796: locking regression in RAQ introduced with the FFC
I committed revision 11579. I am unable to test at this moment with customer application. Ovidiu Maxiniuc
03:13 PM Bug #4796: locking regression in RAQ introduced with the FFC
It is unfortunate that the @RecordIdentifier@ used in the FF cache and session cache is not the same as can be used f... Eric Faulhaber
03:02 PM Bug #4796: locking regression in RAQ introduced with the FFC
Eric Faulhaber wrote:
> Do you see any holes in this approach?
No. In fact this is even simpler and straightforwa...
Ovidiu Maxiniuc
02:50 PM Bug #4796 (WIP): locking regression in RAQ introduced with the FFC
Eric Faulhaber
02:50 PM Bug #4796: locking regression in RAQ introduced with the FFC
Eric Faulhaber wrote:
> As I think more about this, we may need to use the cache result only for NO-LOCK requests,...
Eric Faulhaber
02:26 PM Bug #4796: locking regression in RAQ introduced with the FFC
Ovidiu Maxiniuc wrote:
> I copied the area which handles the locking, but I am trying to avoid code duplication u...
Eric Faulhaber
01:34 PM Bug #4796: locking regression in RAQ introduced with the FFC
h3. Initial issue:
When we have a FF cache hit, we do not honor the record lock request of the @FIND@. So, a requ...
Ovidiu Maxiniuc
01:28 PM Bug #4796 (WIP): locking regression in RAQ introduced with the FFC
Ovidiu Maxiniuc
03:00 PM Bug #4797: review Persistence.load, as called by RAQ.executeImpl
I think this method is not quite right in 4011b. It will load the record requested and get the lock type, but the @fo... Eric Faulhaber
02:57 PM Bug #4797 (New): review Persistence.load, as called by RAQ.executeImpl
Eric Faulhaber

07/19/2020

07:05 AM Feature #4011: database/persistence layer performance improvements
I committed rev 11575, which defers storing buffers whose scopes are opened in the @BufferManager.openBuffers@ list, ... Eric Faulhaber

07/17/2020

06:37 PM Support #4702: write temp-table performance test cases
I've added section how to run performance testcases from the new testcases project: https://proj.goldencode.com/proje... Stanislav Lomany
10:28 AM Support #4702: write temp-table performance test cases
The H2 performance testcases have been committed into the new testcases project as rev 668. They have been removed fr... Stanislav Lomany
04:42 PM Feature #4022: upgrade to a newer PostgreSQL release
At this point there is now a PostgreSQL 13.0. I don't think we should waste time on the intermediate versions. Greg Shah
04:22 PM Feature #4022: upgrade to a newer PostgreSQL release
Just a note that the last VM I created used PL/java 1.5.5 and PostgreSQL 10. Roger Borrello
04:16 PM Feature #4022 (WIP): upgrade to a newer PostgreSQL release
Eric Faulhaber

07/16/2020

04:23 PM Feature #4011: database/persistence layer performance improvements
I have committed 4011b/11564, which skips the index lookup in @RAQ.initialize@ if the table being queried has no lega... Eric Faulhaber
04:08 PM Feature #4011: database/persistence layer performance improvements
It seems to be that the message is misleading. If the record fails a unique index validation, that line is in fact un... Ovidiu Maxiniuc
03:49 PM Feature #4011: database/persistence layer performance improvements
Ovidiu, based on this comment in @Persister.update@:... Eric Faulhaber

07/15/2020

07:49 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Done. Committed as revision 4011b / 11561. Ovidiu Maxiniuc
07:43 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Looks good. Please merge if you're still there :-) Eric Faulhaber
07:30 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Eric Faulhaber wrote:
> I'm concerned synchronizing on the cache instance might be too coarse for an active system, ...
Ovidiu Maxiniuc
06:32 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Ovidiu Maxiniuc wrote:
> Eric,
> I committed r11563. It contains the last two issues: 3-level cache and synchroniza...
Eric Faulhaber
05:26 PM Feature #4033 (WIP): avoid query for FIND unique when the current record in the buffer would matc...
Eric,
I committed r11563. It contains the last two issues: 3-level cache and synchronization. I must admit I did not...
Ovidiu Maxiniuc
04:04 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
It is a bug in @SavepointManager.registerBlockHooks@. We should be differentiating between full and sub-transaction, ... Eric Faulhaber
03:55 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Eric Faulhaber wrote:
> I think if you already have the cache invalidation logic in @SavepointManager@, we should be...
Ovidiu Maxiniuc
03:34 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
@SavepointManager@ registers for the same master transaction rollback hook that is leading to this call, so it should... Eric Faulhaber
03:21 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Eric Faulhaber wrote:
> From where is @Session.rollback@ called in this case?...
Ovidiu Maxiniuc
03:17 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
From where is @Session.rollback@ called in this case? Eric Faulhaber
03:10 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Eric Faulhaber wrote:
> For the invalidation on UNDO, please see @SavepointManager$Block.rollback(Session)@.
In t...
Ovidiu Maxiniuc
10:51 AM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Greg Shah wrote:
> Now is the time to get this right. The 4GL deals with things at an index level and we should str...
Ovidiu Maxiniuc
10:31 AM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Eric Faulhaber wrote:
> > * I had a thought or two on dirty database and whether those operation. As long as it do n...
Ovidiu Maxiniuc
06:23 AM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
> I think what we need to do is, just before the loop which rolls back the elements of the @changed@ set, collect the... Greg Shah
11:11 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
What is your plan regarding thread safety for the shared form of the cache? Eric Faulhaber
11:10 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
For the invalidation on UNDO, please see @SavepointManager$Block.rollback(Session)@.
I think what we need to do is...
Eric Faulhaber
11:02 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Eric Faulhaber wrote:
> Everything else looks good, though we are still missing synchronization and invalidation o...
Eric Faulhaber
10:49 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Code review 4011c/11561:
In @RAQ.initialize@, it seems we no longer need to make the lookup of the index informati...
Eric Faulhaber
10:16 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Ovidiu Maxiniuc wrote:
> Eric,
>
> I adjusted the code as you suggested. The @findNext@/@findPrevious@ disappeare...
Eric Faulhaber
07:03 PM Feature #3814: more schema metadata
Greg Shah wrote:
> If it is just for analysis for this task, it is fine. I just want to be clear that we should not...
Igor Skornyakov
06:58 PM Feature #3814: more schema metadata
If it is just for analysis for this task, it is fine. I just want to be clear that we should not expect to do an imp... Greg Shah
06:09 PM Feature #3814: more schema metadata
Greg,
DMO annotations keeps the properties which are defined in the @.df@ file. They all are already added to the DM...
Igor Skornyakov
05:51 PM Feature #3814: more schema metadata
We don't want to import this data. Why spend time on this when we want the DMO annotations to hold everything needed... Greg Shah
05:32 PM Feature #3814: more schema metadata
The problems has multiple reasons.
1. The table dump from the Data Administrator skips some fields for the reason I ...
Igor Skornyakov
01:14 PM Feature #4055 (WIP): optimize temp-table output parameter copying
The changes are in 4011b rev 11559 Please review. Constantin Asofiei
06:05 AM Feature #4011: database/persistence layer performance improvements
Eric Faulhaber wrote:
> Constantin Asofiei wrote:
> > Eric Faulhaber wrote:
> > > Why not create an array which ma...
Constantin Asofiei

07/14/2020

07:32 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Eric,
I adjusted the code as you suggested. The @findNext@/@findPrevious@ disappeared by themselves. By extracting...
Ovidiu Maxiniuc
05:47 AM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Ovidiu Maxiniuc wrote:
> I have just committed r11557 of 4011c.
> Changes:
> * I introduced a numeric identifier f...
Eric Faulhaber
05:39 PM Bug #4760 (WIP): new keywords added in H2 1.4.200
I've added in 4011b rev 11556 all the keywords not accepted by H2, to @P2JH2Dialect@. NameConverter is not required ... Constantin Asofiei
04:30 PM Bug #4760: new keywords added in H2 1.4.200
Ovidiu Maxiniuc wrote:
> Constantin,
>
> I am not sure, but that these special non-reserved keywords which can be...
Constantin Asofiei
03:49 PM Bug #4760: new keywords added in H2 1.4.200
Constantin,
I am not sure, but that these special non-reserved keywords which can be used a field/table names migh...
Ovidiu Maxiniuc
02:48 PM Bug #4760: new keywords added in H2 1.4.200
In @org.h2.util.ParserUtil@, there are lots of constants defining various tokens. Not all can be used in a column na... Constantin Asofiei
02:42 PM Bug #4760 (Closed): new keywords added in H2 1.4.200
Constantin Asofiei
05:32 PM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> Eric Faulhaber wrote:
> > Why not create an array which maps the @PropertyMeta@ objects...
Eric Faulhaber
05:24 PM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> Constantin Asofiei wrote:
> > > Does the destination record need to have a copy of the ...
Eric Faulhaber
04:36 PM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> > Does the destination record need to have a copy of the source DMO's current meta-state...
Constantin Asofiei
04:35 PM Feature #4011: database/persistence layer performance improvements
Eric Faulhaber wrote:
> Wait, I just looked at this more closely. Is there any functional reason we need to convert ...
Constantin Asofiei
04:33 PM Feature #4011: database/persistence layer performance improvements
Eric Faulhaber wrote:
> A question which remains in my mind w.r.t. the copy operations is about LOBs. Will this work...
Constantin Asofiei
03:49 PM Feature #4011: database/persistence layer performance improvements
A question which remains in my mind w.r.t. the copy operations is about LOBs. Will this work for LOBs in their curren... Eric Faulhaber
03:36 PM Feature #4011: database/persistence layer performance improvements
Wait, I just looked at this more closely. Is there any functional reason we need to convert to/from BDT instances? If... Eric Faulhaber
03:22 PM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> As I mentioned above, I had to change @Record.getData()@ to expose the @data[]@ array ...
Eric Faulhaber
03:19 PM Feature #4011: database/persistence layer performance improvements
Eric Faulhaber wrote:
> Constantin Asofiei wrote:
>
> > For copying the after-table record to before-table, I can...
Constantin Asofiei
03:01 PM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> For copying the after-table record to before-table, I can use something like this, as ...
Eric Faulhaber
02:38 PM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> Eric Faulhaber wrote:
> > Since this temp-table copy is a common operation, I would l...
Eric Faulhaber
12:45 PM Feature #4011: database/persistence layer performance improvements
Eric Faulhaber wrote:
> So, @copyDMO@ needs review anyway, as it may be broken, but that is outside the scope of you...
Constantin Asofiei
02:23 PM Feature #4055: optimize temp-table output parameter copying
Constantin Asofiei wrote:
> At this point, what is left is:
> # improve @RecordBuffer.copyDMO@ (see #4011-773)
I n...
Constantin Asofiei
12:47 PM Feature #4055: optimize temp-table output parameter copying
At this point, what is left is:
# improve @RecordBuffer.copyDMO@ (see #4011-773)
# refactor @TemporaryBuffer.copyAl...
Constantin Asofiei
01:45 PM Support #4701: try to improve H2 transaction commit performance
Adrian, have you found any other potential areas of improvement in H2, based on any of the testing/profiling you have... Eric Faulhaber
01:43 PM Support #4701: try to improve H2 transaction commit performance
Constantin Asofiei wrote:
> Is there a place in the H2 source-code where all keywords are defined?
I am not fa...
Eric Faulhaber
09:42 AM Support #4701: try to improve H2 transaction commit performance
Eric/Adrian/Stanislav: H2 v 1.4.200 introduced new keywords, for example @array@. This statement works with 1.4.197 ... Constantin Asofiei
08:01 AM Support #4701: try to improve H2 transaction commit performance
After Java profiling the #4701-17 testcase, I got the following results for 1.4.200 patched:
!profiling_mv_vs_page...
Adrian Lungu
06:50 AM Support #4701: try to improve H2 transaction commit performance
Below there is a comparison between 1.4.197 patched using PageStore, 1.4.200 patched using PageStore and 1.4.200 usin... Adrian Lungu

07/13/2020

06:40 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
I have just committed r11557 of 4011c.
Changes:
* I introduced a numeric identifier for indexes. In fact, the were ...
Ovidiu Maxiniuc
04:46 AM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
OK, let's use @RecordIdentifier@. We may need to intern the strings, but this has a performance cost of its own. In t... Eric Faulhaber
04:24 AM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Eric Faulhaber wrote:
> Why is the @FastFindCache$Result@ class necessary? I am not sure what the @L1Key@ and @L2Key...
Ovidiu Maxiniuc
03:27 AM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
I reviewed the implementation as of 4011c/11555. In addition to my previous answers in #4033-31, which among other th... Eric Faulhaber
05:55 PM Feature #4055: optimize temp-table output parameter copying
Eric Faulhaber wrote:
> Since we currently use an internal counter to assign the next primary key for temp-tables (o...
Constantin Asofiei
05:53 PM Feature #4055: optimize temp-table output parameter copying
Since we currently use an internal counter to assign the next primary key for temp-tables (or the reclaimed keys), ho... Eric Faulhaber
05:49 PM Feature #4055: optimize temp-table output parameter copying
Eric Faulhaber wrote:
> The INSERT INTO ... SELECT FROM ... syntax documented for H2 suggests that the SELECT portio...
Constantin Asofiei
05:43 PM Feature #4055: optimize temp-table output parameter copying
Constantin Asofiei wrote:
> I need them to be incremental so I can make some assumptions;...
OK, that's what I wa...
Eric Faulhaber
05:26 PM Feature #4055: optimize temp-table output parameter copying
Eric Faulhaber wrote:
> I don't know of a way to force the SELECT to use a particular index with H2. That is up to t...
Constantin Asofiei
05:11 PM Feature #4055: optimize temp-table output parameter copying
Constantin Asofiei wrote:
> Eric Faulhaber wrote:
> > I don't follow. Isn't this what we want? Each @_multiplex@ va...
Eric Faulhaber
05:03 PM Feature #4055: optimize temp-table output parameter copying
Given an sql index name, how can I get its component fields, using the new RecordMeta/DmoMeta/etc support?
Or bett...
Constantin Asofiei
04:29 PM Feature #4055: optimize temp-table output parameter copying
Well, I remember now. I had the same epiphany when I implemented @write-xml@ and compare the xml output with informat... Ovidiu Maxiniuc
04:22 PM Feature #4055: optimize temp-table output parameter copying
Ovidiu Maxiniuc wrote:
> Constantin Asofiei wrote:
> > Ovidiu, please remind me - what's the default index for the ...
Constantin Asofiei
03:28 PM Feature #4055: optimize temp-table output parameter copying
Eric Faulhaber wrote:
> I don't follow. Isn't this what we want? Each @_multiplex@ value represents a distinct temp-...
Constantin Asofiei
03:24 PM Feature #4055: optimize temp-table output parameter copying
Constantin Asofiei wrote:
> H2 will use the @_multiplex@ index and after that sort the records by @recid@.
>
> ...
Eric Faulhaber
03:16 PM Feature #4055: optimize temp-table output parameter copying
Constantin Asofiei wrote:
> Ovidiu, please remind me - what's the default index for the before-table? I recall somet...
Ovidiu Maxiniuc
02:59 PM Feature #4055: optimize temp-table output parameter copying
Eric Faulhaber wrote:
> Constantin Asofiei wrote:
> > New question: why don't we have a @multiplex, recid@ default ...
Constantin Asofiei
02:41 PM Feature #4055: optimize temp-table output parameter copying
Constantin Asofiei wrote:
> New question: why don't we have a @multiplex, recid@ default index for temp-tables?
W...
Eric Faulhaber
02:31 PM Feature #4055: optimize temp-table output parameter copying
New question: why don't we have a @multiplex, recid@ default index for temp-tables? Constantin Asofiei
02:25 PM Feature #4055: optimize temp-table output parameter copying
There's an issue with using @nextVal@ in a SELECT. Looks like the sequence values are retrieved FIRST (I don't know ... Constantin Asofiei
01:34 PM Feature #4055: optimize temp-table output parameter copying
Ovidiu, please remind me - what's the default index for the before-table? I recall something like @row-state@ being p... Constantin Asofiei
11:07 AM Feature #4055: optimize temp-table output parameter copying
Constantin Asofiei wrote:
> Argh, I haven't realized before that the sequences are global - and if we define it as @...
Constantin Asofiei
10:14 AM Feature #4055: optimize temp-table output parameter copying
Argh, I haven't realized before that the sequences are global - and if we define it as @seq_tt1@, any user working on... Constantin Asofiei
04:24 PM Feature #4011: database/persistence layer performance improvements
Ovidiu Maxiniuc wrote:
> Unfortunately, we cannot use @dst.copy(src)@ as the order of fields is not the same, even i...
Constantin Asofiei
04:22 PM Feature #4011: database/persistence layer performance improvements
Unfortunately, we cannot use @dst.copy(src)@ as the order of fields is not the same, even if the set of the fields ar... Ovidiu Maxiniuc
04:17 PM Feature #4011: database/persistence layer performance improvements
Ovidiu Maxiniuc wrote:
> Constantin,
>
> Please verify whether
> [...]
> and
> [...]
>
> are compatible in...
Constantin Asofiei
02:17 PM Feature #4011: database/persistence layer performance improvements
Greg Shah wrote:
> I wonder if we are missing out on an opportunity caused by the 4GL behavior here. It is my under...
Eric Faulhaber
02:01 PM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> Eric, I've fixed @RecordBuffer.copyDMO@ (including extent fields), but I need some input...
Eric Faulhaber
01:41 PM Feature #4011: database/persistence layer performance improvements
Eric Faulhaber wrote:
> Eugenie Lyzenko wrote:
> > The @4011b@ rev @11555@ runtime does not with previously convert...
Eugenie Lyzenko
01:16 PM Feature #4011: database/persistence layer performance improvements
Eugenie Lyzenko wrote:
> The @4011b@ rev @11555@ runtime does not with previously converted application/DB.
>
> D...
Eric Faulhaber
12:36 PM Feature #4011: database/persistence layer performance improvements
The @4011b@ rev @11555@ runtime does not with previously converted application/DB.
Do I have to reconvert/re-impor...
Eugenie Lyzenko
11:50 AM Feature #4011: database/persistence layer performance improvements
Constantin,
Please verify whether...
Ovidiu Maxiniuc
11:43 AM Feature #4011: database/persistence layer performance improvements
I wonder if we are missing out on an opportunity caused by the 4GL behavior here. It is my understanding that the co... Greg Shah
11:07 AM Feature #4011: database/persistence layer performance improvements
Eric, I've fixed @RecordBuffer.copyDMO@ (including extent fields), but I need some input with how you would like thin... Constantin Asofiei
09:14 AM Feature #4011: database/persistence layer performance improvements
Ovidiu Maxiniuc wrote:
> Actually, no.
> IIRC, that method will work with different DMO definitions: the method wor...
Constantin Asofiei
08:26 AM Feature #4011: database/persistence layer performance improvements
Actually, no.
IIRC, that method will work with different DMO definitions: the method worked passing two temp-tables ...
Ovidiu Maxiniuc
07:39 AM Feature #4011: database/persistence layer performance improvements
Ovidiu, one more thing please: @TemporaryBuffer.copyDMO@ no longer works in 4011b, as there are no declared fields in... Constantin Asofiei
07:32 AM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> Ovidiu, a call like @ScrollableResults.get(0, TempRecord.class)@ is not valid in FWD, ri...
Ovidiu Maxiniuc
07:22 AM Feature #4011: database/persistence layer performance improvements
Ovidiu, a call like @ScrollableResults.get(0, TempRecord.class)@ is not valid in FWD, right? We should use @Scrollabl... Constantin Asofiei
02:29 PM Feature #3814: more schema metadata
Igor Skornyakov wrote:
> I'm trying to create an H2 database containing all metatables from a large customer databas...
Igor Skornyakov
02:02 PM Support #4702: write temp-table performance test cases
In the chart it should be "197", not "192". Stanislav Lomany
02:00 PM Support #4702: write temp-table performance test cases
According to test results, MVStore (mv_store=true) is significantly slower than PageStore (mv_store=false). The red s... Stanislav Lomany
04:08 AM Support #4702: write temp-table performance test cases
Yes, I'd like to see a comparison of your tests with:
* 1.4.197 (patched) PageStore
* 1.4.200 (patched) PageStore...
Eric Faulhaber
03:58 AM Support #4702: write temp-table performance test cases
> BTW, did you do any testing with the MVStore engine? In my previous experience, FWD was slower with MVStore, but I ... Stanislav Lomany
03:49 AM Support #4702: write temp-table performance test cases
> Do they claim this?
They do: https://webcache.googleusercontent.com/search?q=cache:OZQ8T12NI00J:https://github.c...
Stanislav Lomany
03:44 AM Support #4702: write temp-table performance test cases
Stanislav Lomany wrote:
> PageStore engine is always single-threaded
Do they claim this? That doesn't seem righ...
Eric Faulhaber
03:38 AM Support #4702: write temp-table performance test cases
> The removal of @MULTI_THREADED@ (from H2, not 4011b) is a little concerning. Do you have any more information on wh... Stanislav Lomany
02:24 AM Support #4702: write temp-table performance test cases
Eric Faulhaber wrote:
> Please go ahead and commit these changes to 4011b, since we are moving to v1.4.200 now for...
Eric Faulhaber
11:21 AM Support #4701: try to improve H2 transaction commit performance
> Adrian, I should have confirmed this at the beginning, but was your performance comparison work done with the MVSto... Adrian Lungu
04:32 AM Support #4701: try to improve H2 transaction commit performance
Constantin Asofiei wrote:
> Adrian Lungu wrote:
> > By this, I mean that the synchronization in @Session.cleanTempT...
Constantin Asofiei
03:45 AM Support #4701: try to improve H2 transaction commit performance
Adrian, I should have confirmed this at the beginning, but was your performance comparison work done with the MVStore... Eric Faulhaber
03:20 AM Support #4701: try to improve H2 transaction commit performance
Adrian Lungu wrote:
> By this, I mean that the synchronization in @Session.cleanTempTables@ is done way more rare (t...
Constantin Asofiei
02:28 AM Support #4701: try to improve H2 transaction commit performance
Eric Faulhaber wrote:
> Adrian, we will start using this version of H2 (i.e., 1.4.200, patched) as the default with ...
Eric Faulhaber
02:26 AM Support #4701: try to improve H2 transaction commit performance
We have upgraded to H2 v1.4.200 (patched), starting with 4011b/11555. Eric Faulhaber

07/11/2020

09:09 AM Support #4701: try to improve H2 transaction commit performance
I attached the @src/main/org/h2/engine/Session.java@ file.
> # A lot of users are accessing the database. @org.h2...
Adrian Lungu
09:51 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Ovidiu Maxiniuc wrote:
> The @Session@ works with its 'proprietary' @CacheKey@ key. I switched to it (making it pu...
Eric Faulhaber
08:48 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Eric Faulhaber wrote:
> Is there a practical problem caused by the temp-table IDs not being re-usable, or is the pro...
Ovidiu Maxiniuc

07/10/2020

06:15 PM Support #4702: write temp-table performance test cases
Stanislav Lomany wrote:
> For the case I'm attaching changes I made to 4011b in order to run H2 200 which are:
>
...
Eric Faulhaber
05:18 PM Support #4702: write temp-table performance test cases
For the case I'm attaching changes I made to 4011b in order to run H2 200 which are:
# @Constants.getFullVersion()@ ...
Stanislav Lomany
05:13 PM Bug #4752: Possible broken sort clause with word indexes
While working on other issues related to WORD indexes I realized something that seems like needing further investigat... Ovidiu Maxiniuc
05:05 PM Bug #4752 (New): Possible broken sort clause with word indexes
Ovidiu Maxiniuc
03:55 PM Feature #3814: more schema metadata
I'm trying to create an H2 database containing all metatables from a large customer database for a detailed analysis.... Igor Skornyakov
03:03 PM Support #4701: try to improve H2 transaction commit performance
Adrian Lungu wrote:
> # A lot of local temp-tables are used concurrently.
This is something in use by customer appl...
Constantin Asofiei
12:49 PM Support #4701: try to improve H2 transaction commit performance
Adrian, we will start using this version of H2 (i.e., 1.4.200, patched) as the default with 4011b. Please update the ... Eric Faulhaber
09:49 AM Support #4701: try to improve H2 transaction commit performance
The @org.h2.Session.cleanTempTables@ direction was a good starting point. H2 was sequentially checking all local temp... Adrian Lungu
02:56 PM Feature #4011: database/persistence layer performance improvements
Eric Faulhaber wrote:
> Are there really no other cases where the buffer scope can be smaller than the external proc...
Constantin Asofiei
02:16 PM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> Here I considered that @activeScopeDepth@ is the scope depth where the buffer was open...
Eric Faulhaber
01:38 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
I left the topic of synchronization pretty open. Could you please tell me what your thoughts are there? Of course, th... Eric Faulhaber
12:43 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Ovidiu Maxiniuc wrote:
> More details from 4011c/11554:
> * I added a table/DMO unique ID. This (the Level1key) is ...
Eric Faulhaber

07/09/2020

06:45 PM Support #4702: write temp-table performance test cases
Testing results: each test is faster on H2 200 (fwd-h2-1.4.200-20200709) than on H2 197, in average 13% faster.
Test...
Stanislav Lomany
04:44 PM Support #4702: write temp-table performance test cases
I made some changes to FWD to make H2 200 run. Starting testing. Stanislav Lomany
02:03 PM Support #4702: write temp-table performance test cases
Stanislav, I will try to reproduce the exception and see if it related to @fwd-h2-1.4.200-20200709.jar@.
I remember...
Adrian Lungu
01:08 PM Support #4702: write temp-table performance test cases
Results so far:
# Looks like "UPDATE using a query" test goes to infinite cycle in 4011b (H2 197) if the number of r...
Stanislav Lomany
05:16 PM Feature #4011: database/persistence layer performance improvements
Greg Shah wrote:
> Constantin: I have the following questions about @RecordBuffer.worldScope@.
>
> * Is the idea ...
Constantin Asofiei
02:16 PM Feature #4011: database/persistence layer performance improvements
Eric, something else to consider. In @Persister.insert@, we use @1 + sum(distinct field's extent)@ INSERT statements... Constantin Asofiei
09:52 AM Feature #4011: database/persistence layer performance improvements
I've generated several reports and exports at the @Guests@ tab. The only meaningful hotspot is:... Igor Skornyakov
09:15 AM Feature #4011: database/persistence layer performance improvements
The profiling of the Hotel GUI app (switching tabs) did not reveal any hot spots. The only thing which is worth to me... Igor Skornyakov
01:46 AM Feature #4011: database/persistence layer performance improvements
After patching directory.xml what I have for freshly imported DB and server start up:... Eugenie Lyzenko
09:26 PM Feature #4011: database/persistence layer performance improvements
Constantin: I have the following questions about @RecordBuffer.worldScope@.
* Is the idea that @worldScope == true...
Greg Shah
03:16 PM Feature #4055: optimize temp-table output parameter copying
Constantin Asofiei wrote:
> A small note about the reclaimed keys - for the @INSERT INTO SELECT FROM@ approach to wo...
Eric Faulhaber
03:00 PM Feature #4055: optimize temp-table output parameter copying
A small note about the reclaimed keys - for the @INSERT INTO SELECT FROM@ approach to work, I need consecutive, incre... Constantin Asofiei
01:12 PM Feature #4055: optimize temp-table output parameter copying
Eric Faulhaber wrote:
> What is the exact problem in the @INSERT INTO ... SELECT FROM@ case? Maybe we can disable re...
Constantin Asofiei
12:36 PM Feature #4055: optimize temp-table output parameter copying
Constantin Asofiei wrote:
> Eric, a problem @INSERT INTO ... SELECT FROM@ is the primary key. How important is to u...
Eric Faulhaber
12:20 PM Feature #4055: optimize temp-table output parameter copying
For the PK generation, I'm using sequences (one per each temp-table) like this:
# before the @INSERT INTO ... SELECT...
Constantin Asofiei
03:06 AM Feature #4055: optimize temp-table output parameter copying
Eric, a problem @INSERT INTO ... SELECT FROM@ is the primary key. How important is to use the 'reclaimed keys' featu... Constantin Asofiei
02:44 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
More details from 4011c/11554:
* I added a table/DMO unique ID. This (the Level1key) is the only place used, yet. Th...
Ovidiu Maxiniuc

07/08/2020

04:29 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Please note I have made some updates to #4033-22 to clarify handling of the "no record found" case. Eric Faulhaber
04:05 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Ovidiu wrote (in email):
> I have created the general stubbing for the advanced cache but for the moment I do not ...
Eric Faulhaber
04:00 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
FOR FIRST/LAST already is implemented by @RandomAccessQuery@, so we should get that for free.
FIND CURRENT should ...
Eric Faulhaber
08:07 AM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Can we expand this usage beyond @FIND@?
It seems to me that the 4GL uses the same index-based technique for these ...
Greg Shah
07:28 AM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
I've tested this and modified your test case somewhat to stress the caching in different ways, and this definitely se... Eric Faulhaber
03:20 PM Feature #4055: optimize temp-table output parameter copying
Eric Faulhaber wrote:
> Constantin, I linked this with issue #3958 because it seems we should apply some of the same...
Constantin Asofiei
02:28 PM Feature #4055: optimize temp-table output parameter copying
Constantin, I linked this with issue #3958 because it seems we should apply some of the same ideas to both problems, ... Eric Faulhaber
03:09 PM Feature #4011: database/persistence layer performance improvements
Eric Faulhaber wrote:
> Agreed. Are you working on this, or do you want someone else to pick it up?
The fix was sim...
Constantin Asofiei
02:52 PM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> Eric Faulhaber wrote:
> > Does this patch work?
> >
> > [...]
> Well, my patch just...
Eric Faulhaber
12:01 PM Feature #4011: database/persistence layer performance improvements
Eric Faulhaber wrote:
> Does this patch work?
>
> [...]
Well, my patch just returned the correct 'nextStart' by ...
Constantin Asofiei
08:26 AM Feature #4011: database/persistence layer performance improvements
There is a bug related to validation/flushing. I have a record like this:... Constantin Asofiei
02:39 PM Bug #4057: h2 performance degradation
Stas, when do you think you will have findings, based on the #4702 test cases? Based on the comparison of versions in... Eric Faulhaber
08:57 AM Feature #3814: more schema metadata
Can we ask our customers (or at least some of them) to provide an export (.d files) of the meta-tables from their 4GL... Igor Skornyakov

07/07/2020

07:34 PM Feature #4033: avoid query for FIND unique when the current record in the buffer would match the ...
Eric Faulhaber wrote:
> Ovidiu, please prototype a basic query results cache for use with FIND {FIRST|LAST|unique} q...
Ovidiu Maxiniuc
06:07 PM Feature #4011: database/persistence layer performance improvements
Does this patch work?... Eric Faulhaber
05:49 PM Feature #4011: database/persistence layer performance improvements
Eric Faulhaber wrote:
> What is the layout of the result set you are working with?
There are 3 SELECT being execute...
Constantin Asofiei
05:43 PM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> Eric, my problem is that @props@ for the @MetaField@ DMO has its structure like this:
>...
Eric Faulhaber
05:35 PM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> A side note: for a @FindQuery.canFindImpl@ call, do we really need to load the full reco...
Eric Faulhaber
05:32 PM Feature #4011: database/persistence layer performance improvements
A side note: for a @FindQuery.canFindImpl@ call, do we really need to load the full record in the database? Because t... Constantin Asofiei
05:25 PM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> And if I switch it to @i = i + seriesSize@, then the @i@ will be wrong, but the return v...
Constantin Asofiei
05:21 PM Feature #4011: database/persistence layer performance improvements
Eric, my problem is that @props@ for the @MetaField@ DMO has its structure like this:
# 52 scalar props
# 48 entrie...
Constantin Asofiei
05:14 PM Feature #4011: database/persistence layer performance improvements
Eric Faulhaber wrote:
> Generally speaking, the data should always be laid out as described in the @Loader@ class ...
Eric Faulhaber
05:11 PM Feature #4011: database/persistence layer performance improvements
Before you make any changes at this low level, please explain the error you are seeing, which you are trying to solve. Eric Faulhaber
05:09 PM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> Eric/Ovidiu, someone please document and explain how @Loader.readExtentData@ should work...
Eric Faulhaber
05:03 PM Feature #4011: database/persistence layer performance improvements
Looking at the code, the protection against 'bad data' is not OK. The code should attempt to read exactly 'extent' r... Constantin Asofiei
04:02 PM Feature #4011: database/persistence layer performance improvements
Eric/Ovidiu, someone please document and explain how @Loader.readExtentData@ should work. My change which increments... Constantin Asofiei
03:37 PM Feature #4011: database/persistence layer performance improvements
Constantin Asofiei wrote:
> 4011b contains the fix for #4011-730 and other misc - please review.
The changes seem...
Eric Faulhaber
02:56 PM Feature #4011: database/persistence layer performance improvements
4011b contains the fix for #4011-730 and other misc - please review. Constantin Asofiei
10:44 AM Feature #4011: database/persistence layer performance improvements
There is an issue with the @ProxyAssembler.assembleClass@ code. Here, we want to override all passed methods, and als... Constantin Asofiei
03:31 PM Bug #4703 (Hold): investigate whether performance of TempTableDataSourceProvider can be improved
Eric Faulhaber
11:19 AM Support #4701: try to improve H2 transaction commit performance
I created a test with 1000 temp-tables and the suggested loop. The transaction is in fact committed after each iterat... Adrian Lungu
03:26 AM Feature #3814: more schema metadata
Igor Skornyakov wrote:
> Fixed the issue with the @null@ @ConnectionListener@ found in automated regression testing ...
Igor Skornyakov
 

Also available in: Atom