#idempiere IRC log for Tuesday, 2015-05-19

*** ocurieles has joined #idempiere04:32
*** ocurieles has quit IRC04:37
*** norbertbede has joined #idempiere04:54
*** norbertbede has quit IRC05:15
*** tsvikruha has joined #idempiere05:30
*** norbertbede has joined #idempiere05:48
*** a42niem has joined #idempiere06:08
*** nmicoud has joined #idempiere06:28
*** norbertbede has quit IRC06:33
*** norbertbede has joined #idempiere06:58
*** norbertbede has quit IRC07:29
*** norbertbede has joined #idempiere07:32
*** KermitTheFragger has joined #idempiere07:47
*** ocurieles has joined #idempiere08:09
*** ocurieles has quit IRC08:14
*** is-mw has joined #idempiere08:52
*** norbertbede1 has joined #idempiere09:03
*** norbertbede1 has joined #idempiere09:03
*** norbertbede has quit IRC09:05
*** norbertbede1 has quit IRC09:08
*** norbertbede has joined #idempiere09:08
*** hieplq has joined #idempiere09:14
*** tsvikruha has quit IRC10:30
*** norbertbede has quit IRC10:41
*** norbertbede has joined #idempiere10:43
*** norbertbede has quit IRC11:01
*** norbertbede has joined #idempiere11:26
*** a42niem_ has joined #idempiere11:31
*** is-mw has quit IRC11:35
*** tsvikruha has joined #idempiere11:35
*** norbertbede has quit IRC11:42
*** ocurieles has joined #idempiere11:47
*** ocurieles has quit IRC11:51
*** norbertbede has joined #idempiere11:59
*** druiz has joined #idempiere12:19
*** norbertbede1 has joined #idempiere12:40
*** norbertbede has quit IRC12:43
*** norbertbede has joined #idempiere12:54
*** norbertbede1 has quit IRC12:56
*** ocurieles has joined #idempiere13:12
*** ocurieles has quit IRC13:30
*** CarlosRuiz has joined #idempiere13:58
*** ChanServ sets mode: +o CarlosRuiz13:58
druizHi @CarlosRuiz13:58
CarlosRuizHi druiz14:00
druizWe created this ticket today https://idempiere.atlassian.net/browse/IDEMPIERE-263014:00
druizThe solution in @tbayen 's patch has a good impact in the time. It works in postgres and does not break Oracle functionality14:01
druizWhat do you think abt that?14:02
CarlosRuizchecking ...14:02
*** norbertbede has quit IRC14:03
druizI'm testing it now with and without the asynchronous commit, and checking the time impact with a file with 103222 records14:03
*** norbertbede has joined #idempiere14:03
druizso we can show real data on the performance14:04
*** norbertbede has quit IRC14:06
druiz@CarlosRuiz we're also working on an improvement to show the progress in that process. When it takes too long you don't know what's happening behind, and yesterday once it was not running but we couldn't notice because the current Processing... Please Wait... kept going.14:11
druizShould that go in the same patch or should I create a new one for it?14:12
CarlosRuizdifferent patch14:12
druizIt's the same case as here https://idempiere.atlassian.net/browse/IDEMPIERE-43214:13
druizIs it better to reopne that one?14:13
CarlosRuizwell Eugen was talking there about the old importers14:14
CarlosRuizand it was closed as potential idea - better to open a new one14:14
CarlosRuizabout 263014:14
CarlosRuizI don't think is a good idea to improve performance14:15
CarlosRuizif you're ok with the trade-off mentioned in the postgresql page - then is ok - you can implement it as a plugin I think14:17
*** norbertbede has joined #idempiere14:17
tbayenWe are measuring with a bigger data size. But with our first test it was an improvement of 30%. In my opinion the slow and long-running process is a problem.14:17
CarlosRuiz-->  "at the cost that the most recent transactions may be lost if the database should crash. In many applications this is an acceptable trade-off."14:18
CarlosRuiz-->  "As an example, a bank would certainly not use asynchronous commit for a transaction recording an ATM's dispensing of cash"14:19
CarlosRuiz-->  "But in many scenarios, such as event logging, there is no need for a strong guarantee of this kind"14:19
tbayenI don't see a trade-off. The import is done as single commits anyways - independent of problems in the importer log. So if something does not work or creash you are in trouble anyways. You always need to check if everything finished and be prepared to delete the table again.14:19
tbayenThe importer is far away from being bullet-proof. This new feature does not change that fact.14:20
CarlosRuizit changes that makes postgresql transaction not bullet proof14:20
CarlosRuizwhat I meant about that can be implemented in a plugin is:  I think we must keep core on the safest way14:21
CarlosRuizcos people can use importers to load event logging as described above - but people also can use importer to load POS orders for example14:22
CarlosRuizin the second case the trade-off is ok - but in the second is probably not14:22
tbayenafaiu the danger is if the postgres server crashes. In this case it can happen that the last commits are not recorded. But in case of this crash you do not know how far the importer process was. The data will be committet until one record. I see no difference if there is one more lost or not.14:23
tbayenWhen the Server crashes inside a file of POS Orders noone knows which orders are done and which not. There is no log file in this case.14:24
*** ocurieles has joined #idempiere14:25
tbayenIf we want a guarantee for that case we need to have a single commit for the while file. Perhaps that is the solution: To allow "one single commit" mode with a guarantee and "line by line" mode where it tries to write as good as possible and tries to give a logfile back.14:25
tbayenwhole14:26
CarlosRuiztbayen, I understand your reasoning - is just that I think that reasoning cannot be generalized into core14:26
CarlosRuizI would probably apply it in some cases - but not in all cases14:28
druizWhat about creating a field in the import template to allow the user in which cases to apply it14:28
druizSo it's the user decision to "take the risk" or not14:29
CarlosRuizAFAIR importing a file is an one single big commit14:29
druizIt's several single commits14:29
CarlosRuizand if you use /K it makes commits per unique key ?14:29
CarlosRuizthat's my understanding14:29
CarlosRuizstill not checking code14:30
druizThe trx.commit is inside the for loop. And even before the process ends you can see data in the table you're committing14:31
CarlosRuizI see - every line is a transaction14:38
CarlosRuizunless is master - detail14:39
*** norbertbede has quit IRC14:39
CarlosRuizin which case the master plus its details are a single trx14:39
CarlosRuizmy test here is showing a warning in console on every line "TrxName - Value too long - truncated to length=60"14:40
CarlosRuizannoying14:40
druizWhen do you get that message?14:41
CarlosRuizeclipse consol14:41
CarlosRuizconsole14:41
druizBut do you get that with 2630 patch?14:42
tbayenI makes sense in some cases to have a single trx for the whole file. And it makes sense in other cases to accept to loose some data. We can allow the user to choose between both cases.14:42
CarlosRuizno, without patch14:43
CarlosRuizI think we can trick the trx using the master detail approach14:43
CarlosRuizthat would make the process faster - commiting per line is adding big slowness14:44
CarlosRuizthe issue is that every commit is checked for success to record in the output log - so to "pack" commits in lots it would need a big refactoring14:45
CarlosRuizbut with master detail maybe you can do the trick14:45
tbayenI remember that I had problems with the "single trx" approach and a very long file. There is a trx timeout in Postgres that says that a transaction can not last longer than about one hour. That is an example for the "line by line" mode. That is the default actually. But with most small files the "one single commit" mode looks better.14:45
*** norbertbede has joined #idempiere14:46
tbayenCarlosRuiz, I realize that we need to commit to get a possible error message. Hmmm...14:47
CarlosRuiztbayen, to make a single commit you can create a window for that14:52
CarlosRuizsuppose all your 5.000 records share the same organization14:53
CarlosRuizyou create a window with organization on first tab and your second tab is the table you're importing14:53
CarlosRuizand do a master detail import14:53
tbayenThats a hack. :-)14:55
CarlosRuizI remember we thought about how to manage transactions14:56
CarlosRuizand when made the master/detail as a trx - we thought - ok - there is a possible way here14:56
tbayenIn the files that I used in the past I had errors because of wrong foreign keys and such. But these errors are caught by java code, not in the commit. I think that most human errors are caught there. Perhaps we can accept (in some cases) that we get sql errors for the whole file.14:57
tbayenI think we agree that it is not so easy to decide how to do it as it looks. It depends heavy on the use case, length of data, importance of data, etc.14:58
tbayenWe can solve this either by makiing it heavy configurable or by using different plugins for different cases.14:58
*** hieplq has quit IRC15:00
CarlosRuizjust tested my theory  :-)15:00
CarlosRuizand it's correct - you can make it work as I said in a single trx - per org for example15:01
CarlosRuizbut you must use in such case the Merge option15:01
*** tsvikruha has quit IRC15:01
CarlosRuizI think a single commit must speed up the import process more than the asynchronous commit15:05
tbayenWe will test that.15:05
*** nmicoud has quit IRC15:18
*** CarlosRuiz has quit IRC15:19
*** CarlosRuiz has joined #idempiere15:20
*** ChanServ sets mode: +o CarlosRuiz15:20
*** norbertbede has quit IRC15:24
*** KermitTheFragger has quit IRC15:32
*** norbertbede has joined #idempiere15:34
*** nmicoud has joined #idempiere15:40
*** nmicoud has quit IRC15:45
*** norbertbede has quit IRC15:52
*** a42niem_ has quit IRC15:54
*** norbertbede has joined #idempiere16:25
*** CarlosRuiz has quit IRC16:31
*** CarlosRuiz has joined #idempiere16:35
*** ChanServ sets mode: +o CarlosRuiz16:35
*** norbertbede has quit IRC16:59
*** CarlosRuiz has quit IRC17:01
*** CarlosRuiz has joined #idempiere17:04
*** ChanServ sets mode: +o CarlosRuiz17:04
*** norbertbede has joined #idempiere17:05
*** nmicoud has joined #idempiere17:06
*** is-mw has joined #idempiere17:49
CarlosRuizdruiz, tbayen, still there?17:53
*** CarlosRuiz has quit IRC18:05
*** norbertbede has quit IRC18:09
*** nmicoud has quit IRC18:13
*** ocurieles has quit IRC18:21
*** CarlosRuiz has joined #idempiere18:22
*** ChanServ sets mode: +o CarlosRuiz18:22
*** norbertbede has joined #idempiere18:26
*** norbertbede has quit IRC19:02
*** norbertbede has joined #idempiere19:03
*** ocurieles has joined #idempiere20:19
*** banym has joined #idempiere21:16
*** banym has quit IRC21:19
*** banym has joined #idempiere21:19
*** CarlosRuiz has quit IRC21:51
*** a42niem has quit IRC22:17
*** norbertbede has quit IRC22:18
*** CarlosRuiz has joined #idempiere22:23
*** ChanServ sets mode: +o CarlosRuiz22:23
*** norbertbede has joined #idempiere22:30
*** ocurieles has quit IRC22:34
*** norbertbede has quit IRC22:46
*** is-mw has quit IRC23:51

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!