1
0
Commit Graph

40 Commits

Author SHA1 Message Date
Matt Keller
d600e983c2 For inclusion with upstream projection, Cache.New() has been reverted to
its former argument list, and Cache.NewWithLRU() as been added to allow
setting maxItems. cache_test has also been reverted.
2015-03-09 08:17:46 -04:00
Matt Keller
f66ee0bbc6 Injected LRU capabilities that simply:
* ensures that when an item is added, if the number of unexpired items
>= maximum number of items specified, the oldest (based on ACCESS) is
expired
* when an item is "gotten", or "set", the access time is updated

The existing janitor system is unchanged, and used to actually delete
the items.

The only change from a consumer standpoint, is one addition parameter at
the end of a "New" call, that specifies the maximum number of items to
allow, or 0, if you want to disable the LRU at all.
2015-02-27 15:57:16 -05:00
Patrick Mylund Nielsen
03284ca422 Replace sharded hash function/misc mods 2014-12-22 10:37:59 -05:00
Patrick Mylund Nielsen
8a2f4f19ef go fmt 2014-12-22 02:48:52 -05:00
Patrick Mylund Nielsen
46827c6a61 Add NoExpiration and DefaultExpiration constants and use them (thanks to Jason Mooberry) 2014-12-22 01:46:22 -05:00
Patrick Mylund Nielsen
73a30b2033 Add NewFrom, and deprecate Save, SaveFile, Load, and LoadFile 2014-12-22 01:12:10 -05:00
Patrick Mylund Nielsen
2fb27e8369 Change the names of the MutexMap benchmarks to RWMutex to clarify the changes to the map benchmarks and the cache itself 2013-06-30 20:40:26 -04:00
Patrick Mylund Nielsen
155ab21e5d Use an RWMutex in the cache-equivalent map tests now that the cache uses one 2013-06-30 20:31:46 -04:00
Patrick Mylund Nielsen
c9f5754801 Add O(1) ItemCount method to retrieve items currently in the cache map (whether expired and not cleaned up or not) 2013-04-18 14:32:01 -04:00
Patrick Mylund Nielsen
d5d03c28d4 Add specialized increment and decrement methods 2013-04-18 14:24:30 -04:00
Patrick Mylund Nielsen
9cc10f6f2f Use a type switch instead, and Use unexported NewSharded in test 2012-08-17 11:35:20 +02:00
Patrick Mylund Nielsen
15cda21ff4 Add an interface, embed the mutex, and unexport some unnecessarily exported fields 2012-07-04 19:34:37 +01:00
Patrick Mylund Nielsen
52c269d8ae Testing a sharded cache. Could be useful for massively parallel applications 2012-06-22 09:24:09 +01:00
Patrick Mylund Nielsen
0f0584a805 Fix BenchmarkCacheSetDeleteSingleLock 'cheating' by unintentionally only locking once in the whole benchmark, rather than once per set and delete 2012-06-22 06:52:32 +01:00
Patrick Mylund Nielsen
803ceeaf1a Use runtime.numCPU() workers in concurrent benchmarks, remove pointless benchmarks for racy maps, and add replacement benchmarks using mutexed maps 2012-06-22 03:06:06 +01:00
Dustin Sallings
fbcdb10061 Don't overparallelize the concurrent test. 2012-06-21 17:36:24 -07:00
Patrick Mylund Nielsen
84d15102eb Add test for concurrent cache.Get 2012-02-21 18:46:25 +01:00
Patrick Mylund Nielsen
91bd4334f1 Don't use defer for mutex unlocking (it currently adds ~200ns) 2012-02-17 01:40:55 +01:00
Patrick Mylund Nielsen
39b4f413a1 Don't format in t.Error() 2012-02-13 21:37:17 +01:00
Patrick Mylund Nielsen
6660155e6c gofmt 2012-02-12 01:54:16 +01:00
Patrick Mylund Nielsen
b95b9110a4 Get ready for Go1 2012-02-12 00:15:25 +01:00
Patrick Mylund Nielsen
eaf2373adf Add a test for file serialization and one to ensure objects expire even after having been serialized and reloaded 2012-01-29 05:30:35 +01:00
Patrick Mylund Nielsen
07aec145ba Add another child in structception test just to make sure 2012-01-29 04:43:26 +01:00
Patrick Mylund Nielsen
132462db11 Added test for structs within structs 2012-01-29 04:35:47 +01:00
Patrick Mylund Nielsen
d5cd41da53 Note about channels being unserializable 2012-01-29 04:04:33 +01:00
Patrick Mylund Nielsen
98c2ce9eb4 Cache serialization 2012-01-29 03:16:59 +01:00
Patrick Mylund Nielsen
e5b84e20fc Overflow/underflow tests 2012-01-04 10:48:21 +01:00
Patrick Mylund Nielsen
ac4bda9dea BenchmarkCacheSetDeleteSingleLock to get an idea of mutex impact 2012-01-04 10:06:31 +01:00
Patrick Mylund Nielsen
e46251e025 A few benchmarks vs. normal maps 2012-01-04 09:55:32 +01:00
Patrick Mylund Nielsen
9e6775b151 Back to weekly 2012-01-04 09:11:27 +01:00
Patrick Mylund Nielsen
62a061f1f4 Add/Replace atomicity for r60.3 2012-01-04 09:09:39 +01:00
Patrick Mylund Nielsen
c6060554ee Back to following weekly 2012-01-04 08:07:50 +01:00
Patrick Mylund Nielsen
1f826dd9de Compatability with 60.3 2012-01-04 07:54:23 +01:00
Patrick Mylund Nielsen
c84223dab4 Typo 2012-01-02 17:26:17 +01:00
Patrick Mylund Nielsen
746fe067c4 Delete and Flush tests 2012-01-02 14:18:25 +01:00
Patrick Mylund Nielsen
ca7e0d4f78 gofmt and redundant 'if it was enabled' 2012-01-02 14:11:17 +01:00
Patrick Mylund Nielsen
a78bca69e4 Added Add and Replace commands 2012-01-02 14:04:47 +01:00
Patrick Mylund Nielsen
2a304e4c5c Added Increment/Decrement 2012-01-02 13:52:43 +01:00
Patrick Mylund Nielsen
848f8b6c3a Clarification about storing pointers; renamed Purge to Flush (like Memcache) 2012-01-02 11:32:05 +01:00
Patrick Mylund Nielsen
3088a9aad8 Initial commit 2012-01-02 11:01:04 +01:00