<?xml version="1.0" encoding="utf-8"?> 
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
 <title type="text">SHRIPHANI PALAKODETY: Posts tagged 'lmdb'</title>
 <link rel="self" href="http://blog.shriphani.com/feeds/lmdb.atom.xml" />
 <link href="http://blog.shriphani.com/tags/lmdb.html" />
 <id>urn:http-blog-shriphani-com:-tags-lmdb-html</id>
 <updated>2016-05-18T05:09:25Z</updated>
 <entry>
  <title type="text">fort-knox: A disk-backed core.cache implementation</title>
  <link rel="alternate" href="http://blog.shriphani.com/2016/05/18/fort-knox-a-disk-backed-core-cache-implementation/?utm_source=lmdb&amp;utm_medium=Atom" />
  <id>urn:http-blog-shriphani-com:-2016-05-18-fort-knox-a-disk-backed-core-cache-implementation</id>
  <published>2016-05-18T05:09:25Z</published>
  <updated>2016-05-18T05:09:25Z</updated>
  <author>
   <name>SHRIPHANI PALAKODETY</name></author>
  <content type="html">&lt;html&gt;
&lt;p&gt;&lt;a href="https://github.com/clojure/core.cache"&gt;&lt;code&gt;core.cache&lt;/code&gt;&lt;/a&gt; is a small and convenient cache library for clojure. It enables clojure users to quickly roll out caches. In this blog post I am going to describe a clojure implementation which stores cache entries to disk: &lt;a href="https://github.com/shriphani/fort-knox"&gt;fort-knox&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In a few recent projects I&amp;rsquo;ve needed a cache with entries backed to disk. This is a vital requirement in applications that need to be fault-tolerant. &lt;a href="https://symas.com/products/lightning-memory-mapped-database/"&gt;LMDB&lt;/a&gt; (which I&amp;rsquo;ve had very positive experiences with) is fast, quick and perfect for this task. &lt;a href="https://github.com/shriphani/fort-knox"&gt;&lt;code&gt;fort-knox&lt;/code&gt;&lt;/a&gt; implements the &lt;code&gt;core.cache&lt;/code&gt; spec and stores entries in LMDB. &lt;a href="https://github.com/shriphani/clj-lmdb"&gt;&lt;code&gt;clj-lmdb&lt;/code&gt;&lt;/a&gt; (subject of a previous blog post) is part of the plan now.&lt;/p&gt;

&lt;p&gt;Note that this library deviates slightly from suggestions for &lt;code&gt;core.cache&lt;/code&gt; implementations. For instance, the backing store doesn&amp;rsquo;t implement &lt;a href="https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/IPersistentCollection.java"&gt;&lt;code&gt;IPersistentCollection&lt;/code&gt;&lt;/a&gt; or &lt;a href="https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Associative.java"&gt;&lt;code&gt;Associative&lt;/code&gt;&lt;/a&gt; so &lt;code&gt;fort-knox&lt;/code&gt; might deviate from expected behavior. Thus YMMV.&lt;/p&gt;&lt;/html&gt;</content></entry>
 <entry>
  <title type="text">clj-lmdb : Clojure Bindings For The LMDB Key-Value Store</title>
  <link rel="alternate" href="http://blog.shriphani.com/2016/04/17/clj-lmdb-clojure-bindings-for-the-lmdb-key-value-store/?utm_source=lmdb&amp;utm_medium=Atom" />
  <id>urn:http-blog-shriphani-com:-2016-04-17-clj-lmdb-clojure-bindings-for-the-lmdb-key-value-store</id>
  <published>2016-04-17T21:41:30Z</published>
  <updated>2016-04-17T21:41:30Z</updated>
  <author>
   <name>SHRIPHANI PALAKODETY</name></author>
  <content type="html">&lt;html&gt;
&lt;p&gt;LMDB is the nicest, no-nonsense, no-surprise key-value store I&amp;rsquo;ve ever used.&lt;/p&gt;

&lt;p&gt;In several benchmarks, &lt;a href="http://symas.com/mdb/#bench"&gt;LMDB destroys competitors&lt;/a&gt; - it is a beloved tool in &lt;a href="https://scs.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=745fd606-7a0a-40c1-82d2-800c44ec3764"&gt;high-profile circles&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here&amp;rsquo;s clojure bindings: &lt;a href="https://github.com/shriphani/clj-lmdb"&gt;https://github.com/shriphani/clj-lmdb&lt;/a&gt;&lt;/p&gt;&lt;/html&gt;</content></entry></feed>