Optional Component Design Decision Document
Low Carb Borealis
Why make a lighter version of Borealis?
+ This will simplify the build process.
Debugging build problems will be easier.
Porting Borealis to other platforms is easier.
+ Simplify the installation process.
Dependent packages can be added only if needed.
+ Make Borealis installations smaller.
The Borealis code will only be slightly smaller,
but the dependent packages won't be needed.
- Some of us have to do some work to get this done.
Where do we put optional build things?
We may need some stubs in order to link optional packages.
The design needs to consider future changes for additional packages.
udb (dependent on the API design)
How do we select packages when we do the build?
The build is done with build.borealis.sh.
Selection should also work without the script.
a. An argument.
b. Setting INSTALL_<package> to nothing.
c. Not setting INSTALL_<package>.
Once Borealis is built, what does it take to add in a package?
What other Borealis functionality might be optional?
We may want to trim down Borealis to minimize the footprint to install
in portable devices.
How does this fit in with alternative component implementations.?
RANDOM NOTES
db4 - borealis/src/modules/queryProcessor/runtime/Table.cc
mysql - boxes/udb/MySQLQBox.cc
TinyDb - Build is optional based on whether it is installed.
When I first merged Aurora into Medusa, I pointed out that a bunch of things in
util/, which came from Aurora for the most part, might be dead code. I removed
some of it but for the rest, I didn't know if someone was using that or not. I
think we should clean that directory up and remove all the stuff that's not
used. -Magda