Live data from Hacker News

A lot of complex “scalable” systems can be done with a simple, single C++ server

twitter.com

371–376 of 376 posts

Re: A lot of complex “scalable” systems can be done with a simple, single C++ server

#371

Earlier quoted context omitted.

The point is that a one millisecond pause is unacceptable. Low latency Java GCs have average latencies of one millisecond, 99th percentile latencies of 10 milliseconds, and 99.9th percentile latencies are neither measured nor optimized for. I don't consider it realistic to think that garbage collected languages might ever be usable in the context of game engines or HFT.

> game engines Game engines are already written in GCed languages. Java in particular. You may be right that a 10ms pause is unacceptable for HFT. However, for a FPS, 10ms is more than acceptable. It translates to 1 or 2 missed frames in the worst case. A bigger issue with using Java in particular for games is it's lack of value types. Writing high performance code for java is just that much harder because the langua…

The only serious engine I know of that's written in Java is Minecraft and its performance problems are notorious.

Microsoft XNA and Unity's .net support were also pretty popular but the popular games written in those languages (like Bastion) didn't have many heavyweight assets or allocator pressure.

Re: A lot of complex “scalable” systems can be done with a simple, single C++ server

#372
post #2

I've been programming C++ and assembly for 23 years. Few years ago I became a huge fan of Python. In my opinion Python is amazingly well suited for rapid first revision and can then be swapped out for C++ / asm.

You just have to write a tiny part that uses a lot of CPU in C++/asm or anything else. Much of code's performance isn't really reflected on to the scalability since mostly a tiny part of code is really ran a lot of time, and the other parts are just glues or management stuff or rarely used(not used in scale) features.

It depends. You aren't going to make a very fast modern codec encoder or decoder using Python. The hotspot ends up being the vast majority of the process. That management/glue layer becomes very thin, amounting only to feeding in the bitstream and reading back the raw video frames.

Re: A lot of complex “scalable” systems can be done with a simple, single C++ server

#373

Earlier quoted context omitted.

You're still not actually answering the question of how you are HA and backing things up with only a single physical server and nothing else. If you're backing things up to the same server, that's not enough. If the HA instances are running in the same server, that's not enough. If there are other things besides that one physical server and it's power/network, you didn't include them in the cost, so the comparison is…

I do say the deployed system ends up being multiple instances of my single server, which synchronize with one another. Those are separate physical devices each running my one server. Additionally, when a backup runs the data is stored locally as well as on a physical storage device separate from the hardware it is running. Typically clients already have a firewall/router which is used to distribute requests to the va…

>. Those are separate physical devices each running my one server. Additionally, when a backup runs the data is stored locally as well as on a physical storage device separate from the hardware it is running. Typically clients already have a firewall/router which is used to distribute requests to the various instances.

Awesome! Really glad to hear this is the case. But those are all added costs beyond the single physical server you gave the price of.

Server cost * number of physical servers you have deployed Cost of your off-server storage Cost of your network appliance doing load balancing

It's still probably way less than the AWS bill, but it's not really fair to compare the total price of infrastructure in one environment vs. just a portion of the other.

Re: A lot of complex “scalable” systems can be done with a simple, single C++ server

#374

I'm 15 years in writing high performance Internet servers in C++, and I can confirm higher level languages provide an illusion of capability, but once you're talking high performance with high compute requirements and scaling your service, the cost efficiency of C++ is exponential better than any other language. The higher level language ecosystems are bloated beyond repair. I was able to use one 32-core physical ser…

AWS is expensive. It costs 20 times more for CPU.

Re: A lot of complex “scalable” systems can be done with a simple, single C++ server

#375

I'm 15 years in writing high performance Internet servers in C++, and I can confirm higher level languages provide an illusion of capability, but once you're talking high performance with high compute requirements and scaling your service, the cost efficiency of C++ is exponential better than any other language. The higher level language ecosystems are bloated beyond repair. I was able to use one 32-core physical ser…

Making my Node.JS app run on cheap providers raised performance and reduced cost several times over, such as OVH.

Re: A lot of complex “scalable” systems can be done with a simple, single C++ server

#376
post #181

Earlier quoted context omitted.

Big data is about I/O not CPU I’m a C++ veteran btw and understand the point but big data is about how to process petabytes of I/O not how to consume CPU.

Not for everyone. In finance, a query might only use gigabytes or terabytes of data, but need to do a ton of simulation and calculation on top of that. Optimization of e.g. trading algorithms is entirely CPU-bound.

Yes, I'm aware. I've written and maintained several of these systems in exotic derivatives space. Scale-out of CPU was required for these.

These are not big data problems, however, by definition.

Post reply on HN