i want to design a software basis for receiving data and holding them in memory.
Working with Delphi 12.1 Athens.
In the old basis design we use TClientDataSets to hold the data. New data will be inserted in that existing ClientDataSets or the records will edited if updates occures. Updating the GUI for a nice smooth user experience is sometimes pain in the a**.
Furthermore over the years we’ve added some threads for bigger tasks (software growing permanently).
To bypass access violations, we’ve added multiple TMultiReadExclusiveWriteSynchronizer objects for every ClientDataSet to sync read/write access via a own written DataAware class.
The software receives the data via TCPClient. In peak times around 2 insert/update events per second could arrive.
In this peak times, it feels like the whole software is a little bit slow.
The Questions:
- Is this data design still modern?
- There are now better solutions for that kind of work?
- Should I leave it how it is and focus on GUI work?
Im really thankfull for any kind of suggestions or ideas 🙂
It would be nice if there are some DataSets or Structures which should be thread safe.
Maybe complete different structures or ideas are welcome.