<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" id="owaParaStyle"></style>
</head>
<body fpstyle="1" ocsi="0">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Hi!
<div><br>
</div>
<div>Yesterday I woked on integrating OpenIO as a Blob store for Cyrus. I<span style="font-size: 13.3333330154419px;">&nbsp;t</span><span style="font-size: 13.3333330154419px;">emporarily&nbsp;</span><span style="font-size: 13.3333330154419px;">pushed my code in&nbsp;</span><a href="https://github.com/jfsmig/oio-cyrus/tree/JFS-openio-integration" target="_blank" style="font-size: 10pt;">https://github.com/jfsmig/oio-cyrus/tree/JFS-openio-integration</a><span style="font-size: 13.3333330154419px;">&nbsp;(the
 repository is a fork for your reference, on github for simplicity purposes). Because I sometimes fix and upgrade OpenIO in the same time, that code currently requires my own fork of OpenIO at&nbsp;</span><a href="https://github.com/jfsmig/oio-sds." target="_blank" style="font-size: 10pt;">https://github.com/jfsmig/oio-sds</a></div>
<div><br>
</div>
<div><span style="font-size: 10pt;">This is just a first iteration, managing the download from the blob store (in &quot;mailbox_map_record&quot;) and the upload (in &quot;mailbox_archive&quot;).</span></div>
<div><span style="font-size: 10pt;">Sorry, this is really a work in progress, not really clean (hardcoded configuration, etc).</span></div>
<div>
<div><br>
</div>
<div>At this point, I raised a few questions. I didn't investigated yet around them, and I will do in further iterations. Anyway, any useful information will be appreciated :)</div>
<div><br>
</div>
<div>* What is the preferred way to manage the configuration pour such a blob store module ? I typically need to provide a &quot;namespace name&quot;, and maybe timeouts, etc. At present, this is hardcoded according to my test environment.</div>
<div>* What is the preferred way to keep a structured in cache? For each operation, I need a structure representing the OpenIO client. This structure has an&nbsp;<span style="font-size: 13.3333330154419px;">internal</span><span style="font-size: 10pt;">&nbsp;cache (that
 takes time to load but greatly helps laters). At present, I create a new client for each operation.</span></div>
<div><span style="font-size: 10pt;">* I currently do poor error management, and later I will maybe need some tips about this. (e.g. what is the best behavior when the file is also missing on the blob store).</span></div>
<div><span style="font-size: 10pt;"><br>
</span></div>
<div><span style="font-size: 10pt;">Last but not least, I currently meet a problem, and I cannot run a single test successfully.</span></div>
<div><span style="font-size: 10pt;">When used in cyrus, the libgridclient.so (from OpenIO) does not behave the same as when it is used in another standalone application.</span></div>
<div>E.g. When the OIO client receives and parses a reply for an internal RPC, the reply contains unexpected fields. This is a clue for bad memory management, and my best track for the moment.</div>
<div>I also experience troubles when trying to debug this. Is there some function overloading by cyrus ? (e.g. syslog, fprintf, etc)</div>
<div><br>
</div>
<div>Best regards,</div>
<div>
<div style="font-family:Tahoma; font-size:13px">
<div style="font-family:Tahoma; font-size:13px"><br>
</div>
<div style="font-family:Tahoma; font-size:13px">
<div></div>
<b><font size="2"><a href="mailto:jean-francois.smigielski@openio.io">Jean-François SMIGIELSKI</a></font></b>
<div><font color="#ff0000">OpenIO</font>, Co-founder &#43; R&amp;D Manager</div>
<div>&#43;33.625135563</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>