|
|
@ -76,20 +76,24 @@ Example:: |
|
|
|
Functions |
|
|
|
--------- |
|
|
|
|
|
|
|
.. function:: open(stream, \*, flags=0, cachesize=0, pagesize=0, minkeypage=0) |
|
|
|
.. function:: open(stream, \*, flags=0, pagesize=0, cachesize=0, minkeypage=0) |
|
|
|
|
|
|
|
Open a database from a random-access `stream` (like an open file). All |
|
|
|
other parameters are optional and keyword-only, and allow to tweak advanced |
|
|
|
parameters of the database operation (most users will not need them): |
|
|
|
|
|
|
|
* *flags* - Currently unused. |
|
|
|
* *cachesize* - Suggested maximum memory cache size in bytes. For a |
|
|
|
board with enough memory using larger values may improve performance. |
|
|
|
The value is only a recommendation, the module may use more memory if |
|
|
|
values set too low. |
|
|
|
* *pagesize* - Page size used for the nodes in BTree. Acceptable range |
|
|
|
is 512-65536. If 0, underlying I/O block size will be used (the best |
|
|
|
compromise between memory usage and performance). |
|
|
|
is 512-65536. If 0, a port-specific default will be used, optimized for |
|
|
|
port's memory usage and/or performance. |
|
|
|
* *cachesize* - Suggested memory cache size in bytes. For a |
|
|
|
board with enough memory using larger values may improve performance. |
|
|
|
Cache policy is as follows: entire cache is not allocated at once; |
|
|
|
instead, accessing a new page in database will allocate a memory buffer |
|
|
|
for it, until value specified by *cachesize* is reached. Then, these |
|
|
|
buffers will be managed using LRU (least recently used) policy. More |
|
|
|
buffers may still be allocated if needed (e.g., if a database contains |
|
|
|
big keys and/or values). Allocated cache buffers aren't reclaimed. |
|
|
|
* *minkeypage* - Minimum number of keys to store per page. Default value |
|
|
|
of 0 equivalent to 2. |
|
|
|
|
|
|
|