Implement RegFlushKey

Robert van Herk robert at robertvanherk.nl
Sat Dec 27 13:33:20 CST 2003


> First, I would like to mention that having binary compatible registry 
> implementation is not stricly necessary for load/save compatible to 
> Windows. We can do import on load and export on save, for example. 
> There is also the fact that, if I understand correctly, Windows 9x has 
> different registry syntax from Windows NT, and other ugly stuff.
> If I understood the discussion so far, it boils down to these options:
> A. Ascii file - bad performance, easy editing. I'm unclear about 
> Unicode support.
> B. Our own format - difficult editing, may have good performance if we 
> invest LOTS of hard work. Lots of potential bugs and places to go wrong.
> C. SQL - good performance, jury is still out on ease of editing (in 
> any case - not as easy as A, but I'm not sure how unicode plays in). 
> Requires configuring yet another software component (but we may make 
> that optional).
> D. Windows compatible - all the down sides of B plus bad performance.
>
> Yes, I can defenitely see how D will be our favourite choice.
>
> Just so I do not dump work on other people myself, I may not have time 
> for implementing C start to finish, but I can defenitely help a lot. 
> I'm already familiar with PgSQL, for one thing.
>
Did you discuss berkely db already? MySQL or another database app that 
requires a server to run wouldn't be a good option I guess, since you 
wouldn't want to have a seperate server running just to serve some 
registry keys. I know of applications (subversion for example) that just 
demand you to put the berkely db source into a db subdir in the src 
directory. After that, it finds it itself and stuff compiles like a charm.

Also, I didn't follow the discussion really, but did you think of 
something like this:

Initially make 1 big ascii file, as is used now. If the file gets bigger 
than some treshold, let's say 1 meg, use a hashfunction over the keys to 
split the file into a few new files that will serve as buckets. So, 
every time a file gets to big, just split it up.

In this solution, at least we will be able to reuse much of the current 
functionality. Only thing we need is a thingy to determin into which 
bucket (or file) a certain key was hashed...

Grtz,
Robert



More information about the wine-devel mailing list