flashgordon,
Comments to your Remark1: that was exactly the reason why I suggested DISK Overlay (not RAM). The DISK Overlay will allow you to
have a few levels of the caching. Therefore you may end up corrupting the transaction log in top level but still have some "old"
version of the db data and transaction log in lower levels to restore from.
Again, this might not be a good solution (or not a solution at all) in your case depending on your device usage.
Btw, I was wondering if it is considerable for you to move the DB on a server? E.g., having a good scalable and client
transactioning server (SQL 2000 or if you think of very many client - more scalable db engine) may help you to ensure data integrity
on the server side only. Terminals will only have to send data over network and commit the transaction.
Of course, this approach is useless to you if you cannot have network on the device.
Q2: I don't think MSDE has any "embedded" specific integration including flash random writing or etc. Keep in mind that MSDE on XPE
is just a componentized (not even ported!) version of MSDE for XP so the binaries are the same.
Up to some point you may think this way - if you can't potentially implement what's you need with XP Pro, you will unlikely make it
working with XPe (some exceptions, of course, are there - EWF, other EEFs).
Q3: I don't think SQL CE (not coming Yukon, though) has any flash related issues fixed either. They even use the compaction process
to maintain the database to avoid fragmentation and get better performance. As you can image it is in contradictory to what you are
trying to get for your device.
Don't forget that SQL server may be used on many different devices and it would be hard (or useless) to optimize it for flash device
use only.
Basically, SQL CE is a big port of SQL 2000. Although, this needs to be confirmed by experts from SQL CE team (newsgroup).
As Slobodan has already pointed out, you may want to switch to your own DB format and implementation. Then you may (will) be able to
implement your custom embedded device scenario with even data transactions and logs. However, you would definitely need to think
more of the data you are FIFO'ing on the device and about the flash (or whatever storage you are going to use).
--
Regards,
KM, BSquare Corp.
KM,
I have remarks and question:
Rem1: in every case I could have an integrity problem, because there is not a shutdown procedure, but (it is an industrial
machine) the user "turn off" the machine. So I think (or I am wrong?) that if I have a poweroff during transaction log
writing.......
Q2: Normally we have about 20000 records. After reaching 20000 we delete the oldest and insert a new one (FIFO) every 5 minutes.
Can MSDE (on xpe) manage his datafile to "distribute" writing on different flash memory areas to maximize flash lifetime?
Q3: Has SQL server CE (normally on flash memory???) the same problems or the architecture has been studied to avoid flash memory lifetime problems?
We have a lot of question, but the MOST important thing is to understand if MSDE (XPE ) or eventually SQL server CE (Windows CE
platform) on a solid state memory disk is applicable or if it is a bad idea.