As part of my FreeNAS 8 build, I purchased a Transcend 2GB USB drive which fits onto a standard motherboard 10-pin USB header to avoid having a USB thumb drive sticking out of the back of the case. Unfortunately this took a while to arrive as scan.co.uk had to order it in specially, so my initial FreeNAS […]
Author Archives: James Furness
Just came across an interesting article on the use of cryptographic hashes in content-based addressing (e.g. Git, Rsync, Bittorrent) whilst doing some reading around ZFS deduplication in ZFS v21 which is coming soon (with v26) in FreeBSD (and hence hopefully soon in FreeNAS!)
Just finished building some new hardware to run FreeNAS 8.0. As there’s not a huge deal of info kicking around the internet about working hardware configurations I thought i’d post my experiences. Last time I built a PC I almost built a NAS box at the same, but looking at the increase in cost of […]
I recently came across Tungsten FSM whilst looking for an off the shelf FSM implementation. Ideally I was looking for something which was a lightweight and no-frills but robust FSM implementation, and Tungsten FSM seemed to exactly fit the bill. All configuration is done in code, so no messing around with XML files, and the […]
Myself and a colleague were offered some tickets for the A-Team Insight Exchange (High Performance Technologies for Trading and Risk) in London yesterday, and were able to get away from our desk long enough to attend the first half of the day! Overall a lot of the things discussed were things that we were already […]
I recently stumbled across a useful presentation: “GC Tuning In the HotSpot JVM” from FISL 10, which provides a good overview of how to tune the ParNew, Paralell and CMS collectors… Also quite useful is this blog entry which explains how to understand CMS GC logs.
Little gem from the Hotspot Internals wiki helping to solve puzzles such as is “X.class.isAssignableFrom(obj)” slower than “obj instanceof X“! Performance techniques used in the Hotspot JVM.
Floating point arithmetic/rounding can be somewhat painful, made worse by the fact that the epsilon (error) in the machine representation of floating point varies depending on the exponent (i.e. how large/small the number being represented is): Normalized numbers when Base = 2, Precision = 3, Exponents = -1 to 2 [Goldberg91] A very comprehensive paper […]
Useful synopsis of the Java Memory Model from Doug Lea – in particular the clearest explanation I have found so far of the meaning of “happens-before”, and some useful definitions which helped to get a concrete idea of the semantics around safe-publication of variables through Thread.start()…
My home linux server (formerly my desktop PC), which has been sitting in the corner of my lounge for a few years (with all fans other than the CPU fan unplugged in order to keep the noise down), finally blew up a few weeks ago. The motherboard was loading the BIOS but failing to recognise […]