Skip Navigation
Garnet: A faster cache store drop in replacement for Redis
  • Holy shit that's completely wrong.

    It's for sure AI generated articles. Time to block softonic.

  • Things You Should Never Do, Part I (2000)
  • This is a weird take given that the majority of projects relevant to this article are massive projects with hundreds or thousands of developers working on them, over time periods that can measure in decades.

    Pretending those don't exist and imagining fantasy scenarios where all large projects are made up of small modular pieces (while conveniently making no mention to all of the new problems this raises in practice).

    Replace functions replace files and rewrite modules, that's expected and healthy for any project. This article is referring to the tendency for programmers to believe that an entire project should be scrapped and rewritten from scratch. Which seems to have nothing to do with your comment...?

  • Things You Should Never Do, Part I (2000)
  • This thread is a great example to why despite sharing knowledge we continually fail to write software effectively.

    The person you're arguing with just doesn't get it. They have their own reality.

  • How do you manage code snippets?
  • I have a weird knack for reverse engineering, and reverse engineering stuff I've written 7-10 years ago is even easier!

    I tend to be able to find w/e snippet I'm looking for fast enough that I can't be assed to do it right yet 😆

  • Redis is no longer OSS
  • That's one of the selling points, yep

  • Garnet: A faster cache store drop in replacement for Redis
  • To be fair Microsoft has been working on Garnet for something like 4+ years and have already adopted it internally to reduce infrastructure costs.

    Which has been their MO for the last few years. Improve .Net baseline performance, build high performance tools on top of it, dog food them, and then release them under open source licenses.

  • Garnet: A faster cache store drop in replacement for Redis
    www.microsoft.com Garnet–open-source faster cache-store speeds up applications, services

    Garnet is a cache-store system that addresses growing demand for data storage to support interactive web applications and services. Offering several advantages over legacy cache-stores, Garnet is now available as an open-source download.

    Garnet–open-source faster cache-store speeds up applications, services

    GitHub: https://github.com/microsoft/garnet

    Just saw this today and I am pretty stoked. It's just a drop in replacement and performs > 10x faster under workloads with many client connections. Not that I found redis slow, but in Enterprise workloads that's a lot of money saved. $50k Garnet clusters handling similar workloads for $5k would be significant.

    It being essentially entirely written in C# makes it pretty easy to read, understand, contribe to, and extend. Custom functions in C# have a pretty low barrier to entry.

    I get that there's probably going to be a lot of hate just because this is released by Microsoft developers.... But in my opinion the C# ecosystem is one of the best to build on.

    7
    Redis is no longer OSS
  • Great timing that Microsoft just released a drop-in replacement that's in order of magnitude faster: https://github.com/microsoft/garnet

    Written in C# too, so it's incredibly easy to extend and write performant functions for.

    It needs to be a bit more deployable though but they only just opened the repo, so I'll wait.

  • How IT People See Each Other
  • The designers as seen by designers is so right.

    Nothing they come up with can be wrong, it's all innovative!!

  • Linux and Winforms
  • .Net 8 will work on Linux just fine. But winforms will not, it's specifically a legacy windows-only UI framework.

    You're going to have to jump through some incredible hoops to get it to work on Linux. Which are definitely not part of your normal curriculum.

  • Linux and Winforms
  • C# on non-Windows is not impossible, but it's going to require effort infeasible for school projects like that one.

    You mean winforms (The windows specific UI) on non-Windows? Otherwise this is incredibly misleading, and plain wrong.

    C# in non windows is the norm, the default even, these days. I build, compile, and run, my C# applications in linux , and have been for the last 5+ years.

  • .NET MAUI
  • IMHO it's unnecessary at this juncture, and further fragments already vastly under engaged communities (.Net & C#)

    Posts about .Net & friends fit into the .Net community. It's not so busy that a new community needs to break off to direct traffic & posts to.


    This is actually a common failing point/pain point for low traffic or "growing phase" communities & platforms. Fragmentation reduces engagement, and below a certain threshold it just straight dies. Avoiding unnecessary fragmentation until such time as it serves a purpose helps communities grow faster.

    To highlight this: the number of mods you are suggesting this community should have to handle TZ coverage is more than the average number of comments on posts in the .Net community today...

  • How do you manage code snippets?
  • I go full chaos and look up where I last used it when I need a snippet...

  • me_irl
  • The follow on. Lots and LOTS of unrelated changes can be a symptom of an immature codebase/product, simply a new endeavor.

    If it's a greenfield project, in order to move fast you don't want to gold plate or over predictive future. This often means you run into misc design blockers constantly. Which often necessitate refactors & improvements along the way. Depending on the team this can be broken out into the refactor, then the feature, and reviewed back-to-back. This does have it's downsides though, as the scope of the design may become obfuscated and may lead to ineffective code review.

    Ofc mature codebases don't often suffer from the same issues, and most of the foundational problems are solved. And patterns have been well established.

    /ramble

  • me_irl
  • There is no context here though?

    If this is a breaking change to a major upgrade path, like a major base UI lib change, then it might not be possible to be broken down into pieces without tripping or quadrupling the work (which likely took a few folks all month to achieve already).

    I remember in a previous job migrating from Vue 1 to Vue 2. And upgrading to an entirely new UI library. It required partial code freezes, and we figured it had to be done in 1 big push. It was only 3 of us doing it while the rest of the team kept up on maintenance & feature work.

    The PR was something like 38k loc, of actual UI code, excluding package/lock files. It took the team an entire dedicated week and a half to review, piece by piece. We chewet through hundreds of comments during that time. It worked out really well, everyone was happy, the timelines where even met early.

    The same thing happened when migrating an asp.net .Net Framework 4.x codebase to .Net Core 3.1. we figured that bundling in major refactors during the process to get the biggest bang for our buck was the best move. It was some light like 18k loc. Which also worked out similarly well in the end .

    Things like this happen, not that infrequently depending on the org, and they work out just fine as long as you have a competent and well organized team who can maintain a course for more than a few weeks.

  • me_irl
  • Just a few hundred?

    That's seems awfully short no? We're talking a couple hours of good flow state, that may not even be a full feature at that point 🤔

    We have folks who can push out 600-1k loc covering multiple features/PRs in a day if they're having a great day and are working somewhere they are proficient.

    Never mind important refactors that might touch a thousand or a few thousand lines that might be pushed out on a daily basis, and need relatively fast turnarounds.

    Essentially half of the job of writing code is also reviewing code, it really should be thought of that way.

    (No, loc is not a unit of performance measurement, but it can correlate)

  • I'm a hypochondriac, but It's About Programming
  • Someone who shares their experiences gained from writing real world software, with introspection into the dynamics & struggles involved?

    Your age (or mostly career progression, which is correlated) may actually be a reason you have no interest in this.

  • I've lately been making my git commit messages with AI
  • And what does it imply?

    That an AI might be better at writing documentation than the average dev, who is largely inept at writing good documentation?

    Understandably, as technical writing isn't exactly a focus point or career growing thing for most devs. If it was, we would be writing much better code as well.

    I've seen my peers work, they could use something like this. I'd welcome it.

  • What′s new in C# 12: overview
  • I do feel like C# saw C++ and said "let's do that" in a way.

    One of the biggest selling points about the language is the long-term and cross repo/product/company..etc consistency. Largely the language will be very recognizable regardless of where it's written and by who it's written due to well established conventions.

    More and more ways to do the same thing but in slightly different ways is nice for the sake of choices but it's also making the language less consistent and portable.

    While at the same time important language features like discriminated unions are still missing. Things that other languages have started to build features for by default. C# is incredibly "clunky" in comparison to say Typescript solely from a type system perspective. The .Net ecosystem of course more than makes up for any of this difference, but it's definitely not as enjoyable to work with the language itself.

  • What′s new in C# 12: overview
  • The great thing about languages like C# is that you really don't need to "catch up". It's incredibly stable and what you know about C#8 (Really could get away with C# 6 or earlier) is more than enough to get you through the grand majority of personal and enterprise programming needs for the next 5-10 years.

    New language versions are adding features, improving existing ones, and improving on the ergonomics. Not necessarily breaking or changing anything before it.

    That's one of the major selling points really, stability and longevity. Without sacrificing performance, features, or innovation.

  • Deleted
    ...
  • Yessss.

    C#/.Net backends are the best. The long term stability, DevX, and the "it just works" nature of all the tooling makes it a great choice. It's also fast, which makes scaling for most applications a non-issue.

    I've switched to postgres for DB from SQL server, have never looked back, would recommend.

  • douglasg14b douglasg14b @programming.dev

    https://github.com/douglasg14b

    Posts 1
    Comments 27