The open-iscsi package uses a file/directory-based database -- actually, 3 databases: the "send targets" done with their results, the "nodes" found, and the "interfaces" known/used. But there are inefficiencies when dealing with thousands of targets, and the "node" and "send target" databases could easily be combined. Perhaps moved into a real database?
Also, the sysfs interaction that open-iscsi does is terrible with thousands of targets, perhaps even O(n^2), which would really really suck. I'd like to investigate the relationship of sysfs access to number of targets/LUNs to verify this.
This project is one of its kind!