changelog shortlog graph tags branches files raw help

Mercurial > demo / changeset: examples

changeset 38: 8259376eee11
parent 37: c6d0a37a046a
child 39: 1ef551e24009
author: ellis <ellis@rwest.io>
date: Fri, 29 Dec 2023 00:45:44 -0500
files: examples/db/cl-simple-example.lisp examples/db/mini-redis.lisp examples/examples.asd examples/vegadat.lisp system-index.txt
description: examples
     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