Hacker Newsnew | past | comments | ask | show | jobs | submit | olavgg's commentslogin

I have already created a croos-platform solitaire game in Rust with Opus 4.5. Done in one evening. I absolutely do not understand why OpenAI could not write a proper application in 6 months. Do they struggle to use the product they sell?


Yes, nfs with rdma will increase your performance significantly.


If your storage devices are native PCIe and your network is actually fast enough and your nics and switches have the proper hardware and driver support and your switches are properly configured and your nfs client and server configurations are tweaked just so, and you hold your face in just the right position

The perf is amazing


I do have stable diffusion running on a non-Nvidia GPU, so I'm familiar with the manner of rituals required before contemplating installing system updates or even suspending the system.

Now, I'm off to determine if an eMMC M.2 module is a native PCIe device…


ROCE do require proper nic/switch tuning. But if you go all in on Mellanox NIC's and switches, its basically on knob on the switch: roce

If you buy CX3 and Mellanox SX6036(easy fan adjustment and low power usage) switches on Ebay for cheap. Which are great up to 56Gbps. You can run infiniband which is way easier to setup, just remember you still need to enable IP over IB to start the handshake for the RDMA connection.


They also said something about stability, which I doubt would be improved by adding RDMA into the mix.


I fully agree with the author, and I have stayed on vanilla JS for decades now. I like the simplicity, ownership, zero dependecies. I have my own bundler in Spring Boot using Google Closure Compiler, which works autonomously with the javascript assets. No nodejs needed.

Also with the developer disruption of agentic coding AI, the arguments for using vanilla JS is even stronger. Code reviews of code/solutions is much easier. Scoping of code paths for each server-side render templates is easier. The AI does all the boilerplate coding, while keeping it readable and debugable. Implementing design patterns is just common computer science stuff, and the coding agent is pretty good at it.

I also what to mention, as a business owner, and boss of a startup. All developers here work with vanilla javascript. They were first surprised, but today they prefer it by a huge margin because of the simplicity and zero dependency and non existing build steps. The web browser is the framework, you need another abstraction over the web browser.


The MSSQL developer experience is ok, until you want to pipe the backup over ssh. Then you understand that the Linux support is a joke, with no stdout(https://linux.die.net/man/3/stdout) support.


Yes CX5 can offload more. I believe CX4 has similar offloading capabilities as CX3, except that it supports 100G.

Another note: In my experience, RoCE works much better on CX4+ generation. CX3 is best with Infiniband. I think some firmwares on the CX3 generation, has a messed up config for RoCE. But running Infiniband is not a complex task, is way easier than people think, like 10x easier and faster to setup than Ethernet.


Thanks. Yes, I'm using Infiniband with CX3. Not seeing real speedups so far. I was wondering if upgrading to CX5 could help.


Maybe you have priced it wrong? I just checked Ebay, a 16GB 12800 Registered ECC module goes for 40-50USD ea. That is crazy! Last year they were like 5 USD each.


Except almost nobody buys them, even last years for 10 bucks each. That's almost useless ECC Reg memory for HPE Gen 8 servers and workstations (from before late 2015 / start of 2016 with the introduction of the Gen9 using DDR4).

ECC unbuffered DIMMs (9 memory chips per side, no reg buffer/controller) is less available, quite widely used on level entry systems and thus costs a lot more even second hand.


Agree. I was buying DDR3 16GB sticks for some laptops at $5/pop on eBay, now $60+ each.


Do you have any links? I remember DDR3 sodimms being maybe $.25-$.50/gb for low capacity (4gb), but 8gb+ sticks were always $.80-1+/gb.


I misremembered, it was $5 for 16GB DDR4 (not DDR3) sticks that I was paying on eBay. That might change the pricing.

Here's one I found in my email:

https://imgur.com/a/YWYpuzp


That's a great price for either, especially for DDR4. Only one stick though, right?


Yeah, I only bought single sticks at a time as I saw good deals on them. I only needed six sticks for three laptops. Just stuck a bunch of low bids and grabbed whatever I could. At the time there were tons going for $5-10 every day. Trying to stick to ones with free postage otherwise the postage would cost as much as the RAM back then.


That’s crazy, I bought a couple trays of DDR3 2 years ago for under $100 each.


With NVMe-oF and RDMA I can saturate a 25G link with spinning disks easiliy with around 16 drives.


I disagree, I play a lot around with enterprise stuff. Its insane that I need to buy enterprise grade hardware that costs 1000x more for lab/experimentation/learning. My only alternative is to wait a few years, and get it from Ebay.

I also believe that a strong reason that Optane pdimm's failed, was that it was only available on enterprise servers so hackers didn't get a chance to play with it and build software that took advantage of this special hardware.

Just look at how specialized Infiniband is, even though its awesome and has some great use cases. If it was a commodity tech, there would be 100x times more applications/software that took advantage of it.


We're a self hosted shop, we went with Valkey. Valkey also has support for RDMA, which we already is running in our infrastructure.


But that is his point. If you cannot find the session id in redis, you login again. If your Redis server crash, you start a new one and everyone just login again. No data is lost.


Sure the data is lost. A session commonly holds arbitrary state, and even if it’s just the login information. This is ridiculous.


No two processes can guarantee data consistency unless using shared memory with some kind of locking on update. And given two servers don't share memory, two processes running on these servers can not guarantee consistency either.

To put the simple terms... App writes to node-A, node-A (/process on node-A) crashes before change is synced from node-A to node-B, data is lost.

This is true for redis and true for postgresql/ mysql or any similar database. Difference between redis and a "database" is that database protects against this problem by writing change to durable storage before telling app that write is successful. Redis

So if one wants to have a consistent session storage, one should use a proper database or use AOF redis persistense with single node (https://chatgpt.com/s/t_6a24ab818e2881918db959cec8d8cc2d)


First up, if I wanted to talk to a machine, I would've asked one myself.

Then, I don't understand your point really: Yes, the CAP theorem is a thing. There are compromise solutions available however to enable highly available data storage. Some of them for Redis too, but they are more complicated than those for other database engines. Which is the point of this discussion.


Point is... with AOF and RDB enabled, and wait command used in sane manner, one can get reasonable consistency with a significant speed tradeoff and increase in application complexity. So if consistent cache is needed, one can have that with some compromises, but then probably one could use a database straight away.


Again: Redis is a database, not just a cache - it doesn’t care if you store ephemeral cache artifacts or customer records within it. Redis doesn’t pose any constraints on the type of data. Inversely, you can use Postgres as a semi or fully consistent cache.

And yes, what you’re saying is technically correct, even a well-tuned single node doesn’t solve the availability problem: if it goes down, you have an outage. To avoid that, you need multiple instances to provide the same data, avoiding downtime if one of the nodes breaks eventually.


If redis is a database, then by

> doesn’t pose any constraints on the type of data.

logic, raw disk is also a database. One just need to add block level replication to other nodes to build a replicated/ HA database.

We may not agree, but anything not providing transactions across logically related multiple data read/ update operations is not a database.

> multiple instances to provide the same data

is easy and done by a bunch of software out there, but

> multiple instances to provide the same data on non-shared memory computers, with consistency

is a really hard problem, and no one has been able to solve it yet without introducing other problems to be considered (giving up on fast performance being one of the most visible one) by architects/ developers.


Obviously these are application decisions.

You, obviously, don't commit important data only to a session that you can loose, if the application does not allow it.

We use redis as infrastructure. To route events and as a cache.

For us redis could go down and we would merely see a degradation of our service with no data loss.

I recommend using redis like that. And then use a database that supports transactions for real data problems.

But we are different. And that's OK.


This discussion is a bit weird. We started off from, Redis should have better availability guarantees. Specifically to avoid the degradation of service you described.

But that requires running on multiple instances, which in turn requires to share the data across all replicas.


If you consider it important, you have to store it in a real database. No buts. If you don't consider it important, sharded redis works fine.


Redis is a real database. If I wasn’t convinced it could retain data I hand it, I wouldn’t use it in the first place.

Just because it works for your use case right now doesn’t mean there isn’t room for improvements to support others too.


> Redis is a real database

No, redis is a memory cache, with some ACID like features bolt on.

Even real databases have hard time maintaining consistency across nodes. CAP is a real constraint.


> Redis is a real database.

Oh good, then you don't need to do any of the stuff that you suggested to do


These two concerns are not mutually exclusive, the kind of database or data stored within it doesn't give any availability guarantees on its own. Even a single Postgres instance, which I suppose fits your understanding of a real database, is a single point of failure and not a highly available setup: If your database server goes down, clients get errors and the database is thus unavailable.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: