1.1--- a/examples/db/cl-simple-example.lisp Sun Dec 24 19:24:39 2023 -0500
1.2+++ b/examples/db/cl-simple-example.lisp Fri Dec 29 00:45:44 2023 -0500
1.3@@ -36,7 +36,7 @@
1.4 (:use :cl :std :cli :rdb :sb-alien :rocksdb)
1.5 (:export :main))
1.6
1.7-(in-package :exmaples/cl-simple-example)
1.8+(in-package :examples/cl-simple-example)
1.9 (declaim (optimize (speed 3)))
1.10
1.11 (defvar *num-cpus* (alien-funcall (extern-alien "sysconf" (function int int)) sb-unix:sc-nprocessors-onln)
2.1--- a/examples/db/mini-redis.lisp Sun Dec 24 19:24:39 2023 -0500
2.2+++ b/examples/db/mini-redis.lisp Fri Dec 29 00:45:44 2023 -0500
2.3@@ -2,14 +2,26 @@
2.4
2.5 ;; based on https://github.com/no-defun-allowed/concurrent-hash-tables/blob/master/Examples/phony-redis.lisp
2.6
2.7+;; if the heap gets exhausted you probably want to trying increasing
2.8+;; the dynamic-space-size at runtime.
2.9+
2.10 ;;; Code:
2.11-(require 'sb-concurrency)
2.12 (defpackage :examples/mini-redis
2.13 (:use :cl :std :net :obj :cli :sb-concurrency :sb-thread)
2.14- (:export))
2.15+ (:export :main))
2.16
2.17 (in-package :examples/mini-redis)
2.18
2.19+(defparameter *worker-count* 4)
2.20+(defparameter *writer-proportion* 0.5)
2.21+(defvar *keys*
2.22+ (loop for n below 130 by 2
2.23+ collect (format nil "~r" n)))
2.24+(defvar *other-keys*
2.25+ (loop for n from 1 below 128 by 2
2.26+ collect (format nil "~r" n)))
2.27+(defvar *ops* 400000)
2.28+
2.29 (defun make-server ()
2.30 (make-castable :test #'equal))
2.31
2.32@@ -26,12 +38,12 @@
2.33 (:quit (return))
2.34 (:get
2.35 (multiple-value-bind (val p)
2.36- (obj/hash:cgethash (cdr msg) server)
2.37+ (getchash (cdr msg) server)
2.38 (if p
2.39 (send-message rx `(:found ,val))
2.40 (send-message rx `(:not-found)))))
2.41 (:put
2.42- (setf (cgethash (cadr msg) server)
2.43+ (setf (getchash (cadr msg) server)
2.44 (copy-seq (caddr msg)))
2.45 (send-message rx '(:ok)))
2.46 (t (return))))))
2.47@@ -87,16 +99,6 @@
2.48 (setf position (mod (1+ position) 100))))
2.49 (close-conn conn)))
2.50
2.51-(defparameter *worker-count* 8)
2.52-(defparameter *writer-proportion* 0.5)
2.53-(defvar *keys*
2.54- (loop for n below 130 by 2
2.55- collect (format nil "~r" n)))
2.56-(defvar *other-keys*
2.57- (loop for n from 1 below 128 by 2
2.58- collect (format nil "~r" n)))
2.59-(defvar *ops* 10000000)
2.60-
2.61 (defun run (&optional (worker-count *worker-count*)
2.62 (writer-proportion *writer-proportion*)
2.63 (keys *keys*))
2.64@@ -120,7 +122,8 @@
2.65 internal-time-units-per-second)))
2.66 (throughput (/ (* *ops* worker-count) time)))
2.67 (format t "~&~20@a: ~$ seconds (~d transactions/second)"
2.68- "mini-redis" time (round throughput))))))
2.69+ "mini-redis" time (round throughput))))
2.70+ server))
2.71
2.72 (defmain ()
2.73- (run 4 1.0 *keys*))
2.74+ (run))
3.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000
3.2+++ b/examples/examples.asd Fri Dec 29 00:45:44 2023 -0500
3.3@@ -0,0 +1,9 @@
3.4+(defsystem :examples
3.5+ :depends-on (:std :cli :obj :dat :net :rdb)
3.6+ :components
3.7+ ((:file "vegadat")
3.8+ (:module "db"
3.9+ :components ((:file "cl-simple-example")
3.10+ (:file "mini-redis")
3.11+ (:file "tao")))))
3.12+
4.1--- a/examples/vegadat.lisp Sun Dec 24 19:24:39 2023 -0500
4.2+++ b/examples/vegadat.lisp Fri Dec 29 00:45:44 2023 -0500
4.3@@ -3,7 +3,7 @@
4.4 (:use :cl :std :net/fetch :dat)
4.5 (:export
4.6 :*vega-datasets* :*vega-dataset-base-url*
4.7- :fetch-vega-dataset))
4.8+ :fetch-vega-datasets :purge-vega-datasets))
4.9
4.10 (in-package :examples/vegadat)
4.11
5.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000
5.2+++ b/system-index.txt Fri Dec 29 00:45:44 2023 -0500
5.3@@ -0,0 +1,2 @@
5.4+demo.asd
5.5+examples/examples.asd