Menu

Src (SVN)-old Commit Log


Commit Date  
[r8920] by tswift

This fixes an obscure bug in incremental tabling. The problem
arises in the following situation

1) an incremental subgoal S is updated from State_1 to State_2
2) Choice points are laid down for S in State_2
3) S is again updated

Before this change, when 3) occurred, find_the_visitors (the main
setup routine for view consistency) does not work properly. This
is because FTV traverses the choice point stack to determine when
choice points to S are present. During this process, if a CP
points to a trie instruction, that trie instruction is checked to
determine whether it points to the trie for S. However, the
routine that does this check needs to traverse the trie to the
root, and then go from the root to the subgoal frame for S -- it
is the subgoal frame that determines whether that trie
instruction pertains to S.

In prinicple this should work fine, but there is a catch. During
the update in 1) S gets a different subgoal frame. I dont think
this is necessary (I inherited this decision) but in any case
this means that State_1 has SF_1 and State_2 SF_2. Thus the CPs
laid down in 2) pertain to SF_2, but the pointer to the root of
the answer trie for S was not being updated. Thus, FTV could
only find CPs that pertain to SF_2, which did not trigger the
creation of a new view consistency choice point.

Once this became apparent, the fix was easy: I just had to reset
the pointer from the root of the answer trie and things now seem
to work fine.

So in a nutshell, FTV was working fine as long as there weren't
repeated updates to the same goal. I should have checked this
case earlier, so shame on me.

Chasing down the bug caused me to scrutinize parts of the
incremental update code. The use of attributed variables within
the view consistency mechanism was incorrect and still needs to
be fixed. There doesn't seem anything obviously wrong with the
rest of the code I looked at, although I did add some checks for
possible errors.

2016-12-26 22:09:19 Tree
[r8919] by dwarren

Removing test files that are now in incremental_tests and run from there.

2016-12-24 21:14:39 Tree
[r8918] by tswift

And changing this one also.

2016-12-24 21:07:12 Tree
[r8917] by tswift

Cleaning up the test suite: taling out the "approximate" errors, and fixed test_trievars to properly catch and write out the result.

2016-12-24 20:56:14 Tree
[r8916] by dwarren

Due to updates. (Others with better latex installations might want to recompile
these.)

2016-12-24 16:20:36 Tree
[r8915] by dwarren

Fix minor typo and minor clarification.

2016-12-24 16:17:02 Tree
[r8914] by dwarren

Document add_lib_dir/2/3.

2016-12-24 16:15:37 Tree
[r8913] by dwarren

Minor clarification on form of library_directory directory names.

2016-12-24 16:13:10 Tree
[r8912] by dwarren

Fix minor typo.

2016-12-24 16:11:51 Tree
[r8911] by dwarren

Modified abolish_table_pred to support the deletion of multiple subsidiary
tabled predicates generated by table_index. Done through a recusive loop
(not failure driven loop) to avoid a bug in abolish_table_pred
(when abolishing cascades.) This might be reconsidered when that bug is
tracked down.

2016-12-23 15:11:41 Tree
Older >
MongoDB Logo MongoDB