Since few months, I work on LMDB for Azure stuff. First, I have:
- migrated the library from Linux to Windows x64
- adapted the .NET Layer Interop
- made custom clients code
Now, I have setup the Azure Web App Svc for hosting a simple file uploader where files will be stored in LMDB NoSQL database. The way of using it is so simple :
private static void StoreFile(string path) { string key = path; string value = String.Empty; byte[] buffer = File.ReadAllBytes(path); LMDBEnvironment _env; string dir = "c:\\temp\\cache_net10B"; _env = new LMDBEnvironment(dir); _env.MaxDatabases = 2; _env.MapSize = 10485760 * 100; _env.Open(); DateTime dtStart = DateTime.Now; var tx = _env.BeginTransaction(); var db = tx.OpenDatabase("DB", new DatabaseConfiguration { Flags = DatabaseOpenFlags.Create }); var enc = System.Text.Encoding.UTF8; tx.Put(db, enc.GetBytes(key), buffer); tx.Commit(); db.Dispose(); DateTime dtStop = DateTime.Now; TimeSpan ts = dtStop - dtStart; string str = String.Format("Time elapsed for set:{0} ms", ts.TotalMilliseconds); Logger.LogInfo(str); _env.Dispose(); }
If you want to test LMDB in your environement, download that stuff:
Download the LMDB Windows DLL and console_app.Exe
Download the LMDB Windows DLL, the .NET WRapper DLL and console_app.Exe
Leave a Reply