[Opensim-dev] Thoughts on adding a generic key-value storage system to OpenSim?

Hurliman, John john.hurliman at intel.com
Mon Sep 21 20:05:17 UTC 2009


Formatting got messed up, that should have looked like this:

// returns true if the key was found and data was updated, otherwise false if a new key row was added
bool AddOrUpdateKeyValue(string context, string key, string value);

// returns true if the key was found and deleted
bool DeleteKeyValue(string context, string key);

// returns the string value if the key was found, otherwise null
string GetValue(string context, string key);

-----Original Message-----
From: opensim-dev-bounces at lists.berlios.de [mailto:opensim-dev-bounces at lists.berlios.de] On Behalf Of Hurliman, John
Sent: Monday, September 21, 2009 12:54 PM
To: opensim-dev at lists.berlios.de
Subject: [Opensim-dev] Thoughts on adding a generic key-value storage system to OpenSim?

A lot of the work going into OpenSim recently has been modularizing the codebase and making it easy for third party developers to write plugins. One feature that I think would really complete the picture would be a (simple) generic data storage interface that leveraged the existing OpenSim storage framework. Most plugins I've seen (and wrote) currently tack on their own database tables, use a simple text file with a custom format, or use some other means of data storage that does not match up with the rest of OpenSim. Adding a new database table that had three columns: [context, key, value] would allow plugins to store key/value mappings (string to string) without worrying about data collisions between plugins or having to implement a custom data store every time.

// returns true if the key was found and data was updated, otherwise false if a new key row was added
bool AddOrUpdateKeyValue(string context, string key, string value);
// returns true if the key was found and deleted
bool DeleteKeyValue(string context, string key);
// returns the string value if the key was found, otherwise null
string GetValue(string context, string key);

Although I've been writing extensions for the OpenSim codebase for quite a while, I'm still fairly new to the guts of the system. Does this seem like the correct solution? If so, where would this interface go? I'm happy to write the code to implement this, I just want feedback from the dev community first to see if I'm on track.

John
_______________________________________________
Opensim-dev mailing list
Opensim-dev at lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev



More information about the Opensim-dev mailing list