get application names of AT jobs from scheduled tasks - c++

How can I get a list of all the AT scheduled tasks' application names?
But I want to know how to do it exactly by using function NetScheduleJobGetInfo and AT_INFO Structure?
I'm programming in C++

Actually, I think you have the wrong function. You should be looking at NetScheduleJobEnum() which will give you an array of AT_ENUM structs, one for each job. Inside AT_ENUM is the command associated with the task.

Related

How to Limit Concurrency in fp-ts

Our team is starting to learn fp-ts, and we are starting with some basic async examples (mostly pulled from here). Running a set of Tasks in sequence is great, and it looks like array.sequence(task)(tasks)
The question is, what is the idiomatic way to restrict concurrency when executing parallel Tasks in fp-ts? For example, Promise.map (in bluebird) allows you to set a concurrency limit like {concurrency: 4}.
One solution might be to split the array into chunks, and then iterate the chunks, using sequence and flatMap. However, that would mean every Task in each chunk would have to complete before moving on to the next chunk - one long running task could hold up the whole operation.
There must be some abstraction that we're missing - we are all pretty new to FP, so hopefully someone here with more exp can help out.
I was able to find a resolution with the helpful folks over at the ts-fp git repo. Looks like wrapping p-map is the way to go
https://github.com/gcanti/fp-ts/issues/574#issuecomment-424658481

AWS boto3 -- Difference between `batch_writer` and `batch_write_item`

I'm currently applying boto3 with dynamodb, and I noticed that there are two types of batch write
batch_writer is used in tutorial, and it seems like you can just iterate through different JSON objects to do insert (this is just one example, of course)
batch_write_items seems to me is a dynamo-specific function. However, I'm not 100% sure about this, and I'm not sure what's the difference between these two functions (performance, methodology, what not)
Do they do the same thing? If they are, why having 2 different functions? If they're not, what's the difference? How's the performance comparison?
As far as I understand and use these APIs, with the batch_write_item(), you can even handle the data for more than one table in one query. But with batch_writer(), it means you are going to specify the actions are only applicable for a certain table. I think that should be the very basic difference I can tell you.
batch_writer creates a context manager for writing objects to Amazon
DynamoDB in batch.
The batch writer will automatically handle buffering and sending items
in batches.
In addition, the batch writer will also automatically handle any
unprocessed items and resend them as needed. All you need to do is
call put_item for any items you want to add, and delete_item for any
items you want to delete.
In addition, you can specify auto_dedup if the batch might contain
duplicated requests and you want this writer to handle de-dup for you.
source

Map reduce without hadoop

I am new to Map reduce program.I want to know if I can run map reduce program as a normal java program without using Hadoop. What all libraries should I include?Is it possible?
It is possible, but in that you need to write each end every code block starting from map-->SS-->Reduce. Tobe very simple hadoop is a framework built on provides lot API to run the mapreduce job. It will take care of passing the input from file, Suffle and sort and then reduce function. you just need to understand the various API of haddop and the flow of data thats it.

When does an action not run on the driver in Apache Spark?

I have just started with Spark and was struggling with the concept of tasks.
Can any one please help me in understanding when does an action (say reduce) not run in the driver program.
From the spark tutorial,
"Aggregate the elements of the dataset using a function func (which
takes two arguments and returns one). The function should be
commutative and associative so that it can be computed correctly in
parallel. "
I'm currently experimenting with an application which reads a directory on 'n' files and counts the number of words.
From the web UI the number of tasks is equal to number of files. And all the reduce functions are taking place on the driver node.
Can you please tell a scenario where the reduce function won't execute at the driver. Does a task always include "transformation+action" or only "transformation"
All the actions are performed on the cluster and results of the actions may end up on the driver (depending on the action).
Generally speaking the spark code you write around your business logic is not the program that would actually run - rather spark uses it to create a plan which will execute your code in the cluster. The plan creates a task of all the actions that can be done on a partition without the need to shuffle data around. Every time spark needs the data arranged differently (e.g. after sorting) It will create a new task and a shuffle between the first and the latter tasks
Ill take a stab at this, although I may be missing part of the question. A task is indeed always transformation(s) and an action. The transformation's are lazy and would not submit anything, thus the need for an action. You can always call .toDebugString on your RDD to see where each job split will be; each level of indentation is a new stage. I think the reduce function showing on the driver is a bit of a misnomer as it will run first in parallel and then merge the results. So, I would expect that the task does indeed run on the workers as far as it can.

How do I access the luaL_loadbuffer name parameter?

I've been using the luaL_loadbuffer for many years to load Lua code from within a C++ program. Suddenly I find I need the script to know its own name. Sure, the script in an anonymous function as far as the Lua context is concerned but the C++ framework around it keeps it in a hashmap with a name, the name of the file from which it was loaded to be precise.
I passed that file name into luaL_loadbuffer when I originally wrote the code but I never actually used it. I now need that name so I can have the script compute metrics about its own execution.
luaL_loadbuffer(LuaContext, code, strlen(code), name)
I now need to use that name from with the Lua context. What's the easiest way to do that?
I'm going to tap the Lua debug function documentation in the meantime while waiting for an answer.
When that code is running, debug.getinfo(1).src will give you name.