In-place memory manager, mmap (was: Fastest way to store ints andfloats on disk)

C

castironpi

Hi,

I've got an "in-place" memory manager that uses a disk-backed memory-
mapped buffer. Among its possibilities are: storing variable-length
strings and structures for persistence and interprocess communication
with mmap.

It allocates segments of a generic buffer by length and returns an
offset to the reserved block, which can then be used with struct to
pack values to store. The data structure is adapted from the GNU PAVL
binary tree.

Allocated blocks can be cast to ctypes.Structure instances using some
monkey patching, which is optional.

Want to open-source it. Any interest?
 
K

Kris Kennaway

castironpi said:
Hi,

I've got an "in-place" memory manager that uses a disk-backed memory-
mapped buffer. Among its possibilities are: storing variable-length
strings and structures for persistence and interprocess communication
with mmap.

It allocates segments of a generic buffer by length and returns an
offset to the reserved block, which can then be used with struct to
pack values to store. The data structure is adapted from the GNU PAVL
binary tree.

Allocated blocks can be cast to ctypes.Structure instances using some
monkey patching, which is optional.

Want to open-source it. Any interest?

Just do it. That way users can come along later.

Kris
 
M

Mohamed Yousef

source-forge places no limits and is a very good place (specific
project site / releases / usage counters)
 
K

Kris Kennaway

castironpi said:
How? My website? Google Code? Too small for source forge, I think.

Any of those 3 would work fine, but the last two are probably better
(sourceforge hosts plenty of tiny projects) if you don't want to have to
manage your server and related infrastructure yourself.

Kris
 
C

castironpi

Any of those 3 would work fine, but the last two are probably better
(sourceforge hosts plenty of tiny projects) if you don't want to have to
manage your server and related infrastructure yourself.

Kris

I decided on Google Code. The demo creates 'mappedtree.dat' at 3000
bytes, and allocates or frees memory blocks in it at random. There is
a insert-stress test, and a concurrent read-write test too. Tested on
WinXP with Python 2.5. Have a look.

http://code.google.com/p/pymmapstruct/source/browse/trunk/allocbuf.py
 

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

No members online now.

Forum statistics

Threads
473,776
Messages
2,569,603
Members
45,189
Latest member
CryptoTaxSoftware

Latest Threads

Top