Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Destroyenator
Dec 27, 2004

Don't ask me lady, I live in beer
we use amazon sqs for lots of non-synchronous queueing tasks and it's needs suiting

hosted solution so low maintenance burden, no logic in the queue itself like shagger's complaining about, simple read/process/acknowledge functionality in the consumers, retries N attempts and then all failed message get dumped to a dead letter queue for manual intervention, consumer load balancing group can scale on queue length or age of oldest message for bursts, cloudwatch alerts on queue length and dead letter queues for when poo poo breaks :shrug:

Adbot
ADBOT LOVES YOU

JawnV6
Jul 4, 2004

So hot ...
hate seeing application+ programmers using 'bus' tbh

Sapozhnik
Jan 2, 2005

Nap Ghost

JawnV6 posted:

hate seeing application+ programmers using 'bus' tbh

yeah and what's with electricians trying to be all trendy and hi-tech by calling things "bus bars" smh

gonadic io
Feb 16, 2011

>>=

JawnV6 posted:

hate seeing application+ programmers using 'bus' tbh

I know some people that agree with you:

JawnV6
Jul 4, 2004

So hot ...

Sapozhnik posted:

yeah and what's with electricians trying to be all trendy and hi-tech by calling things "bus bars" smh
lol i watched a ME w/ EV experience just blast someone who had bus bar on their resume and clearly hadn't done the legwork on that part of the project

gonadic io posted:

I know some people that agree with you:

and one kid w/ a pellet gun caused so much more disruption

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Destroyenator posted:

we use amazon sqs for lots of non-synchronous queueing tasks and it's needs suiting

hosted solution so low maintenance burden, no logic in the queue itself like shagger's complaining about, simple read/process/acknowledge functionality in the consumers, retries N attempts and then all failed message get dumped to a dead letter queue for manual intervention, consumer load balancing group can scale on queue length or age of oldest message for bursts, cloudwatch alerts on queue length and dead letter queues for when poo poo breaks :shrug:

yeah this

we previously used rabbitmq to do the same but the operating expenses was extremely high, especially during a network partition where it was literally "lol if u like to keep your data"

sns/sqs is extremely needs suiting and doesn't provide half the pain rabbit did

DELETE CASCADE
Oct 25, 2017

i haven't washed my penis since i jerked it to a phtotograph of george w. bush in 2003
my favorite part about sqs is how dequeueing a message doesn't actually dequeue it, it just sets the message invisible to other clients for a period of time, so you better hope processing the message doesn't take longer than that! our solution has been to explicitly delete the message from the queue immediately after dequeueing, handle errors on the application side, and re-enqueue the message if necessary. so we get none of that retry stuff or dead letter queue goodness, but wtf else are we gonna do

the talent deficit
Dec 20, 2003

self-deprecation is a very british trait, and problems can arise when the british attempt to do so with a foreign culture





bad use of queue:

code:
      clients
         |
         |
       queue
         |
         |
      consumers
good use of queue:

code:
      clients
         |
   (backpressure)
         |
        api <---------
         |           |
         |      (feedback)
       queue         | 
         |           |
         |           |
     consumers ------
if you can't reject enqueue requests (or freely drop requests in the queue) your queue is just delaying failure, not preventing it

ozymandOS
Jun 9, 2004

DELETE CASCADE posted:

my favorite part about sqs is how dequeueing a message doesn't actually dequeue it, it just sets the message invisible to other clients for a period of time, so you better hope processing the message doesn't take longer than that! our solution has been to explicitly delete the message from the queue immediately after dequeueing, handle errors on the application side, and re-enqueue the message if necessary. so we get none of that retry stuff or dead letter queue goodness, but wtf else are we gonna do

can you keepalive your lease? other than the issues you mention with your approach, a crash would cause messages to be silently dropped

The MUMPSorceress
Jan 6, 2012


^SHTPSTS

Gary’s Answer

JawnV6 posted:

and one kid w/ a pellet gun caused so much more disruption

Someone got mad at me for laughing when they said they had ptsd from that. Like, I used to see people get shot out front of my house bitch. Don't cry to me about your bb gun ptsd.

AWWNAW
Dec 30, 2008

DELETE CASCADE posted:

my favorite part about sqs is how dequeueing a message doesn't actually dequeue it, it just sets the message invisible to other clients for a period of time, so you better hope processing the message doesn't take longer than that! our solution has been to explicitly delete the message from the queue immediately after dequeueing, handle errors on the application side, and re-enqueue the message if necessary. so we get none of that retry stuff or dead letter queue goodness, but wtf else are we gonna do

this is a really bad strategy

you should tune your visibility timeouts and or renew them in flight if for some reason you’re taking forever to handle a message

JawnV6
Jul 4, 2004

So hot ...

cis autodrag posted:

Someone got mad at me for laughing when they said they had ptsd from that. Like, I used to see people get shot out front of my house bitch. Don't cry to me about your bb gun ptsd.
i read so many "whoever gave photos to the media put MY LIFE in DANGER" maudlin takes that the godawful fanfics were almost a relief

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

Plorkyeran posted:

the insane 2d graphics proposal for c++ finally got presented to the wider committee at the most recent meeting and got dumpstered on:

you’re welcome

also, got a link? I’m not finding the text you quoted

eschaton fucked around with this message at 04:38 on Mar 21, 2018

ulmont
Sep 15, 2010

IF I EVER MISS VOTING IN AN ELECTION (EVEN AMERICAN IDOL) ,OR HAVE UNPAID PARKING TICKETS, PLEASE TAKE AWAY MY FRANCHISE

eschaton posted:

also, got a link? I’m not finding the text you quoted

It hit pretty well on google for me with the first paragraph of text:
https://vittorioromeo.info/index/blog/mar18_iso_meeting_report.html

redleader
Aug 18, 2005

Engage according to operational parameters
thank you all for queuechat :sun:

we'll probably just implement a mediocre queue in the db and let ops sort it out

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

the talent deficit posted:

bad use of queue:

code:
      clients
         |
         |
       queue
         |
         |
      consumers
good use of queue:

code:
      clients
         |
   (backpressure)
         |
        api <---------
         |           |
         |      (feedback)
       queue         | 
         |           |
         |           |
     consumers ------
if you can't reject enqueue requests (or freely drop requests in the queue) your queue is just delaying failure, not preventing it

so...throttling?

Sweeper
Nov 29, 2007
The Joe Buck of Posting
Dinosaur Gum
I can’t believe you guys are suggesting putting a queue in a db

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
shagger and oracle can't BOTH be wrong

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Sweeper posted:

I can’t believe you guys are suggesting putting a queue in a db

do any dedicated queues offer acid guarantees?

'cause the trouble is, i actually care about my data, so i put it in a db. if my data was social network spyware likes or mobile game high scores maybe i'd be more cavalier about losing a message here and there i guess

Shaggar
Apr 26, 2006

the talent deficit posted:

bad use of queue:

code:
      clients
         |
         |
       queue
         |
         |
      consumers
good use of queue:

code:
      clients
         |
   (backpressure)
         |
        api <---------
         |           |
         |      (feedback)
       queue         | 
         |           |
         |           |
     consumers ------
if you can't reject enqueue requests (or freely drop requests in the queue) your queue is just delaying failure, not preventing it

this wont work if the client cant keep their work until the queue is available again aka the sole reason to use a queue in the first place.

MononcQc
May 29, 2007

If you're able to carry backpressure and so on to the API in front of the queue, the queue might be an interesting tool to dispatch work and carry metrics, have some degree of persistence and so on. Nothing a proxy+consumers couldn't do on their own, but it's far less of a ticking time bomb into your system than just a queue alone, and removes a point of asynchrony that could otherwise cause problems in system behavior.

The queue becomes an implementation detail of job management rather than the interface and core component by which it is done.

Soricidus
Oct 21, 2010
freedom-hating statist shill

NihilCredo posted:

do any dedicated queues offer acid guarantees?

in the sense that they’ll dissolve your data and you shouldn’t touch them without protective equipment, yes

Shaggar
Apr 26, 2006
:cawg:

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
more like acrid guarantees!!

Sapozhnik
Jan 2, 2005

Nap Ghost
Apparently Java 10 is out now? :confuoot:

That was quick. Nothing terribly exciting in it though.

http://www.oracle.com/technetwork/java/javase/10-relnote-issues-4108729.html

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

Sapozhnik posted:

Apparently Java 10 is out now? :confuoot:

That was quick. Nothing terribly exciting in it though.

http://www.oracle.com/technetwork/java/javase/10-relnote-issues-4108729.html

they're moving to a firefox style schedule

java 11 is going to be the long-term support release so i wouldn't expect to see much adoption by the big names until then

mystes
May 31, 2006

carry on then posted:

they're moving to a firefox style schedule

java 11 is going to be the long-term support release so i wouldn't expect to see much adoption by the big names until then
Is this sort of an acknowledgement that java as a universal vm for desktop applications is pretty much dead, so there's no need to follow a schedule that is based around the assumption that everyone is going to switch everything over to the new version all at once at the same time?

I.e. are they expecting that bundling a vm or using the AOT stuff is going to be the norm in the future?

Sapozhnik
Jan 2, 2005

Nap Ghost

mystes posted:

Is this sort of an acknowledgement that java as a universal vm for desktop applications is pretty much dead

yes, for those of you joining us from 1997

quote:

I.e. are they expecting that bundling a vm or using the AOT stuff is going to be the norm in the future?

java applications all run on servers. some will be deployed within containers running the latest and greatest upstream JVM base image, others will use whatever comes with the os (centos or ubuntu). co-installation of JVMs is already possible in traditional deployment contexts but with containers it becomes a non-issue.

DELETE CASCADE
Oct 25, 2017

i haven't washed my penis since i jerked it to a phtotograph of george w. bush in 2003

AWWNAW posted:

this is a really bad strategy

you should tune your visibility timeouts and or renew them in flight if for some reason you’re taking forever to handle a message

didn't realize you could renew the visibility timeout for individual messages while in flight, ok we'll do that instead :thumbsup:

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

my favourite part about amazon sqs is the amazon techies completely dodging my questions re: 'is there any issue with only sporadically reading & purging a queue b/c your amazon rep keeps telling us the queue is clogged and we should purge it due to like 1k messages tops'

the talent deficit
Dec 20, 2003

self-deprecation is a very british trait, and problems can arise when the british attempt to do so with a foreign culture





Shaggar posted:

this wont work if the client cant keep their work until the queue is available again aka the sole reason to use a queue in the first place.

what do you expect to happen if the queue can't accept new items and the clients try to add them anyways?

Sapozhnik
Jan 2, 2005

Nap Ghost
Simple = democratic
Open = people's republic of

Shaggar
Apr 26, 2006

the talent deficit posted:

what do you expect to happen if the queue can't accept new items and the clients try to add them anyways?

I expect whoever setup the queue to be fired

Shaggar
Apr 26, 2006
Either the requests aren't important in which case you tell the clients to gently caress off until a synchronous handler can deal with them or the requests are important and you queue them somewhere for later processing. the entire point of the queue is to store critical requests that cant be immediately handled.

DONT THREAD ON ME
Oct 1, 2002

by Nyc_Tattoo
Floss Finder
our queue based infrastructure is such a loving nightmare and i legitimately don't know how to fix it.

it's also bad because we use kinesis instead of kafka so we only have 1 day of log retention.

also even in our wildest success scenarios we'll probably never have more than a few thousand active clients. backpressure is a thing we will never experience.

MononcQc
May 29, 2007

Shaggar posted:

Either the requests aren't important in which case you tell the clients to gently caress off until a synchronous handler can deal with them or the requests are important and you queue them somewhere for later processing. the entire point of the queue is to store critical requests that cant be immediately handled.

given a queue is often a central point of failure, there is on average a higher probability that the queue is down as opposed to a majority of the servers or workers handling the requests.

the talent deficit
Dec 20, 2003

self-deprecation is a very british trait, and problems can arise when the british attempt to do so with a foreign culture





Shaggar posted:

Either the requests aren't important in which case you tell the clients to gently caress off until a synchronous handler can deal with them or the requests are important and you queue them somewhere for later processing. the entire point of the queue is to store critical requests that cant be immediately handled.

either you just described backpressure ("you tell the clients to gently caress off until a synchronous handler can deal with them") and you agree with me or you think it's okay that the queue is just a single point of failure?

Soricidus
Oct 21, 2010
freedom-hating statist shill

mystes posted:

Is this sort of an acknowledgement that java as a universal vm for desktop applications is pretty much dead, so there's no need to follow a schedule that is based around the assumption that everyone is going to switch everything over to the new version all at once at the same time?

I.e. are they expecting that bundling a vm or using the AOT stuff is going to be the norm in the future?

yes, one of the big concepts behind java 9 modules was to make bundling a jvm less terrible by letting you only bundle the parts of it that your software uses

of course I still don’t know of anyone who’s managed to switch to java 9 yet, let alone considering 10. we’re certainly stuck on 8 for the time being. that compatibility break was pretty bad.

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

yeah, the compatibility break was pretty bad, and the lack of anything really compelling outside of modules made uptake even worse

even our bleeding edge product isn't going to support java beyond 8 until 11, and our legacy product that people actually use is probably not going to ever work with java 9+

Adbot
ADBOT LOVES YOU

Shaggar
Apr 26, 2006

the talent deficit posted:

either you just described backpressure ("you tell the clients to gently caress off until a synchronous handler can deal with them") and you agree with me or you think it's okay that the queue is just a single point of failure?

you cant have backpressure and queues. they're incompatible. either you have important data that needs to be queued in which case you can never under and circumstance tell the clients to gently caress off or you don't have important data and you can tell your clients to gently caress off at which point you should not be using a queue because it does not help you. just have the clients talk directly to the processor that the queue is feeding.

the queue is a single point of failure in theory, but you already had a single point of failure in the processor that the queue is feeding. the idea is that the queue is more reliable and available than whatever is doing the processing and you are moving the single point of failure from the processor to the queue.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply