HNHacker News
TopNewBestAskShowJobs

gregburd

31 karma · joined April 21, 2010

usethesource: d13b2ac1c6b22c9a1557ee5a5dd4f41855f65133

[ my public key: https://keybase.io/gregburd; my proof: https://keybase.io/gregburd/sigs/ihu1aSLkyiKKs1CgSqHjDiygzDRY5DZInLQOzn_lXHQ ]

submissionscomments
gregburd··on Show HN: Egeria, a multidimensional spreadsheet for everybody
Would you consider this in the spirit of Lotus Improv, but for the web?
gregburd··on Immer: immutable and persistent data structures for C++
Certainly copyleft has a place, but changing the license to LGPLv3 would allow this very useful library to be used much more broadly while continuing to require that improvements to the shared code be made public. If glibc were GPLv3 rather than LGPLv3 (same goes for Boost, etc.) almost no one would use it. IMO this library will either be re-written under a less restrictive license by some other author (wasting time and effort of the community) or migrate to a more open license (LGPL, ASLv2, MPLv2, MIT, etc.).
gregburd··on Google Fiber Cutting Jobs and Halting Rollout
I think the business, regulatory and infrastructure requirements are entirely different. They co-opt existing networks and only have to provide a SIM card, like other MVNOs. They don't have to deal with multi-year back-room deals for community access to dig trenches or hang wire to get into neighborhoods. I'm a Google fi user and I hope that your prediction doesn't come true. It's a fantastic service. If Google fiber was available in my neighborhood I'd be a subscriber to that too, so perhaps I'm a bit biased. :)
gregburd··on Show HN: Minio – S3 Compatible Object Storage
While I commend the developers of Minio for building what appears to be a functional S3-API-compatible system in Go Lang it seems to me to be missing the key thing that makes S3 a compelling object/data storage solution -- the distributed part. Meaning, while I see that a Minio developer (y4m4b4) talks about erasure coding, something when talking about AWS/S3 normally refers to the way data is encoded and replicated across nodes to mitigate outright data loss as well as bit rot, their description states "You may lose roughly half the number of drives..." -- "drives" not "systems" or "nodes". This appears to be a single node solution, or have I overlooked the documentation describing how to join nodes together into a cluster? The description given is much more akin to RAID, which is fine and useful for distributing data across disks connected to a single system.

I hope that this is just an early announcement of a thing that is going to mature into a fully distributed solution, or that it is made clear that this is like SQLite (Minio is to AWS/S3 as SQLite is to RDBMS systems [PostgreSQL, Oracle, etc.]) -- something intended to be smaller in scope and single node only. Leaving this fuzzy will lead to many people being confused and potentially someone depending on this system and later dealing with massive data loss when their drive or drives fail.

Could the developers of Minio please make a statement as to which direction they intending on going? Is this a single node S3-API compatible solution (which is valuable for a specific class of problems) or something that will eventually be designed to store data across 10s/100s/1000s of nodes geographically distributed all working together to maintain some degree of availability and data integrity?

What's Minio going to be when it grows up? a) S3Lite b) S3

gregburd··on Jepsen: Testing Partition Tolerance of PostgreSQL, Redis, MongoDB, Riak (2013)
This is a much more recent presentation by Kyle (the author of the linked article) with a more mature version of his Jepsen tool. I imagine he'll get around to a written version of his findings soon, until then it's worth the time to watch this and learn a bit about distributed systems, databases and testing. https://www.youtube.com/watch?v=XiXZOF6dZuE
gregburd··on Learn C and build your own Lisp
My favorite small and understandable implementation of Lisp in C is by Ian Piumarta. [1]

[1] http://piumarta.com/software/lysp/

gregburd··on Wisp: Small-but-featureful embeddable Lisp interpreter written in Haskell
Lysp (http://piumarta.com/software/lysp/) is fairly close to what I'm guessing you're "pining" for and if not, hey it's open source so have at it!
gregburd··on Introducing Riak 2.0: Data Types, Strong Consistency, Full-Text Search
If you have a 1.4.2 cluster you can do a rolling upgrade to 2.0 without doing a "dump/restore". Please remember, this is a tech-preview, don't upgrade your production cluster to 2.0 until it's been released for production use. Feel free to test drive this preview, and if you do so please send us feeback! #disclaimer I work for Basho
gregburd··on Poll: How many Bitcoins do you own?
I think it's this facet of Bitcoin that's going to end up causing problems in the not too distant future. There will be an ever increasing number of "trapped" coins, BTC that belongs to someone who has abandoned it leaving it unused and thereby lowering the liquidity of the currency.

A potential solution would be to incorporate demurrage, which gradually reduces the value of currency the longer it's held, into the BTC algorithms. Essentially by encouraging the holders of a currency to use that currency you'd a) create a more fluid market and b) remove trapped value in some fixed amount of time. If you wanted to maintain a pool of BTC for a long time you'd simply cycle it between two addresses faster than the decay rate so that it's value wouldn't decay.

gregburd··on What Powers Instagram: Hundreds of Instances, Dozens of Technologies
You don't consider Amazon/S3 or Redis NoSQL databases?
gregburd··on Scaling Riak at Kiip
One key difference is that Riak will rebalance data across nodes as they are added or removed automatically, Cassandra will not. You have to manually adjust the partitioning of data, balancing it by hand.
gregburd··on Scaling Riak at Kiip
Great to hear that you're cutting over to Riak. We highly recommend that your minimum cluster size is your N value (replication value) + 2. I your case that likely means 5 nodes for your starting cluster, not 3. There are many reasons. http://basho.com/blog/technical/2012/04/27/Why-Your-Riak-Clu...
gregburd··on The Hoard Memory Allocator
Hoard is fine, but if we're going to start talking about various scalable memory allocators designed for concurrent, multi-core/cpu systems then...

libumem is the user space slab memory allocator first available in Solaris 9 (SunOS 5.4) now the default allocator on Solaris (and Illumos, SmartOS, OpenIndiana, etc.). There is a fork of libumem that has been ported to other popular operating systems, such as Linux, Windows and *BSD systems (including Darwin/OSX) by OmniTI (https://labs.omniti.com/labs/portableumem). I maintain a fork of portable libumem (https://github.com/gburd/libumem) that includes changes made by Joyent as part of their ongoing work to improve SmartOS.

I have deployed this allocator to dozens of production systems to improve the performance of highly concurrent memory-intensive applications (such as Riak) and found it to be an excellent, stable and fast allocator.

In addition to fast allocations it includes excellent statistics and memory leak detection (https://blogs.oracle.com/pnayak/entry/finding_memory_leaks_w...) as well as a few different allocator heap-fit algorithm choices.

It is licensed under the CDDL.

gregburd··on SQLite 3.7: WAL (Write Ahead Logging) for better Concurrency and Performance
I look forward to benchmarking the SQLite WAL against the newly integrated Berkeley DB and SQLite. Berkeley DB's btree is also a WAL design with many many years of tuning. It's good for SQLite users to have choice. (Disclaimer: I'm the product manager for Oracle Berkeley DB)