General

Profile

Alexandru Lungu's activity

From 02/14/2025 to 03/15/2025

03/13/2025

11:59 AM Base Language Bug #9060: Cache oftenly used values that are immutable
Artur, can you do a safe cut-out of the current changes you have to merge to trunk by EOW? Other matters can be defer... Alexandru Lungu
07:46 AM Base Language Bug #9060: Cache oftenly used values that are immutable
Extra ideas:
* @CompareOps.equals@ can use a == short-circuit now, as there is a higher chance to have the same BDT...
Alexandru Lungu
06:07 AM Base Language Bug #9060: Cache oftenly used values that are immutable
> Creating 1 mil datetimetz instances takes, on average, 6594 milliseconds, using the dynamic cache, that has a hit r... Alexandru Lungu

03/12/2025

11:16 AM Database Bug #9683: CompoundQuery is doing extra hydration attempts
Review of 9683a:
There is still a place:...
Alexandru Lungu

03/10/2025

10:12 AM Database Bug #9755: Reimplement AdaptiveQuery dynamic-mode using a LookAheadResults delegate
I did some prototyping, but I must admit that having it as a @Query@ is much too complex comparing to having it as a ... Alexandru Lungu
07:15 AM Database Bug #9755: Reimplement AdaptiveQuery dynamic-mode using a LookAheadResults delegate
h4. Problem
A pattern was detected in a customer application that uses a browsed query, which is automatically scr...
Alexandru Lungu
06:51 AM Database Bug #9755 (New): Reimplement AdaptiveQuery dynamic-mode using a LookAheadResults delegate
Alexandru Lungu
07:39 AM Base Language Bug #9060: Cache oftenly used values that are immutable
Artur Școlnic wrote:
> This is the most efficient implementation I found:
I am not sure if this is more performan...
Alexandru Lungu
05:29 AM Base Language Bug #9060: Cache oftenly used values that are immutable
Artur Școlnic wrote:
> Clearly a LRU cache is not a good idea for caching the BDT constants, but what about a Most F...
Alexandru Lungu

03/05/2025

03:22 AM Base Language Bug #9060: Cache oftenly used values that are immutable
Artur Școlnic wrote:
> Immutable objects can't be changed at all, unmodifiable objects can't be change externally, b...
Alexandru Lungu

03/04/2025

08:58 AM Base Language Bug #9060: Cache oftenly used values that are immutable
On today meeting on #9060:
* Extend caching to more BDT when possible. Consider using dynamic caching for this. Re...
Alexandru Lungu
06:55 AM Conversion Tools Support #9703: explore and document the existing OE IDE feature set
Florin, please avoid using snapshots from OE IDEs. Please refer to the version textually. Alexandru Lungu
05:19 AM Database Bug #9633: bulk delete for permanent tables
> The concern is only for buffers in the same session. I plan to add an API to post an event, intercepted via 'stateC... Alexandru Lungu
04:44 AM Database Bug #9633: bulk delete for permanent tables
Review of 9656a:
> added Persistence.invalidateCache, as a central API to force cache invalidation. This allows sp...
Alexandru Lungu
03:16 AM Database Bug #9633: bulk delete for permanent tables
Starting to look into the changes ... Alexandru Lungu
04:03 AM Database Feature #6720: lazy hydration
> However, I think we have the JDBC to create the old buffer directly, at the moment the trigger is called instead of... Alexandru Lungu

03/03/2025

04:30 AM Database Bug #9717: Investigate the possibility to replace UNIQUE INDEX with NON-UNIQUE INDEX and UNIQUE C...
Incipient research shows that @UNIQUE CONSTRAINT@ is mostly a sugar syntax for an UNIQUE INDEX. The point is that @UN... Alexandru Lungu
04:06 AM Database Bug #9701 (Merge Pending): RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO e...
Please merge 9701a to trunk now. Alexandru Lungu

02/28/2025

08:38 AM Database Bug #9717: Investigate the possibility to replace UNIQUE INDEX with NON-UNIQUE INDEX and UNIQUE C...
The legacy UNIQUE INDEX transforms into UNIQUE INDEX in SQL. Recently, we discovered that queries over UNIQUE INDEXes... Alexandru Lungu
08:31 AM Database Bug #9717 (New): Investigate the possibility to replace UNIQUE INDEX with NON-UNIQUE INDEX and UN...
Alexandru Lungu
05:57 AM Database Bug #9683: CompoundQuery is doing extra hydration attempts
9683a seems to be on the right track.
At this is in an early stage, I may say that it has quite a high cognitive c...
Alexandru Lungu

02/27/2025

07:33 AM Database Bug #9669 (Test): Optimize RecordMeta.applyInitialValues
Alexandru Lungu
06:24 AM Database Bug #9669 (Merge Pending): Optimize RecordMeta.applyInitialValues
Please merge 9669a to trunk after 9466b. Alexandru Lungu
05:40 AM Database Bug #9669 (Internal Test): Optimize RecordMeta.applyInitialValues
I am OK with the changes:
* please fix @if (data[i] != null) {@ brace positioning.
This can go into internal test...
Alexandru Lungu
06:22 AM Database Feature #9305 (WIP): Replace begins with interval based conditional
For reference, I misunderstood the documentation. By "C locale", it doesn't mean "libc", but actual C locale (aka POS... Alexandru Lungu
05:02 AM Database Feature #9305 (Review): Replace begins with interval based conditional
As a resolution for #9305, I updated [[p2j:4GL_Database_Access_Performance_Tips]]. Please review. Alexandru Lungu
04:37 AM Database Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
Andrei, please do other remaining testing until Ovidiu provides a final Review (unit tests or/and ChUi regression tes... Alexandru Lungu

02/26/2025

09:12 AM Database Bug #9669: Optimize RecordMeta.applyInitialValues
> Please post the test-cases you built for testing 9669a.
As part of 9669a review:
* There is a misalignment of...
Alexandru Lungu
05:58 AM Database Bug #9669 (WIP): Optimize RecordMeta.applyInitialValues
> Considering the nature of the changes, I went ahead with the testing, FwdTests and 2 large customer application uni... Alexandru Lungu
07:52 AM Database Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
> So, I think I will abandon the idea to override equals, and, simply create another method which will do this checki... Alexandru Lungu
06:21 AM Database Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
> I actually found just one usage of Record.equals in LocalSyncher.preSynch: if (foreignDMO null || foreignDMO.equals... Alexandru Lungu
04:57 AM Database Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
> At the moment, I am thinking of overriding the equals in BaseRecord and make it check the elements in data array. I... Alexandru Lungu
05:54 AM Database Bug #9667 (Test): Bottleneck in BaseRecord.getActiveUpdateDiffs
Alexandru Lungu
04:58 AM Database Bug #9667 (Merge Pending): Bottleneck in BaseRecord.getActiveUpdateDiffs
Please merge 9667a to trunk after 9615a. Alexandru Lungu

02/25/2025

08:56 AM TRPL Feature #1747: evaluate Scala for suitability as the basis for TRPL as a DSL
This crossed my way a couple a weeks ago and now I am feeling guilty that I did not make a post in time. But maybe it... Alexandru Lungu
08:41 AM Database Feature #6720: lazy hydration
> Are we adding implicit accesses (in our runtime) to fields that are not otherwise accessed explicitly in the 4GL co... Alexandru Lungu
06:48 AM Database Feature #6720: lazy hydration
Andrei, I just found another usage of @snapshot@. A so called @armCurrentChanged@ that can be triggered if you run a ... Alexandru Lungu
03:27 AM Database Feature #6720: lazy hydration
> In the last find next query it has as placeholder an unhydrated record. I think this could be prone to errors if th... Alexandru Lungu
07:04 AM Database Bug #9702: BaseRecord.getDirtyIndices is slow
PS: @BaseRecord.getUnvalidatedIndices@ seems to have a better performance, but for my tests this is called only 54k t... Alexandru Lungu
06:44 AM Database Bug #9702: BaseRecord.getDirtyIndices is slow
In a profiled scenario (#9692), there are 104k calls to @BaseRecord.getDirtyIndices@. The scenario is changing extent... Alexandru Lungu
06:20 AM Database Bug #9702 (New): BaseRecord.getDirtyIndices is slow
Alexandru Lungu
06:04 AM Database Bug #9701: RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality check
In a profiled scenario (#9692), there are 3.5k @RecordBuffer.updateCurrentChanged@ calls. The DMOs used by this have ... Alexandru Lungu
05:50 AM Database Bug #9701 (Test): RecordBuffer.updateCurrentChanged can be optimized to use a fast DMO equality c...
Alexandru Lungu
03:43 AM Database Bug #9667 (Internal Test): Bottleneck in BaseRecord.getActiveUpdateDiffs
The changes look functionally right. There are still some formatting issues:
* @validation.validateMaybeFlush();@ is...
Alexandru Lungu
03:34 AM Database Bug #9669: Optimize RecordMeta.applyInitialValues
> My goal was to store the initial non null values, in case this bitset could be used in the future, but storing null... Alexandru Lungu

02/24/2025

10:07 AM Database Bug #9670 (Merge Pending): Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
Please merge to trunk now. Alexandru Lungu
09:17 AM Database Bug #9670 (Internal Test): Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
I am OK with the changes. Please do some slim testing to ensure there are no obvious issues. Alexandru Lungu
08:54 AM Database Bug #9670: Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
The latest rev. is still 15715. Alexandru Lungu
09:58 AM Database Feature #9305: Replace begins with interval based conditional
> I assume from these mixed results that you are testing this on an analyzed table with a lot of data. The PostgreSQL... Alexandru Lungu
09:25 AM Database Bug #9667 (WIP): Bottleneck in BaseRecord.getActiveUpdateDiffs
Review of 9667a:
* From @BaseRecord.getActiveUpdateDiffs@...
Alexandru Lungu
09:15 AM Database Bug #9669 (WIP): Optimize RecordMeta.applyInitialValues
Review of 9669a:
* @flip@ operation seems redundant. Instead of @or@-ing with @initialDataBitSet@ and then flip, p...
Alexandru Lungu
08:52 AM Runtime Infrastructure Support #5568: implement application-specific TERMINFO database overrides
FYI: #6433 was just merged to trunk. Alexandru Lungu

02/21/2025

10:48 AM Database Feature #9305: Replace begins with interval based conditional
> Don't we need this to be (upper(rtrim(tt_1_1__im0_.f1)) in order to give the database a chance to match an index? A... Alexandru Lungu
08:49 AM Database Feature #9305: Replace begins with interval based conditional
The conversion of a simple @find first tt where tt.f1 begins tst@ yields:... Alexandru Lungu
10:35 AM Database Bug #9683 (WIP): CompoundQuery is doing extra hydration attempts
Regarding 9683a:
* for @collectRowData@, if the query is non-scrolling and off-end, the code still returns @new Obje...
Alexandru Lungu
06:15 AM Database Bug #9683: CompoundQuery is doing extra hydration attempts
In a profiled scenario, when running a CompoundQuery, there are 63k calls to @Results.getRow@:
* 21.3k come from @Pr...
Alexandru Lungu
05:54 AM Database Bug #9683 (Review): CompoundQuery is doing extra hydration attempts
Alexandru Lungu
10:04 AM Database Feature #6720: lazy hydration
Andrei, having 9030b in trunk will be ideal, but I don't have enough focus and time to continue work onto that :/
P...
Alexandru Lungu
04:09 AM Base Language Bug #9060: Cache oftenly used values that are immutable
> Yes, we can experiment in second phase; but on collision will require an equals.
I checked H2 code right now and...
Alexandru Lungu
04:05 AM Base Language Bug #9060: Cache oftenly used values that are immutable
> My point with LRU is to do some experiments, what happens if we allow more strings (not interned).
What about th...
Alexandru Lungu
04:01 AM Base Language Bug #4766: fix CHR and ASC
> asc({somechar1.i} + {somechar2.i})
Can we go the extra mile and have @asc("{somechar1.i}x{somechar2.i}")@? Does ...
Alexandru Lungu

02/20/2025

10:06 AM Database Feature #6720: lazy hydration
> Well, I made getLoadedFields return a BitSet with loaded fields. This makes integration in markIncomplete seamless.... Alexandru Lungu
09:22 AM Database Feature #6720: lazy hydration
> getLoadedFields
Isn't this equivalent to the already existing @getProps@?
> In BaseRecord.getUnhydratedFields...
Alexandru Lungu
04:03 AM Database Feature #6720: lazy hydration
I think @readFields@ should be re-thinked a bit, because it has quite a weird integration with @liveProps@ - it may b... Alexandru Lungu
09:47 AM Database Bug #9670: Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
I am ok with the changes. One small change request:
* In @TempTableBuilder@, the @boolean[] res = new boolean[1];@ i...
Alexandru Lungu

02/19/2025

10:21 AM Database Bug #9670: Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
This task is straight-forward. Most API from UnclosablePreparedStatement are using a lambda function to time measure ... Alexandru Lungu
10:20 AM Database Bug #9670 (Test): Rewrite UnclosablePreparedStatement JMXs to honor FwdServerJMX.JMX_DEBUG
Alexandru Lungu
10:18 AM Database Bug #9669: Optimize RecordMeta.applyInitialValues
In a profiled scenario (#9652), there are 3.6k calls to RecordMeta.applyInitialValues:
* all are generated by @Rec...
Alexandru Lungu
10:13 AM Database Bug #9669 (Test): Optimize RecordMeta.applyInitialValues
Alexandru Lungu
05:27 AM Database Bug #9667: Bottleneck in BaseRecord.getActiveUpdateDiffs
In a profiled scenario (#9652), there are 46k calls to @BaseRecord.getActiveUpdateDiffs@:
* 26.8k caused by DMO sett...
Alexandru Lungu
05:09 AM Database Bug #9667 (Test): Bottleneck in BaseRecord.getActiveUpdateDiffs
Alexandru Lungu
04:57 AM Base Language Bug #9060: Cache oftenly used values that are immutable
I updated my list in #9060-32 (now is complete). Alexandru Lungu

02/18/2025

09:23 AM Base Language Bug #9060: Cache oftenly used values that are immutable
Part of my work in #9652 was to analyze performance. To provide some insights into how the BDT instantiation works th... Alexandru Lungu
08:31 AM Database Feature #6720: lazy hydration
FYI, @ownResultSet@ and @unownResultSet@ are things specific to #6720 effort - feel free to adjust their usage to fit... Alexandru Lungu

02/17/2025

04:31 AM Database Feature #6720: lazy hydration
Please note that the unit tests are starting with an empty database, so all persistent data that is used is actually ... Alexandru Lungu
04:18 AM Database Bug #9317 (Test): FIRST/LAST clauses can avoid generating sub-selects if the WHERE clause matches...
Ioana, feel free to also merge 9317a to 7156c and 7156d. Alexandru Lungu

02/14/2025

05:18 AM Database Bug #9317 (Merge Pending): FIRST/LAST clauses can avoid generating sub-selects if the WHERE claus...
Please merge 9317a to trunk now. Alexandru Lungu
04:49 AM Database Feature #6720: lazy hydration
Good statistic! Quick question: are the numbers cumulative for temp and persistent tables. If so, can we make a disti... Alexandru Lungu
03:43 AM Base Language Support #9446 (Test): compatibility test PUT-DOUBLE
Branch 9446a was merged into the trunk as revision 15705 and archived. Alexandru Lungu
 

Also available in: Atom