> If you want to create a record which has fields referencing the addresses of > other fields within the same record, that is the goal for FIXEDMAP but this > feature requires the relocation functions, which currently are not > implemented.
Is in the future, this feature will be removed? Do you have a plan about it? On 11/30/13, Howard Chu <[email protected]> wrote: > Aris Setyawan wrote: >> Hi, >> >> I'm new in this list. >> >> I plan to store graph data structure (vertex and edge) in LMDB. The >> "edge" data value of a record will contain a pointer which is pointing >> to the address of "vertex" data value. So, I must make it sure that >> data value address is not changing during operation. According to the >> doc, I can use MDB_FIXEDMAP. >> >> And from the doc: >> >> "... the memory map will always reside at the same virtual address and >> pointers used to reference data items in the database will be constant >> across multiple invocations. ..." >> >> Spesifically: "... pointers used to reference data items in the >> database will be constant ..." >> >> Is this mean that I must allocate memory to write data using mdb_put >> with MDB_RESERVE flag? > > Yes, but from what you've described, this will not do what you want. The > address of a record is not guaranteed to remain constant, so you cannot > safely > reference the address of one record from another record. The only safe way > to > reference one record from another is using its key. > > If you want to create a record which has fields referencing the addresses of > > other fields within the same record, that is the goal for FIXEDMAP but this > > feature requires the relocation functions, which currently are not > implemented. > > -- > -- Howard Chu > CTO, Symas Corp. http://www.symas.com > Director, Highland Sun http://highlandsun.com/hyc/ > Chief Architect, OpenLDAP http://www.openldap.org/project/ >
