I confronted a similar caching requirement (in my case the cache needs to be much larger) in Java recently and chose to implement off-heap for some of the reasons you mention. It avoids GC and heap size concerns entirely and makes it easy to tune the rest of the application's GC profile. Systems handles 45k writes/sec and about double that for reads with very low latency minimal CPU. Implementing concurrent writes/eviction without typical Java concurrency controls was a bit tricky though.
Wondering what your use case is for such a large cache that is not clustered (unless I misunderstood the code). Both in terms of single process dying = lost 10gb of data and also what single process needs a 10gb cache. I do see ability to read from disk listed.
How would you compare your cache to open source data grids that also provide off heap (infinispan, geode/gemfire, ignite) or just other general cache solutions (redis/memcache)?
The use case in mainly deduplication of a high volume data stream (though it's got a few other uses). The write volume is fairly stable so it's sized in such away that we'll never emit dupes even when the upstream source crashes and needs to be rebuilt from backups (for this case that means > a billion cache entries). Something like the opposite of a bloom filter (https://www.somethingsimilar.com/2012/05/21/the-opposite-of-...) didn't work because we don't want false negatives either. Since the cache is fed by a Kafka log HA is achieved simply by having multiple consumers individually populating their own cache instance. The persistence mechanisms are to allow for code deployments that don't blow away the cache, not HA.
We actually experimented with grid caches (ignite in particular since it offers off-heap in memory storage as well), but the performance simply isn't there. At the volume we're writing even millisecond latency is a non-starter. We did explore both memcached and redis, but we need strict FIFO and both of those solutions provide nondeterministic LRU.
An important difference with the web is the barrier to entry. Testing an idea for the web is orders of magnitude cheaper (time and money) than an idea for an app.
What's the difference between the two? Wouldn't all viruses be considered malware? Is there some standard that the software has to live up to to be labeled antivirus?
Viruses infect executable files (or other files that can potentially contain executable code) while non-virus malware infects machines, browsers, or other types of "hosts".
They were never making money off the pirates anyway. This way they can get more people on their services, on a more secure OS that will be evergreen, potentially paying for extras, and at the very least helping their ML algos.
The "intellectuals" who watch sports are interested in strategy. This encompasses on field strategy, personnel choices, and beyond.
The fact that you ignored (or are ignorant of) this side of sports tells me that you've not actually had much practice "making conversation or building rapport" around sports.
Apple's laptop division and the appeal of OSX have very little to do with these revenue numbers. At 6.9B Mac sales are only a few multiples of Microsoft's fledgling Surface business, let alone the laptop market in general.
Is it? It quotes Altman as saying, "Going way out of our way to invite people to apply who don't fit the stereotypical start-up mold has worked really well for us."
Sounds exactly like they're just attempting to cast a wider net. Any other implications you took from that weren't from the article.
Project is here for those interested: https://github.com/Maascamp/fohlc