in Ram database?

J

John D.

Does anyone know if there is an "in-ram" dictionary based database
for Python.

I can see some applications where this can really be powerful in
applications requiring 10,000 records or less.

Is such a database available? If so, who is working on it,
or where is it?

I've heard that Python supports a stand-alone database. I looked
for it in the Docs, and see the "dbm" module. I haven't found
any examples of code, so don't know how to use them. I'm one
of those guys that learn through examples, and have very little
luck in figuring out how to use anything unless I can see examples
of their use.

My idea is that ALL datums would be Python Dictionary objects, so
not only can you store data, but python objects as well.

Storage to disk would be through pickled files, or through CSV
format, allowing easy import and export from other databases.

I'm sure something like this exists, I just haven't found it yet,
and if not, then I'm well on my way of implementing one myself.

I kinda like the idea of being able to define smaller tables as
"in-memory" types, and the really large massive ones in other forms
managed by mySQL, PostGres, or bsddb3 databases.

Any leads you guys???

JD
 
G

Ganesan R

John" == John D said:
I kinda like the idea of being able to define smaller tables as
"in-memory" types, and the really large massive ones in other forms
managed by mySQL, PostGres, or bsddb3 databases.

Use PySQLite (http://pysqlite.sf.net). Make sure that you have at least
version 2.8.1 of SQLite and give the database name as :memory: (this is not
obvious from the documentation). Since SQLite can handle databases upto 2
terabytes, you use it to store "really massive ones" on disk too :).

Ganesan
 
J

John J. Lee

John D. said:
Is such a database available? If so, who is working on it,
or where is it?

Gadfly, PySQLite.

I've heard that Python supports a stand-alone database. I looked
for it in the Docs, and see the "dbm" module. I haven't found
any examples of code, so don't know how to use them. I'm one
of those guys that learn through examples, and have very little
luck in figuring out how to use anything unless I can see examples
of their use.

These sorts of dbs aren't in-memory. Still, if you want to find some
simple examples, I'm sure a few queries like 'group:comp.lang.python
bsddb example' in Google Groups will find something.

My idea is that ALL datums would be Python Dictionary objects, so
not only can you store data, but python objects as well.

Sounds like you might want ZODB (again, not in-memory). It's more of
an object persistence system + BTrees than it is a DBMS, since there's
no query system. IndexedCatalog is a query system built on top of
ZODB, but it's quite feasible to roll your own simple
application-specific queries with BTrees (and the other data
structures it provides). BTrees are rather like dictionaries, but
they support on-demand loading of data, so not everything has to be in
memory at once.

I kinda like the idea of being able to define smaller tables as
"in-memory" types, and the really large massive ones in other forms
managed by mySQL, PostGres, or bsddb3 databases.

That sounds like a recipe for extra work to me. If you need a big
DBMS, use that for everything.


John
 
J

John Roth

John D. said:
Does anyone know if there is an "in-ram" dictionary based database
for Python.

I can see some applications where this can really be powerful in
applications requiring 10,000 records or less.

Is such a database available? If so, who is working on it,
or where is it?

I've heard that Python supports a stand-alone database. I looked
for it in the Docs, and see the "dbm" module. I haven't found
any examples of code, so don't know how to use them. I'm one
of those guys that learn through examples, and have very little
luck in figuring out how to use anything unless I can see examples
of their use.

My idea is that ALL datums would be Python Dictionary objects, so
not only can you store data, but python objects as well.

Storage to disk would be through pickled files, or through CSV
format, allowing easy import and export from other databases.

I'm sure something like this exists, I just haven't found it yet,
and if not, then I'm well on my way of implementing one myself.

I kinda like the idea of being able to define smaller tables as
"in-memory" types, and the really large massive ones in other forms
managed by mySQL, PostGres, or bsddb3 databases.

Any leads you guys???

Look at Prevalyar. While it's a Java project, it might give
you some ideas about what's possible if you forget "data base"
and simply think "persistance."

John Roth
 
R

Romuald Texier

John said:
Does anyone know if there is an "in-ram" dictionary based database
for Python.

I can see some applications where this can really be powerful in
applications requiring 10,000 records or less.

Is such a database available? If so, who is working on it,
or where is it?

I've heard that Python supports a stand-alone database. I looked
for it in the Docs, and see the "dbm" module. I haven't found
any examples of code, so don't know how to use them. I'm one
of those guys that learn through examples, and have very little
luck in figuring out how to use anything unless I can see examples
of their use.

My idea is that ALL datums would be Python Dictionary objects, so
not only can you store data, but python objects as well.

Storage to disk would be through pickled files, or through CSV
format, allowing easy import and export from other databases.

I'm sure something like this exists, I just haven't found it yet,
and if not, then I'm well on my way of implementing one myself.

I kinda like the idea of being able to define smaller tables as
"in-memory" types, and the really large massive ones in other forms
managed by mySQL, PostGres, or bsddb3 databases.

Any leads you guys???

Why not just use Dictionaries, or an object tree? Why do you want tables or
SQL abstraction if it is "in-memory"? Nothing else but your app will be
able to access the "live" data, anyway.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,102
Messages
2,570,646
Members
47,247
Latest member
GabrieleL2

Latest Threads

Top