2014-12-24, 10:39
All,
I am thinking about starting development to improve the way we handle synchronized systems.
My thought was each kodi instance will have their own local dB's that is independent of all other instances and the central server. Starting off there would be one main setup. Then from there the central server would "mirror", not in the literal sense because I would be working with different database types, the main. The first time that this happens will be slow, it has to build everything, also when a new instance connects for the first time.
Now to keep everything synchronized, there will be a special table that monitors if anything has changed. This table will also record the id of each instance with a changed version That I will use for comparison to see if it is up to date. There will be multiple change types so that I know which items need to be updated. This will allow for quick connections since I will only be sending what needs to be changed. Or at least, what values should be updated.
I am thinking it might be better sending an XML to the central server which would have UDF's along with stored procedures to full execute the needed operations, be that creating a new table, inserting rows, or deleting items
.
The updates would only happen in the following ways, if and only if there is a central server connected.
1. The user pauses the media. This would send a quick update of the current time.
2. A users stops playing media. Again same as number 1.
3. The devices is turned on. This would check to see if any updates are needed, usually quick unless added a bunch of media
4. The instance has been idle for x amount of time.
I would also make an easy settings page that would allow the user to input the central servers information along with other settings that could be directly related based on how the users wants it to behave.
As far as setting the central server up, for those that have little know how, I could create an auto executable that would automatically install all the needed software. Including the UDF's and possibly a utility that I can build to assist in parsing.
This would be a huge improvement because we would not be mediadown to the central server therefore certain instances could be completely mobile and only updating when there is a connection to the central server.
As far as my credentials, I have been working with enterprise software that connects to many different systems and uses multiple databases that have to talk to each other. One of my applications is kind of set up this way already just not to the scale of what we are going to be doing here.
Please let me know thoughts, suggestions, concerns etc. Also feel free to pm me.
I am thinking about starting development to improve the way we handle synchronized systems.
My thought was each kodi instance will have their own local dB's that is independent of all other instances and the central server. Starting off there would be one main setup. Then from there the central server would "mirror", not in the literal sense because I would be working with different database types, the main. The first time that this happens will be slow, it has to build everything, also when a new instance connects for the first time.
Now to keep everything synchronized, there will be a special table that monitors if anything has changed. This table will also record the id of each instance with a changed version That I will use for comparison to see if it is up to date. There will be multiple change types so that I know which items need to be updated. This will allow for quick connections since I will only be sending what needs to be changed. Or at least, what values should be updated.
I am thinking it might be better sending an XML to the central server which would have UDF's along with stored procedures to full execute the needed operations, be that creating a new table, inserting rows, or deleting items
.
The updates would only happen in the following ways, if and only if there is a central server connected.
1. The user pauses the media. This would send a quick update of the current time.
2. A users stops playing media. Again same as number 1.
3. The devices is turned on. This would check to see if any updates are needed, usually quick unless added a bunch of media
4. The instance has been idle for x amount of time.
I would also make an easy settings page that would allow the user to input the central servers information along with other settings that could be directly related based on how the users wants it to behave.
As far as setting the central server up, for those that have little know how, I could create an auto executable that would automatically install all the needed software. Including the UDF's and possibly a utility that I can build to assist in parsing.
This would be a huge improvement because we would not be mediadown to the central server therefore certain instances could be completely mobile and only updating when there is a connection to the central server.
As far as my credentials, I have been working with enterprise software that connects to many different systems and uses multiple databases that have to talk to each other. One of my applications is kind of set up this way already just not to the scale of what we are going to be doing here.
Please let me know thoughts, suggestions, concerns etc. Also feel free to pm me.