Backend design advice



Hello,

This question is quite general but I'd like to know how things in GNOME were designed, in addition to any general advice you have.

Assume a GUI application uses a central data backend, e.g. Tracker. Currently Tracker is a single central storage service, i.e. one daemon accepting connection and queries from apps.

Now assume I want to have more than one database: for example a separate database for some project I work on, a separate database for documenting file system hierarchy, separate database for desktop items, etc. The common approach, at least in SQL, is to have a single entry point, an SQL server, which handles all the databases stored on the computer. All clients connect to the same server.

Here's another possible approach: If the number of databases is small, it may be reasonable to launch a separate server for each database, and have them communicate with each other through IPC. There would probablly need to be another service to route network traffic to the right server, but aside from that, each database would have its own server (daemon) handling access to it.

Would the second approach be better at anything? Is it something people do, something reasonable? Or the approach of a single server per computer is clearly better?

(Would the second approach be more safe or scalable or resilient etc.)

By the way launching separate threads for queries or separate databases still counts as having a single server


- f



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]