Project

General

Profile

Actions

Architecture #2012

closed

The historization of the group doesn't store if the group is static or dynamic

Added by Nicolas CHARLES over 12 years ago. Updated about 12 years ago.

Status:
Released
Priority:
N/A
Category:
Architecture - Code maintenance
Target version:
Effort required:
Name check:
Fix check:
Regression:

Description

So this information is not available for future use. It could be something useful to have.


Related issues 1 (0 open1 closed)

Precedes Rudder - User story #2253: Automatically update the SQL schema on upgrade from to 2.4 (extra column in policyInstances and groups tables)ReleasedMatthieu CERDA2012-02-09Actions
Actions #1

Updated by François ARMAND over 12 years ago

  • Target version changed from 18 to 2.4.0~alpha1
Actions #2

Updated by François ARMAND over 12 years ago

  • Status changed from New to Discussion

In the same idea, knowing the request, for a dynamic group, may be important. And if the group was enabled or not.
But, we have to draw a line somewhere.

That information is already in the event-log database, even if it is in a rather non interesting way (we only keep deltas there, so that if we want to know the state at some point in the time, we have to rebuild the full history).

Oh, and that information will also be in the git history of all the serialized version of item, when http://www.rudder-project.org/foswiki/Development/Pi_cr_group_export_import is implemented. Again, the search format won't be really interesting.

That mean that we will keep more or less the same data three times around Rudder (and not really cheap datas).

Perhaps what we should have thought is a tighter integration of these two log so that we didn't have any data duplication, something like:

  • when an item is created, I serialize it and save the result in <somewhere>
  • there is a "create event" referencing the serialized thing

Then, for a modification:

  • when an item is modified, I serialize it and save the result in <somewhere>
  • there is a "modified event" referencing the serialized thing.

Same for deletion.

Then we can both have nice event log, with full details, and the full history of any property of any items (find all events for the item, look to the event just before the date of interest, unserialize the item, get the property).

Actions #3

Updated by Jonathan CLARKE over 12 years ago

  • Target version changed from 2.4.0~alpha1 to 2.4.0~alpha2
Actions #4

Updated by Jonathan CLARKE over 12 years ago

  • Target version changed from 2.4.0~alpha2 to 2.4.0~alpha3
Actions #5

Updated by Jonathan CLARKE about 12 years ago

  • Target version changed from 2.4.0~alpha3 to 2.4.0~alpha4
Actions #6

Updated by Jonathan CLARKE about 12 years ago

François ARMAND wrote:

In the same idea, knowing the request, for a dynamic group, may be important. And if the group was enabled or not.
But, we have to draw a line somewhere.

That information is already in the event-log database, even if it is in a rather non interesting way (we only keep deltas there, so that if we want to know the state at some point in the time, we have to rebuild the full history).

Oh, and that information will also be in the git history of all the serialized version of item, when http://www.rudder-project.org/foswiki/Development/Pi_cr_group_export_import is implemented. Again, the search format won't be really interesting.

That mean that we will keep more or less the same data three times around Rudder (and not really cheap datas).

Perhaps what we should have thought is a tighter integration of these two log so that we didn't have any data duplication, something like:

  • when an item is created, I serialize it and save the result in <somewhere>
  • there is a "create event" referencing the serialized thing

Then, for a modification:

  • when an item is modified, I serialize it and save the result in <somewhere>
  • there is a "modified event" referencing the serialized thing.

Same for deletion.

Then we can both have nice event log, with full details, and the full history of any property of any items (find all events for the item, look to the event just before the date of interest, unserialize the item, get the property).

This sounds great :)

I assume we're talking about 2.5 here though?

Actions #7

Updated by Jonathan CLARKE about 12 years ago

  • Assignee deleted (Nicolas CHARLES)
Actions #8

Updated by François ARMAND about 12 years ago

  • Target version changed from 2.4.0~alpha4 to 24

Jonathan CLARKE wrote:

I assume we're talking about 2.5 here though?

Yes, clearly, it would be a rather big refactoring.

Actions #9

Updated by Jonathan CLARKE about 12 years ago

  • Status changed from Discussion to 2
  • Assignee set to Nicolas CHARLES
  • Target version changed from 24 to 2.4.0~alpha5

We decided that when upgrading Rudder from an older version that doesn't historize group type, we will add the column to the SQL table, and fill in all gaps with "Unknown". As we can't know what type the group was throughout history, we can't fill it - it's better to have no data than wrong data.

Actions #10

Updated by Nicolas CHARLES about 12 years ago

  • Status changed from 2 to Pending technical review
  • % Done changed from 0 to 100
Actions #11

Updated by Jonathan CLARKE about 12 years ago

  • Tracker changed from Bug to Architecture
Actions #12

Updated by François ARMAND about 12 years ago

  • Status changed from Pending technical review to Released

Seems OK.

Actions

Also available in: Atom PDF