/[rucksack]/rucksack/cache.lisp
ViewVC logotype

Log of /rucksack/cache.lisp

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Sticky Tag:

Revision 1.16 - (view) (annotate) - [select for diffs]
Wed May 27 14:26:25 2009 UTC (4 years, 10 months ago) by alemmens
Branch: MAIN
CVS Tags: HEAD
Changes since 1.15: +3 -15 lines
Diff to previous 1.15
* 2009-05-27 - version 0.1.20

Fix a bug in the creation of transaction-ids (bug reported by Klaus Harbo).

Revision 1.15 - (view) (annotate) - [select for diffs]
Mon Feb 11 12:47:52 2008 UTC (6 years, 2 months ago) by alemmens
Branch: MAIN
Changes since 1.14: +26 -4 lines
Diff to previous 1.14
Version 0.1.16: improved performance by decreasing persistent consing for btrees
and using a lazy-cache.  Fixed some small bugs.  Added a few handy functions and
macros.

In detail:

Added P-PUSH and P-POP.

Improved btree efficiency by switching to a different data structure
for the bindings.  Instead of using a persistent cons for each key/
value pair, we now put the keys and values directly into the bnode
vector.  This speeds up most btree operations because it reduces
persistent consing when adding new values and it reduces indirections
when searching for keys.

Renamed BTREE-NODE to BNODE, BTREE-NODE-INDEX to BNODE-BINDINGS,
BTREE-NODE-INDEX-COUNT to BNODE-NR-BINDINGS, FIND-BINDING-IN-NODE to
FIND-KEY-IN-NODE.

Fix a missing argument bug in REMOVE-CLASS-INDEX.

Added a LAZY-CACHE which just clears the entire hash table whenever
the cache gets full.  This improves memory usage, because the normal
cache queue kept track of a lot of objects that for some reason
couldn't be cleaned up by the implementation's garbage collector.

Added the convenience macros RUCKSACK-DO-CLASS and RUCKSACK-DO-SLOT.

Made RUCKSACK-DELETE-OBJECT an exported symbol of the RUCKSACK
package.

Fix a bug in TEST-NON-UNIQUE-BTREE: it should call
CHECK-NON-UNIQUE-CONTENTS instead of CHECK-CONTENTS.

Revision 1.14 - (view) (annotate) - [select for diffs]
Sun Feb 3 12:32:15 2008 UTC (6 years, 2 months ago) by alemmens
Branch: MAIN
Changes since 1.13: +14 -5 lines
Diff to previous 1.13
Version 0.1.15.

Fixed a garbage collector bug reported by Sean Ross. When the garbage
collector deletes object ids from the object table (because the
objects are dead and we may want to reuse their ids later for other
objects), it should also remove that object from the cache.  If it
doesn't, there's a possibility that the object id will be reused later
for a new object and the cache wil still refer to the old in-memory
object.

Revision 1.13 - (view) (annotate) - [select for diffs]
Thu Jan 31 20:26:08 2008 UTC (6 years, 2 months ago) by alemmens
Branch: MAIN
Changes since 1.12: +2 -2 lines
Diff to previous 1.12
Version 0.1.14.

Class and slot indexes now map directly to objects instead of
object-ids.  This fixes a bug where the garbage collector forgot
to add all indexed objects to the root set. (Suggested by Sean
Ross.)

Increased default cache size to 100,000 objects.

Revision 1.12 - (view) (annotate) - [select for diffs]
Sat Jan 20 18:17:55 2007 UTC (7 years, 2 months ago) by alemmens
Branch: MAIN
Changes since 1.11: +488 -488 lines
Diff to previous 1.11
Version 0.1.5: removed ^M line terminators from all source files
(thanks to Attila Lendvai).

Revision 1.11 - (view) (annotate) - [select for diffs]
Fri Sep 1 13:57:06 2006 UTC (7 years, 7 months ago) by alemmens
Branch: MAIN
Changes since 1.10: +3 -3 lines
Diff to previous 1.10
Get rid of the Lispworks specific PROCESS-A-SLOT-OPTION stuff and handle
the slot options in a way that's compatible with AMOP.

Remove INITARGS argument for UPDATE-PERSISTENT-INSTANCE-FOR-REDEFINED-CLASS,
because it turns out to be unnecessary (see details in notes.txt)

Add explanation to test-index-1a.lisp about the use of
  (eval-when (:compile-toplevel :load-toplevel :execute) ...)

Replace *RUCKSACK* by RS in the test-*.lisp files.

Revision 1.10 - (view) (annotate) - [select for diffs]
Thu Aug 24 15:21:25 2006 UTC (7 years, 7 months ago) by alemmens
Branch: MAIN
Changes since 1.9: +20 -18 lines
Diff to previous 1.9
The class and slot indexes were normal hash tables, but they should be
persistent objects like everything else: I replaced them by btrees.

Get PROCESS-LOCK and PROCESS-UNLOCK working on SBCL (thanks to Geoff Cant).

Revision 1.9 - (view) (annotate) - [select for diffs]
Thu Aug 10 12:36:16 2006 UTC (7 years, 8 months ago) by alemmens
Branch: MAIN
Changes since 1.8: +12 -3 lines
Diff to previous 1.8
Do a FINISH-OUTPUT at the end of a transaction commit (suggested by Marco Baringer).

Add :KEY-KEY and :VALUE-KEY initargs to btrees.

Add some standard slot indexes.

Add :UNIQUE initarg for persistent slots (not finished yet).

Revision 1.8 - (view) (annotate) - [select for diffs]
Fri Aug 4 10:37:59 2006 UTC (7 years, 8 months ago) by alemmens
Branch: MAIN
Changes since 1.7: +20 -3 lines
Diff to previous 1.7
Use Erik Naggum's SANS function instead of REMF.  (From Edi Weitz.)

Revision 1.7 - (view) (annotate) - [select for diffs]
Thu Aug 3 18:37:50 2006 UTC (7 years, 8 months ago) by alemmens
Branch: MAIN
Changes since 1.6: +22 -4 lines
Diff to previous 1.6
Ensure unique transaction IDs (from Edi Weitz).

Revision 1.6 - (view) (annotate) - [select for diffs]
Thu Aug 3 10:59:52 2006 UTC (7 years, 8 months ago) by alemmens
Branch: MAIN
Changes since 1.5: +3 -2 lines
Diff to previous 1.5
Replace free-list-full by free-list-empty. Fix bug in find-block. (From Edi Weitz)

Revision 1.5 - (view) (annotate) - [select for diffs]
Sat May 20 21:16:58 2006 UTC (7 years, 10 months ago) by alemmens
Branch: MAIN
Changes since 1.4: +6 -16 lines
Diff to previous 1.4
Some more work towards getting a working GC.  Also removed some dead code.

Revision 1.4 - (view) (annotate) - [select for diffs]
Sat May 20 20:25:32 2006 UTC (7 years, 10 months ago) by alemmens
Branch: MAIN
Changes since 1.3: +2 -2 lines
Diff to previous 1.3
Finish CACHE-TOUCH-OBJECT patch (hopefully for real this time).

Revision 1.3 - (view) (annotate) - [select for diffs]
Sat May 20 15:07:28 2006 UTC (7 years, 10 months ago) by alemmens
Branch: MAIN
Changes since 1.2: +10 -12 lines
Diff to previous 1.2
Let CACHE-TOUCH-OBJECT have an object instead of an object-id as parameter.
(From Nikodemus Siivola.)

Revision 1.2 - (view) (annotate) - [select for diffs]
Tue May 16 22:01:27 2006 UTC (7 years, 11 months ago) by alemmens
Branch: MAIN
Changes since 1.1: +1 -1 lines
Diff to previous 1.1
Some trivial CVS header changes.

Revision 1.1 - (view) (annotate) - [select for diffs]
Tue May 16 21:16:34 2006 UTC (7 years, 11 months ago) by alemmens
Branch: MAIN
Created Rucksack CVS repository on common-lisp.net.

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5