sm
/
cache
1
0
Fork 0
Commit Graph

80 Commits

Author SHA1 Message Date
Patrick Mylund Nielsen afadf13f9f Back to UnixNano(), syscall dependency isn't worth a few nanoseconds better performance 2015-11-30 15:12:19 -05:00
Patrick Mylund Nielsen 2f0c74ebb8 Use intermediary timevals 2015-11-30 15:02:02 -05:00
Patrick Mylund Nielsen 01842a547c Use timevals 2015-11-30 14:47:22 -05:00
Patrick Mylund Nielsen 1924ec3baf Remove expired() since it's no longer used (because of the inlining) 2015-11-30 14:14:52 -05:00
Patrick Mylund Nielsen 8084bd02b5 Inline expiration checks manually for performance 2015-11-30 14:12:45 -05:00
Patrick Mylund Nielsen eb4f9f6b2f Use UnixNano int64s instead of Time 2015-11-30 13:54:01 -05:00
Patrick Mylund Nielsen 31c7be0bed 'Inline' Get and Expired 2015-11-30 13:50:17 -05:00
Patrick Mylund Nielsen 4e0d34ef00 Only get the current time once in the DeleteExpired loop 2015-11-30 13:39:27 -05:00
Patrick Mylund Nielsen 901b2413ee Improve cache locality by removing Item-related pointers 2015-11-28 14:47:46 -05:00
Patrick Mylund Nielsen ac0fcef49b Clarify that the OnEvicted function isn't called when an item is overwritten 2015-11-28 12:27:08 -05:00
Patrick Mylund Nielsen 3f2c810ea1 Add OnEvicted() 2015-11-27 22:00:08 -05:00
Patrick Mylund Nielsen a0136a8980 Don't expose the cache mutex 2015-11-27 13:03:24 -05:00
Fabian Ruff fe045e4040 Fix leaking the janitor ticker when shutting down 2015-10-13 12:55:54 +02:00
Patrick Mylund Nielsen 8a2f4f19ef go fmt 2014-12-22 02:48:52 -05:00
Patrick Mylund Nielsen e3a846e1f9 Clarify what NoExpiration and DefaultExpiration are 2014-12-22 02:47:08 -05:00
Patrick Mylund Nielsen a1dd6b7fff s/NewFrom/NewFrom()/ in NewFrom doc 2014-12-22 02:39:59 -05:00
Patrick Mylund Nielsen 9ea75a8586 s/NewFrom/NewFrom()/ in Load/LoadFile/Save/SaveFile docs 2014-12-22 02:37:46 -05:00
Patrick Mylund Nielsen 873e78f0db s/gob.Register/gob.Register()/ in NewFrom doc 2014-12-22 02:30:02 -05:00
Patrick Mylund Nielsen bc36de7dec Clarify NewFrom documentation on use cases 2014-12-22 02:15:12 -05:00
Patrick Mylund Nielsen d68800e607 s/with the same caveats/subject to the same caveat/ in NewFrom doc 2014-12-22 02:09:42 -05:00
Patrick Mylund Nielsen 887753fa90 Refer to DeleteExpired as c.DeleteExpired() 2014-12-22 02:06:10 -05:00
Patrick Mylund Nielsen 888f396121 Update NewFrom doc to be consistent with New 2014-12-22 02:04:11 -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 ffd0b9e3ec Move the unexportedShardedCache to sharded.go 2014-12-22 00:24:49 -05:00
Patrick Mylund Nielsen 6ea7e6fb42 Remove the pointless unexportedInterface 2014-12-22 00:12:48 -05:00
Patrick Mylund Nielsen 7d1d6d6ae9 Note about needing explicit synchronization if you want to use the returned items map and its cache at the same time 2013-08-08 15:10:54 -04:00
Patrick Mylund Nielsen e91e36d111 ItemCount() is equivalent to len(c.Items()), not len(c.Items) 2013-08-08 14:54:03 -04:00
Patrick Mylund Nielsen fd89281dfd s/field/fields/ 2013-08-08 14:53:24 -04:00
Patrick Mylund Nielsen f8cc27acbc Export Item wrapping type, and add an Items() method to cache 2013-08-08 14:53:02 -04:00
Patrick Mylund Nielsen baa5a64da4 Revert 3986bff for now 2013-06-30 22:05:40 -04:00
Patrick Mylund Nielsen 3986bff69b Don't keep the read lock after traversing the items map (before saving to the io.Writer) in Save 2013-06-30 20:20:38 -04:00
Patrick Mylund Nielsen 5388b25b3b Use an RWMutex instead of a Mutex, making Get a read operation only (this slightly changes the eviction behavior: lookup doesn't completely expunge an expired item, but the janitor still will at the next cleanup.) Also, use the same RWMutex in Load and Save (thanks, Alan Shreve) 2013-06-30 20:11:57 -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
Sergey Shepelev a768a84319 Save/LoadFile must close file 2012-09-19 03:25:42 +04:00
Patrick Mylund Nielsen b3a957a46c Handle float64 and int64 Increment/Decrement separately, and don't use Increment(-n) in Decrement to support uints 2012-08-17 13:39:02 +02: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 13225a8ae4 Unexport the shardedcache interface and implementation until both the API and implementation are solid 2012-08-17 11:32:24 +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 bf97a87cc7 Cleaner bucket selection 2012-06-22 09:33:27 +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 0a962bf9eb Keep the same tense in docstrings, and remove a little ambiguity 2012-06-22 04:24:48 +01:00
Patrick Mylund Nielsen 8f6294df58 Remove unused Version const 2012-06-22 04:10:33 +01:00
Patrick Mylund Nielsen 026efae39f Stay below 80 chars in width 2012-06-22 03:56:12 +01:00
Patrick Mylund Nielsen 724bd0e963 Move comment explaining the manual mutex unlocking down to the first place where we actually do it 2012-06-22 03:51:34 +01:00
Patrick Mylund Nielsen aa7f52c169 Be clearer about the defaults, <80 width for the janitor comment, and remove 'default cleanup interval' -- there can be only one 2012-06-22 03:50:10 +01:00
Patrick Mylund Nielsen 8495026156 c can be collected. It isn't necessarily (right after) 2012-06-22 03:44:04 +01:00
Patrick Mylund Nielsen 74f0b20353 Don't fmt.Println warning if gob.Register fails--just return an err 2012-02-23 04:16:42 +01:00
Patrick Mylund Nielsen 8805e79189 Properly handle Gob panic 2012-02-19 01:21:07 +01:00