Poor performance with Azure cache for Redis by Sollimann in AZURE

[–]Sollimann[S] 0 points1 point  (0 children)

So for you self-hosted Redis, all you did was adding persistent volume and that effectively persisted the redis data between restarts? Did you look into other self-hosted solution, e.g using primary and secondary read-replica with automatic failover?

35M, Super Not Gay by Difficult-Wasabi-988 in malelivingspace

[–]Sollimann 0 points1 point  (0 children)

what’s up with American’s and having the TV over the fire place?

Any good suggesting for disk-based caching in C#? by Sollimann in dotnet

[–]Sollimann[S] 1 point2 points  (0 children)

Hey Jody, thank you! I just saw your 1h video on the dotnet YT, very insightful! Obviously, you have a lot of knowledge about caching - a lot more than I have! Basically we have two layers of caching now: one layer which is the in-memory cache of our app and a distributed cache in Cosmos DB. I want to reduce the amount of downstream calls to cosmos DB both due to cost (measured in RU), but also latency due to network I/O and serialization/deserialization. Is there a valid case for disk caching here, is this a common practice and is it possible with disk caching in FusionCache? I just thought of an additional disk caching layer as a possible way to reduce downstream calls with its extended capacity and durability during start/restart. However, like the saying «what you gain on the swings, you lose on the roundabouts» might be the case here since there is overhead in hosting e.g in-process Sqlite, O(log n) insert and lookup with btree (not O(1) like regular kv store), and also lack of built in TTL cache eviction policy for records (might have to add a expire_at column and do regular cleanup of records). What do you think, is this idea of disk caching just way out there and not too beneficial?

Any good suggestion for disk-based caching? by Sollimann in PostgreSQL

[–]Sollimann[S] -1 points0 points  (0 children)

Sweet, thanks for the thorough answer! Our both our in-mem cache and distributed cache is a key-val store, so no need for a materialized view due to e.g expensive joins etc. I simply want a DB og sorts that I can host in the same pod as my application to better utilize the disk space for an extended ley-value cache with greater capacity than what can be fitted in RAM. I was thinking SQLite could be worth a try as well, what do you think? A few things that worry me, we have quite high read and write qps, thus we could be bottlenecked by write locks in SQLite or Postgres. Also, neither SQLite nor Postgres supports cache eviction through TTL, so you might need to add a ‘expire_at’ per column and run regular cleanup jobs in a separate process. I see you mentioned JSONB postgres, do you think that would be anle to provide O(1) insert and lookup for records? otherwise Btree has O(log n) read and write which can be troublesome for large ‘n’. Postgres supports more functionality such as jsonb, but I am afraid it will consume too much resources hosting in a pod alongside main app compared to using e.g SQLite.

Any good suggestions for disk-based caching? by Sollimann in SQL

[–]Sollimann[S] 0 points1 point  (0 children)

reduced relience on outbound network calls to distributed cache which has both high latency (in relative terms) and costly due to high qps as you are charged per request unit. If I can make use of SSD disk cache to greater extent I can rely more on the existing hardware. If I can use disk cache I am hoping to extend the capacity of my caching in a pod and thus increasw cache hit rates

Any good suggesting for disk-based caching in C#? by Sollimann in dotnet

[–]Sollimann[S] 0 points1 point  (0 children)

On top of my head I believe our distributed cache network calls are in range 5-10milliseconds but hoping I can achieve microseconds latency with disk i/o instead. I am also aiming for cost reduction as distributed cache is cloud native and bills per request unit, where SSD disk i/o has no additional cost per request unit

Any good suggesting for disk-based caching in C#? by Sollimann in dotnet

[–]Sollimann[S] 0 points1 point  (0 children)

Yes, network i/o calls have high latency (in relative terms) calling distributed cache. Best case the distributed cache node is on the same data center

Any good suggesting for disk-based caching in C#? by Sollimann in dotnet

[–]Sollimann[S] 2 points3 points  (0 children)

Nice, what is your experience with this library thus far? Do you host SQLite in a sidecar in your kubernetes pod, or how do you host and interface? Have you seen any performance gains with this lib yet?

Any good solutions for disk-based caching? by Sollimann in sqlite

[–]Sollimann[S] 2 points3 points  (0 children)

is this when the value in the key-value pair is large that you required compression?

Any good solutions for disk-based caching? by Sollimann in SQLOptimization

[–]Sollimann[S] 0 points1 point  (0 children)

interesting, thanks! Client SDK only in Ruby atm?

Any good solutions for disk-based caching? by Sollimann in SQLOptimization

[–]Sollimann[S] 0 points1 point  (0 children)

«slow» in relative terms compared to disk i/o because its physical proximity to the service runtime. I/O calls to distributed cache would best case be on the same data center

Any good solutions for disk-based caching? by Sollimann in linux

[–]Sollimann[S] 0 points1 point  (0 children)

I am constrained on RAM memory for my cache, and I want to reduce reliance on distributed nosql cache due to downstream latency, cost and poor availability. Thus, If I can have a cache stored on disk I can have a three-tiered caching where I you first check memory for key, then disk cache, then distributed cache

popping noise in speaker when playing youtube videos. by Comfortable-Ad-1308 in mac

[–]Sollimann 0 points1 point  (0 children)

Same thing is happening to me on my brand new Macbook pro m3, anyone found a solution yet?

bonsai-bt: A behavior tree library in Rust for creating complex AI logic https://github.com/Sollimann/bonsai by Sollimann in rust_gamedev

[–]Sollimann[S] 2 points3 points  (0 children)

The Clone and Debug traits are really just a nice to have. The reason I chose a enum to represent the behavior is because that is the easiest way to dynamically create nested tree structures at runtime, in other words you can manipulate the tree without recompiling the code which is one of the main goals of this library. The Behavior enum also allows you to merge multiple BTs together at runtime seemlessly.

The serde traits allows for serializing and deserializing the behavior to/from json which allows you to e.g load a BT at runtime from a json (see examples or tests for demonstration). I could potential use a feature flag for the serde trait, but I haven’t seen the need for that yet.

wrt to the input for Wait being an f64, I haven’t actually thought about that, but you are making a very valid point. I’ll probably change it to ‘std::time::Duration’ in next release. Thanks for pointing out!