This thread looks to be a little on the old side and therefore may no longer be relevant. Please see if there is a newer thread on the subject and ensure you're using the most recent build of any software if your question regards a particular product.
This thread has been locked and is no longer accepting new posts, if you have a question regarding this topic please email us at support@mindscape.co.nz
|
In our system we have a need to improve performance of partial replication of data to other parts of the system. This also includes subsystems that stores data in a main-memory cache models that only needs a subset of the original database content (on column level). A natural way to do such a speedup would be to minimize the transfer to only include changes. I see two ways of doing this, and I am guessing one or both of these features are missing in Lightspeed? Perhaps someone sees an alternate route. Here goes: 1) When Lightspeed saves data, you can always tell when an entity has been created or modified by the Lightspeed automaticly used columns CreateDate and ModifiedDate. It is also very easy to add your own DeletedDate column to keep track of this state. But if you would like to keep track of individual columns, of which only some are important for replication when it comes to modification, I don't think Lightspeed support such a feature. (?) Would it not be possible to create a new Lightspeed automatically written column that is written to when the entity has been modified that is used as a bitmap to pinpoint what columns have been modified. Of course, it would require the column order to be quite static, but this could be less hazardous from a maintenance perspective if the bitmap is set by the O/R mapper that has the correct mapping of columns anyways. 2) Alternativly, I would think the Lightspeed O/R mapper could be used as a first step in the replication process. I.e. by reading all values to be transfered from database using Lightspeed, the O/R mapper could probably keep track of state and tell the difference from previous read (eg 15 minute intervals). But is the difference so fine grained so that Lightspeed can tell the difference at column level? If not, can it be expanded with this feature? We are a bit outdated on Lightspeed version in our system (v.2.2) so I am guessing we need an upgrade. But would it achieve what we need? |
|
|
Hi Tobias, We do now currently have a change tracking feature which I believe covers off what you are looking for. See http://www.mindscapehq.com/documentation/lightspeed/Implementing-Storage-Policies-with-LightSpeed/Change-Tracking for details on this. Let me know if you have any queries about how this operates if you want to tie it back to a more specific scenario in your app :) Note - You would need to upgrade to LightSpeed 4 to take advantage of this feature.
|
|
|
Great, thank. We'll have a look at it. It seems like this feature enables the 2nd possibility I outlined. |
|