How Should I Configure objectdb.conf to Obtain 256KB Disk IO Requests and Maximize Shared PersistenceManager Entity Cache?

#1

These are questions asked in the context of the proposed architecture described in the forum thread titled, "Sample JDO Architecture for Follow Up Questions".
 

I tried to configure my objectdb.conf to give 256KB disk accesses and use PersistenceManager L1 ref=soft caching and datastore pagefile caching 1 MB (4 256KB sized pages).  The goal is to have frequent PersistenceManager L1 cache hit, then less frequent datastore pagefile cache hit, then when absolutely necessary, read/write from/to the disk, but in a 256 KB sized IO packets.

Is the objectdb.conf file (attached to forum thread mentioned above) appropriate to achieve this goal?

 

#2

Having larger database pages may have other effects (e.g. searching for an object in a larger page could take longer). So, as with most tuning questions, the only way to know what works better in a specific application is to benchmark the different options.

ObjectDB Support
ObjectDB - Fast Object Database for Java (JPA/JDO)
#3

What is stored in a datastore pagefile cache page?  Data that was collocated by a datafile access?  Arbitrary data pulled from all accesses over a datastore file?  Are the cache entries entire persisted entity objects or fields of arbitrary objects (like key-value store)?

#4

Does ObjectDB access the datafile in page-sized IO requests?

#5

Yes.

ObjectDB Support
ObjectDB - Fast Object Database for Java (JPA/JDO)
#6

What is stored in a datastore pagefile cache page?  Entire persisted entity objects?   Fields of arbitrary objects (like key-value store)?

 

To optimize my application's disk file accessing, knowing what gets loaded helps.  For example, if my application asks for an entity object, will arbitrary entity objects around it in that datastore file location also be loaded?  Or, perhaps the datastore file contains key-value pairs (an entities field and value) so an entity request might load arbitrary data around the requested value?

 

Perhaps the better question is how best to maximize the efficiency of datastore file access.  The goal is to make 256 KB IO packet requests to the datastore file (because it is stored on an Amazon EBS disk which has max performance at that size and reduces monetary fees by having fewer accesses).

#7

> What is stored in a datastore pagefile cache page?  Entire persisted entity objects?   Fields of arbitrary objects (like key-value store)?

Pages as byte[].

> Perhaps the better question is how best to maximize the efficiency of datastore file access.  The goal is to make 256 KB IO packet requests to the datastore file (because it is stored on an Amazon EBS disk which has max performance at that size and reduces monetary fees by having fewer accesses).

So a page size of 256K may work for you. But you may want to benchmark different page sizes to verify that it is the optimum setting.

ObjectDB Support
ObjectDB - Fast Object Database for Java (JPA/JDO)

Post Reply

To post a reply and/or subscribe to update notifications - please login