Why will my fluid domain only bake once?
This is because your setup is a bit weird.

First, make sure the fluid objects are enough large to be initialized as fluid volumes. To do so, you can Tab to edit mode and scale it Z, to have more volume at the beginning of the simulation. Beware to move the volume inside the domain, since the volume beyond the domain won't be computed. A good idea here would be to reset origin of both fluid objects to their respective centers.

Then, your obstacle object is not well configured:


Set the Volume initialization setting to Both because it contains both concave and convex surfaces.
It does not contain enough subdivisions, so the simulation is not so much accurate. You should add more edges to the height of the obstacle object (Tab to edit mode, then Ctrl + R over an edge, then mouse scroll to add more subdivs.)
You should also Recalculate the entire mesh's normals. (In Edit Mode, A to select all, then Ctrl + N)
As a side note, you added a Collision physics modifier for your obstacle object, which is useless here (even if it doesn't affect the fluid sim).


The amount of memory required for the simulation depends on the resolution you specify, for Final: (used for render) and for Preview:. The more resolution you give, the more memory the bake will take.

There is no "free bake" button, but you can specify the directory where Blender will store the simulation data (in the domain's Fluid dropdown, file browser at the bottom). By the way, if you re-click on the Bake button, it will erase the previous baked data while the simulation compute.