summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xmain.hs14
1 files changed, 10 insertions, 4 deletions
diff --git a/main.hs b/main.hs
index 5750c15..1d06dd8 100755
--- a/main.hs
+++ b/main.hs
@@ -240,15 +240,21 @@ postNumberR = do
caller <- liftIO $ update db $ AddCaller _name _number _context
sendStatusJSON status200 $ caller
--- | This takes a while; it's doing like 200 records per second. It's IO bound,
--- and in an un-optimized program GHC on Linux uses a single, blocking IO
--- manager thread (on Windows it's non-blocking, apparently). This can be
+-- | This takes a while; on my machine it averages 181 records per second. It's
+-- IO bound, and in an un-optimized program GHC on Linux uses a single, blocking
+-- IO manager thread (on Windows it's non-blocking, apparently). This can be
-- improved with the Control.Concurrent module, it which case we could launch as
--- many IO threads as we want, and do probably 10k records per second.
+-- many IO threads as we want, and do probably 10k records per second. There's
+-- definitely an optimal amount of threads here, we'd have to test to find that.
--
-- HOWEVER, you can watch it bootstrap. Hit this endpoint, then use "GET /count"
-- to see it updating. New POSTs will also work and update the database, even
-- while it is bootstrapping, which is kinda cool.
+--
+-- Try this in bash:
+--
+-- while sleep 1; do curl -s "localhost:3000/count" | jq '.count'; done
+--
postBootstrapR :: Handler RepJson
postBootstrapR = do
$logInfo "Initializing the database."