HAPPY Birthday
Openstack
#OSATX 10 July 2014
Docker
What even is ?
Docker
What even is ?
- Process Isolation
- Uses linux kernel tooling ( cgroups, namespaces, etc)
- Shareable Artifacts - Images / Docker Hub
- Write Once, Run Anywhere.
- Process/Application Centric
Docker + Openstack
- Nova-Docker Driver
- Docker Heat Plugin
- Dockenstack
- CoreOS
- libswarm ?
Openstack has 99 problems
and Docker aint one of them.
History of the Nova-Docker Driver
- May 2013 - Initial Implementation by Sam Alba
- Sept 2013 - Merged into Nova
- Oct 2013 - Havana Released w/ Docker
- March 2014 - Nova Removes Docker Driver (moved to own repo)
- May 2014 - Docker, Rackspace, Redhat, others form Openstack Containers Team.
- Ongoing - Active community improving Nova Docker driver.
Nova-Docker Driver Features
History of the Docker Heat Plugin
Docker Heat Plugin Features
- Treat docker containers as heat resources
- Manual placement
- Heat has to be able to talk to docker API on VM
- still somewhat painful install
Developers are...
and applications are their power.
Openstack - VM Centric
Still about infrastructure.
Still need ops to manage VMs and Operational tasks.
Where is the developer/user success story ?
Is focus now on chasing long tail of enterprise virtualization ?
Others - Application Centric
Docker, Kubernetes, Openshift, Mesos, CoreOS, CloudFoundry, Deis, Flynn, AWS, etc
VMs are simply infrastructure, irrelevent if not completely unecessary.
Solum
An Application Centric Openstack.
Solum
Whales and Unicorns working together to create...
Infrastructure as a Service +
Solum - Project Goals
Developer Productivity
- Application Lifecycle Management (dev, test, stage, prod)
- CI/CD with automated deployment
- Integration with IDEs
- Manage Services ( Database, Messaging, etc )
Solum - Project Goals
Application Portability
- export to other Openstack clouds
- portability between private & public clouds
- portability via standard formats ( Docker,
KVM )
Solum - Key Tenets
Community Driven
- Designed in the open.
- Opensourced under Apache 2.0
- Mirror Openstack Governance and Contribution models.
- Stackforge, Gerrit, Launchpad, IRC, etc.
Solum - Key Tenets
Openstack Native Design
- Leverage existing projects ( Nova, Heat, Glance, Trove, etc)
- multi-tenancy by default
- Put functionality where it belongs ( contribute to other openstack projects )
- Provide full access to underlying Systems
Solum - Icehouse
- VM (dib+kvm) or Docker (nova-docker)
- Define Application (Planfile)
- Take source from github, turn into running Application.
- Heroku Buildpacks
- Source to running application in seconds!
Solum - Juno
- VM (coreos+docker) or Docker (nova-docker)
- Define Application (Planfile)
- Take source from github, turn into running Application.
- Heroku Buildpacks, Dockerfile, Custom!
- CI - Unit Testing
- Workflow ( Mistral )
- Services - Load Balancing, MySQL DB, Messaging
Why not just run
<insert PAAS here>
on Openstack?
<insert PAAS here> features
- Scalable Design
- Orchestration and Scheduling
- Services: Database, Messaging, Hadoop
- Identity Management
- Health monitoring and Auto healing
- Application build and Deploy
Openstack features
- Scalable Design
- Orchestration and Scheduling
- Services: Database, Messaging, Hadoop
- Identity Management
- Health monitoring and Auto healing
- Application build and Deploy [Solum]
Don't Repeat Yourself!
Distributed Systems are hard to run. Why run two?
Questions ?


wget https://chocolatey.org/installchocolatey.cmd
export http_proxy="http://<IP_ADDRESS>:55857"; export https_proxy="http://<IP_ADDRESS>:55857";


iTube
Search
Home
(current)
Sign In
Sign up
Sign in
×
Username
Password
Sign In
Remember me
Sign up
×
Username
Password
ReEnter Password
Full Name
Email
Date of Birth
Gender
Female
Male
Unknown
Create new Account
Video Title
SUBSCRIBE
You may like


130 Fakestreet St W, Unit 321 Waterloo ON, N2A 1A1
519-555-5555 |<EMAIL_ADDRESS>LinkedIn | GitHub | Portfolio
PROFILE:
Fullstack web developer with Bachelor of Mathematics and Fullstack Developer Certificate, having over 10 years’ experience working in customer focused environments. Adept at using creativity and technical skill to solve problems in many capacities.
A focused 24-week program focused on gaining relevant technical programming skills.
Bachelor of Math
2015 – 2020
University of Waterloo, Waterloo, ON
PROJECTS:
Book Suggestion Application
Worked as a team to create an app that recommends novels to users based on books they have indicated to be reading or to have read as well as users’ ratings of those books.
Clean interface completed using bootstrap.
Employee Summary Generator
Created a command line based interface that allows easy creation of an employee summary.
Uses Node.js and Inquirer to prompt users for data in order to build the website.
Uses Bootstrap for styling.
Password generator
A JavaScript based strong password generator.
EXPERIENCE:
Data Entry Clerk
2014 – present
Nordia, Waterloo, ON
Provide service to customers remotely.
Process orders for Bell representatives selling Bell products and new Bell Customers.
Gather ID and date of birth.
Answer questions for Bell representatives.
Problem solve to ensure that customers can get service in rural areas.
Quickly learn new promotions and codes.
SELECTED ACCOMPLISHMENTS:
Created a JavaScript based “call flow” for other employees and myself to make it easier to provide the correct pricing information to customers.
Served as a “weekend prime” in case of an emergency while working weekends during university.


confinit.cyclopsFit
profiles the data likelihood to construct confidence intervals of
arbitrary level. Usually it only makes sense to do this for variables that have not been regularized
TODO: Profile data likelihood or joint distribution of remaining parameters.
# S3 method for cyclopsFit confint(object, parm, level = 0.95, overrideNoRegularization = FALSE, includePenalty = TRUE, rescale = FALSE, ...)
| object | A fitted Cyclops model object |
|---|---|
| parm | A specification of which parameters require confidence intervals, either a vector of numbers of covariateId names |
| level | Numeric: confidence level required |
| overrideNoRegularization | Logical: Enable confidence interval estimation for regularized parameters |
| includePenalty | Logical: Include regularized covariate penalty in profile |
| rescale | Boolean: rescale coefficients for unnormalized covariate values |
| ... | Additional argument(s) for methods |
A matrix with columns reporting lower and upper confidence limits for each parameter. These columns are labelled as (1-level) / 2 and 1 - (1 - level) / 2 in percent (by default 2.5 percent and 97.5 percent)
#Generate some simulated data: sim <- simulateCyclopsData(nstrata = 1, nrows = 1000, ncovars = 2, eCovarsPerRow = 0.5, model = "poisson")#> Sparseness = 74.45 %cyclopsData <- convertToCyclopsData(sim$outcomes, sim$covariates, modelType = "pr", addIntercept = TRUE)#> Sorting covariates by covariateId and rowId#Define the prior and control objects to use cross-validation for finding the #optimal hyperparameter: prior <- createPrior("laplace", exclude = 0, useCrossValidation = TRUE) control <- createControl(cvType = "auto", noiseLevel = "quiet") #Fit the model fit <- fitCyclopsModel(cyclopsData,prior = prior, control = control)#> Using cross-validation selector type byRow #> Performing 10-fold cross-validation [seed =<PHONE_NUMBER>] with data partitions of sizes 100 100 100 100 100 100 100 100 100 100 #> Using 1 thread(s) #> Starting var = 0.2555 (default) #> Running at Laplace(2.79782) None Grid-point #1 at 0.2555 Fold #1 Rep #1 pred log like = -206.637 #> Running at Laplace(2.79782) None Grid-point #1 at 0.2555 Fold #2 Rep #1 pred log like = -223.818 #> Running at Laplace(2.79782) None Grid-point #1 at 0.2555 Fold #3 Rep #1 pred log like = -197.02 #> Running at Laplace(2.79782) None Grid-point #1 at 0.2555 Fold #4 Rep #1 pred log like = -190.623 #> Running at Laplace(2.79782) None Grid-point #1 at 0.2555 Fold #5 Rep #1 pred log like = -201.684 #> Running at Laplace(2.79782) None Grid-point #1 at 0.2555 Fold #6 Rep #1 pred log like = -198.136 #> Running at Laplace(2.79782) None Grid-point #1 at 0.2555 Fold #7 Rep #1 pred log like = -179.472 #> Running at Laplace(2.79782) None Grid-point #1 at 0.2555 Fold #8 Rep #1 pred log like = -185.297 #> Running at Laplace(2.79782) None Grid-point #1 at 0.2555 Fold #9 Rep #1 pred log like = -198.634 #> Running at Laplace(2.79782) None Grid-point #1 at 0.2555 Fold #10 Rep #1 pred log like = -193.643 #> AvgPred = -197.497 with stdev = 11.5396 #> Completed at 0.2555 #> Next point at 2.555 with value 0 and continue = 1 #> search[ 0.2555 ] = -197.497(11.5396) #> #> Running at Laplace(0.884748) None Grid-point #2 at 2.555 Fold #1 Rep #1 pred log like = -206.631 #> Running at Laplace(0.884748) None Grid-point #2 at 2.555 Fold #2 Rep #1 pred log like = -223.872 #> Running at Laplace(0.884748) None Grid-point #2 at 2.555 Fold #3 Rep #1 pred log like = -197.047 #> Running at Laplace(0.884748) None Grid-point #2 at 2.555 Fold #4 Rep #1 pred log like = -190.624 #> Running at Laplace(0.884748) None Grid-point #2 at 2.555 Fold #5 Rep #1 pred log like = -201.693 #> Running at Laplace(0.884748) None Grid-point #2 at 2.555 Fold #6 Rep #1 pred log like = -198.173 #> Running at Laplace(0.884748) None Grid-point #2 at 2.555 Fold #7 Rep #1 pred log like = -179.506 #> Running at Laplace(0.884748) None Grid-point #2 at 2.555 Fold #8 Rep #1 pred log like = -185.349 #> Running at Laplace(0.884748) None Grid-point #2 at 2.555 Fold #9 Rep #1 pred log like = -198.65 #> Running at Laplace(0.884748) None Grid-point #2 at 2.555 Fold #10 Rep #1 pred log like = -193.65 #> AvgPred = -197.519 with stdev = 11.541 #> Completed at 2.555 #> Next point at 0.02555 with value 0 and continue = 1 #> search[ 0.2555 ] = -197.497(11.5396) #> search[ 2.555 ] = -197.519(11.541) #> #> Running at Laplace(8.84748) None Grid-point #3 at 0.02555 Fold #1 Rep #1 pred log like = -206.645 #> Running at Laplace(8.84748) None Grid-point #3 at 0.02555 Fold #2 Rep #1 pred log like = -223.655 #> Running at Laplace(8.84748) None Grid-point #3 at 0.02555 Fold #3 Rep #1 pred log like = -196.938 #> Running at Laplace(8.84748) None Grid-point #3 at 0.02555 Fold #4 Rep #1 pred log like = -190.618 #> Running at Laplace(8.84748) None Grid-point #3 at 0.02555 Fold #5 Rep #1 pred log like = -201.676 #> Running at Laplace(8.84748) None Grid-point #3 at 0.02555 Fold #6 Rep #1 pred log like = -198.089 #> Running at Laplace(8.84748) None Grid-point #3 at 0.02555 Fold #7 Rep #1 pred log like = -179.393 #> Running at Laplace(8.84748) None Grid-point #3 at 0.02555 Fold #8 Rep #1 pred log like = -185.198 #> Running at Laplace(8.84748) None Grid-point #3 at 0.02555 Fold #9 Rep #1 pred log like = -198.588 #> Running at Laplace(8.84748) None Grid-point #3 at 0.02555 Fold #10 Rep #1 pred log like = -193.643 #> AvgPred = -197.444 with stdev = 11.5256 #> Completed at 0.02555 #> Next point at 0.002555 with value 0 and continue = 1 #> search[ 0.02555 ] = -197.444(11.5256) #> search[ 0.2555 ] = -197.497(11.5396) #> search[ 2.555 ] = -197.519(11.541) #> #> Running at Laplace(27.9782) None Grid-point #4 at 0.002555 Fold #1 Rep #1 pred log like = -206.645 #> Running at Laplace(27.9782) None Grid-point #4 at 0.002555 Fold #2 Rep #1 pred log like = -223.525 #> Running at Laplace(27.9782) None Grid-point #4 at 0.002555 Fold #3 Rep #1 pred log like = -196.843 #> Running at Laplace(27.9782) None Grid-point #4 at 0.002555 Fold #4 Rep #1 pred log like = -190.618 #> Running at Laplace(27.9782) None Grid-point #4 at 0.002555 Fold #5 Rep #1 pred log like = -201.676 #> Running at Laplace(27.9782) None Grid-point #4 at 0.002555 Fold #6 Rep #1 pred log like = -198.089 #> Running at Laplace(27.9782) None Grid-point #4 at 0.002555 Fold #7 Rep #1 pred log like = -179.376 #> Running at Laplace(27.9782) None Grid-point #4 at 0.002555 Fold #8 Rep #1 pred log like = -185.157 #> Running at Laplace(27.9782) None Grid-point #4 at 0.002555 Fold #9 Rep #1 pred log like = -198.56 #> Running at Laplace(27.9782) None Grid-point #4 at 0.002555 Fold #10 Rep #1 pred log like = -193.643 #> AvgPred = -197.413 with stdev = 11.5032 #> Completed at 0.002555 #> Next point at 0.0002555 with value 0 and continue = 1 #> search[ 0.002555 ] = -197.413(11.5032) #> search[ 0.02555 ] = -197.444(11.5256) #> search[ 0.2555 ] = -197.497(11.5396) #> search[ 2.555 ] = -197.519(11.541) #> #> Running at Laplace(88.4748) None Grid-point #5 at 0.0002555 Fold #1 Rep #1 pred log like = -206.645 #> Running at Laplace(88.4748) None Grid-point #5 at 0.0002555 Fold #2 Rep #1 pred log like = -223.525 #> Running at Laplace(88.4748) None Grid-point #5 at 0.0002555 Fold #3 Rep #1 pred log like = -196.843 #> Running at Laplace(88.4748) None Grid-point #5 at 0.0002555 Fold #4 Rep #1 pred log like = -190.618 #> Running at Laplace(88.4748) None Grid-point #5 at 0.0002555 Fold #5 Rep #1 pred log like = -201.676 #> Running at Laplace(88.4748) None Grid-point #5 at 0.0002555 Fold #6 Rep #1 pred log like = -198.089 #> Running at Laplace(88.4748) None Grid-point #5 at 0.0002555 Fold #7 Rep #1 pred log like = -179.376 #> Running at Laplace(88.4748) None Grid-point #5 at 0.0002555 Fold #8 Rep #1 pred log like = -185.157 #> Running at Laplace(88.4748) None Grid-point #5 at 0.0002555 Fold #9 Rep #1 pred log like = -198.56 #> Running at Laplace(88.4748) None Grid-point #5 at 0.0002555 Fold #10 Rep #1 pred log like = -193.643 #> AvgPred = -197.413 with stdev = 11.5032 #> Completed at 0.0002555 #> Next point at 2.555e-005 with value 0 and continue = 1 #> search[ 0.0002555 ] = -197.413(11.5032) #> search[ 0.002555 ] = -197.413(11.5032) #> search[ 0.02555 ] = -197.444(11.5256) #> search[ 0.2555 ] = -197.497(11.5396) #> search[ 2.555 ] = -197.519(11.541) #> #> Running at Laplace(279.782) None Grid-point #6 at 2.555e-005 Fold #1 Rep #1 pred log like = -206.645 #> Running at Laplace(279.782) None Grid-point #6 at 2.555e-005 Fold #2 Rep #1 pred log like = -223.525 #> Running at Laplace(279.782) None Grid-point #6 at 2.555e-005 Fold #3 Rep #1 pred log like = -196.843 #> Running at Laplace(279.782) None Grid-point #6 at 2.555e-005 Fold #4 Rep #1 pred log like = -190.618 #> Running at Laplace(279.782) None Grid-point #6 at 2.555e-005 Fold #5 Rep #1 pred log like = -201.676 #> Running at Laplace(279.782) None Grid-point #6 at 2.555e-005 Fold #6 Rep #1 pred log like = -198.089 #> Running at Laplace(279.782) None Grid-point #6 at 2.555e-005 Fold #7 Rep #1 pred log like = -179.376 #> Running at Laplace(279.782) None Grid-point #6 at 2.555e-005 Fold #8 Rep #1 pred log like = -185.157 #> Running at Laplace(279.782) None Grid-point #6 at 2.555e-005 Fold #9 Rep #1 pred log like = -198.56 #> Running at Laplace(279.782) None Grid-point #6 at 2.555e-005 Fold #10 Rep #1 pred log like = -193.643 #> AvgPred = -197.413 with stdev = 11.5032 #> Completed at 2.555e-005 #> Next point at 7.92081e-005 with value -197.41 and continue = 0 #> search[ 2.555e-005 ] = -197.413(11.5032) #> search[ 0.0002555 ] = -197.413(11.5032) #> search[ 0.002555 ] = -197.413(11.5032) #> search[ 0.02555 ] = -197.444(11.5256) #> search[ 0.2555 ] = -197.497(11.5396) #> search[ 2.555 ] = -197.519(11.541) #> #> #> Maximum predicted log likelihood (-197.41) estimated at: #> 7.92081e-005 (variance) #> 158.902 (lambda) #> #> Fitting model at optimal hyperparameter #> Using prior: Laplace(158.902) None#> [1] 7.920808e-05#Extract the current log-likelihood, and coefficients logLik(fit)#> 'log Lik.' -1973.343 (df=3)coef(fit)#> (Intercept) 1 2 #> -3.937029 0.000000 0.000000#We can only retrieve the confidence interval for unregularized coefficients: confint(fit, c(0))#> Using 1 thread(s)#> covariate 2.5 % 97.5 % evaluations #> [1,] 0 -3.965462 -3.90885 24


Contents of the archive (page number: 3)
Issues
July 16, 2011
July 17, 2011
July 19, 2011
< Previous
|
Next >


Department of Theology
The Department of Theology is the branch of the Royal Cyprian Academy responsible for preserving the Old and New Testaments and all beautiful, insightful or otherwise important texts connected therewith.
Old and New Testaments
- The official Cyprian version of the Old Testament is the Septuagint as published by the Apostolic Press.
- The official Cyprian version of the New Testament is the Greek text thereof, as published by the Apostolic Press.
- The official Cyprian translation of the Old and New Testaments into English is the Revised Standard Version, specifically the Anglicised version of the 1962 text.
Library
Sacred Languages
`Many of the Jews read this title, for the place where Jesus was crucified was near the city; and it was written in Hebrew, in Latin, and in Greek.'
Greek
GREEKWORKSHebrew
HEBREWWORKSLatin
LATINWORKSTranslations
TRANSLATIONSOther Works
See Hosker's Library for The Book of Common Prayer and similar works.
OTHERWORKS


Categories
The Child
The Parent
Child Activity
Logout
Edit Info
☰
The Parent
Edit Information
Submit


Today's Top Stories
NATIONAL
LOCAL
WORLD
POLITICS
TECHNOLOGY
SPORTS
ENTERTAINMENT
BUSINESS
VIDEO GAMES
MOVIES
TV
MUSIC
CHANGE LOCATION
TOP
2018, C Adams. News courtesy of
NewsAPI.org


Greetings, Pesho!
Id |
Total |
Issued On |
Cashier |
|---|---|---|---|
fbb536f4-7463-41d2-8650-4d1c87de722b |
$15.06 |
26/09/2019 |
Pesho |
7c62da68-3875-44ba-815d-99518039b946 |
$13.82 |
15/11/2018 |
Pesho |


--- layout: post title: Ruby and Rails continues book bonanza categories: - praise author: David published: true date: 2007-05-07 19:37:00.000000000 +01:00 ---
O’Reilly has analyzed the book sales once again. Here are the juicy bits about Ruby and Rails books:
In the Web design and development area, it’s worth noting that Ruby on Rails has continued its blazing growth, but Ajax books have not. The decline of both PHP and ASP are striking…
…Rails in the bottom middle was a small speck in last year’s first quarter post. Now the size of the box fits the size of its name at least. And its market share is almost equal to SQL and has surpassed VBA, Perl and Python. Python is also experiencing good growth, just not at the blazing velocity of Ruby. I would expect by next year, we will see Ruby have an even larger share/square.


Candidate '
' in election '
'
Delete
Description
Save
Candidate '
' scheduled for deletion from election '
'
Loading candidate '
' from election '
'
Candidate '
' does not exist in election '
'
Problem loading candidate '
' from election '
', refresh your browser or try again later
Election '
'
Elections
Voters


public class ThreadUtils
extends Object
| Constructor and Description |
|---|
ThreadUtils() |
| Modifier and Type | Method and Description |
|---|---|
static <T> scala.concurrent.Awaitable |
awaitReady(scala.concurrent.Awaitable<T> awaitable,
scala.concurrent.duration.Duration atMost)
Preferred alternative to
Await.ready() . |
static <T> T |
awaitResult(scala.concurrent.Awaitable<T> awaitable,
scala.concurrent.duration.Duration atMost)
Preferred alternative to
Await.result() . |
static <T> T |
awaitResult(java.util.concurrent.Future<T> future,
scala.concurrent.duration.Duration atMost) |
static java.util.concurrent.ThreadFactory |
namedThreadFactory(String prefix)
Create a thread factory that names threads with a prefix and also sets the threads to daemon.
|
static java.util.concurrent.ThreadPoolExecutor |
newDaemonCachedThreadPool(String prefix)
Wrapper over newCachedThreadPool.
|
static java.util.concurrent.ThreadPoolExecutor |
newDaemonCachedThreadPool(String prefix,
int maxThreadNumber,
int keepAliveSeconds)
Create a cached thread pool whose max number of threads is
maxThreadNumber . |
static java.util.concurrent.ThreadPoolExecutor |
newDaemonFixedThreadPool(int nThreads,
String prefix)
Wrapper over newFixedThreadPool.
|
static java.util.concurrent.ExecutorService |
newDaemonSingleThreadExecutor(String threadName)
Wrapper over newSingleThreadExecutor.
|
static java.util.concurrent.ScheduledExecutorService |
newDaemonSingleThreadScheduledExecutor(String threadName)
Wrapper over ScheduledThreadPoolExecutor.
|
static java.util.concurrent.ScheduledExecutorService |
newDaemonThreadPoolScheduledExecutor(String threadNamePrefix,
int numThreads)
Wrapper over ScheduledThreadPoolExecutor.
|
static java.util.concurrent.ForkJoinPool |
newForkJoinPool(String prefix,
int maxThreadNumber)
Construct a new ForkJoinPool with a specified max parallelism and name prefix.
|
static <I,O> scala.collection.Seq<O> |
parmap(scala.collection.Seq<I> in,
String prefix,
int maxThreads,
scala.Function1<I,O> f)
Transforms input collection by applying the given function to each element in parallel fashion.
|
static <T> T |
runInNewThread(String threadName,
boolean isDaemon,
scala.Function0<T> body)
Run a piece of code in a new thread and return the result.
|
static scala.concurrent.ExecutionContextExecutor |
sameThread()
An
ExecutionContextExecutor that runs each task in the thread that invokes execute/submit . |
static java.util.concurrent.ExecutorService |
sameThreadExecutorService() |
static void |
shutdown(java.util.concurrent.ExecutorService executor,
scala.concurrent.duration.Duration gracePeriod) |
public static java.util.concurrent.ExecutorService sameThreadExecutorService()
public static scala.concurrent.ExecutionContextExecutor sameThread()
ExecutionContextExecutor
that runs each task in the thread that invokes execute/submit
.
The caller should make sure the tasks running in this ExecutionContextExecutor
are short and
never block.public static java.util.concurrent.ThreadFactory namedThreadFactory(String prefix)
prefix
- (undocumented)public static java.util.concurrent.ThreadPoolExecutor newDaemonCachedThreadPool(String prefix)
prefix
- (undocumented)public static java.util.concurrent.ThreadPoolExecutor newDaemonCachedThreadPool(String prefix, int maxThreadNumber, int keepAliveSeconds)
maxThreadNumber
. Thread names
are formatted as prefix-ID, where ID is a unique, sequentially assigned integer.prefix
- (undocumented)maxThreadNumber
- (undocumented)keepAliveSeconds
- (undocumented)public static java.util.concurrent.ThreadPoolExecutor newDaemonFixedThreadPool(int nThreads, String prefix)
nThreads
- (undocumented)prefix
- (undocumented)public static java.util.concurrent.ExecutorService newDaemonSingleThreadExecutor(String threadName)
threadName
- (undocumented)public static java.util.concurrent.ScheduledExecutorService newDaemonSingleThreadScheduledExecutor(String threadName)
threadName
- (undocumented)public static java.util.concurrent.ScheduledExecutorService newDaemonThreadPoolScheduledExecutor(String threadNamePrefix, int numThreads)
threadNamePrefix
- (undocumented)numThreads
- (undocumented)public static <T> T runInNewThread(String threadName, boolean isDaemon, scala.Function0<T> body)
SomeException: exception-message at CallerClass.body-method (sourcefile.scala) at ... run in separate thread using org.apache.spark.util.ThreadUtils ... () at CallerClass.caller-method (sourcefile.scala) ...
threadName
- (undocumented)isDaemon
- (undocumented)body
- (undocumented)public static java.util.concurrent.ForkJoinPool newForkJoinPool(String prefix, int maxThreadNumber)
prefix
- (undocumented)maxThreadNumber
- (undocumented)public static <T> T awaitResult(scala.concurrent.Awaitable<T> awaitable, scala.concurrent.duration.Duration atMost) throws SparkException
Await.result()
.
This method wraps and re-throws any exceptions thrown by the underlying Await
call, ensuring
that this thread's stack trace appears in logs.
In addition, it calls Awaitable.result
directly to avoid using ForkJoinPool
's
BlockingContext
. Codes running in the user's thread may be in a thread of Scala ForkJoinPool.
As concurrent executions in ForkJoinPool may see some ThreadLocal
value unexpectedly, this
method basically prevents ForkJoinPool from running other tasks in the current waiting thread.
In general, we should use this method because many places in Spark use ThreadLocal
and it's
hard to debug when ThreadLocal
s leak to other tasks.
awaitable
- (undocumented)atMost
- (undocumented)SparkException
public static <T> T awaitResult(java.util.concurrent.Future<T> future, scala.concurrent.duration.Duration atMost) throws SparkException
SparkException
public static <T> scala.concurrent.Awaitable awaitReady(scala.concurrent.Awaitable<T> awaitable, scala.concurrent.duration.Duration atMost) throws SparkException
Await.ready()
.
awaitable
- (undocumented)atMost
- (undocumented)SparkException
awaitResult
public static void shutdown(java.util.concurrent.ExecutorService executor, scala.concurrent.duration.Duration gracePeriod)
public static <I,O> scala.collection.Seq<O> parmap(scala.collection.Seq<I> in, String prefix, int maxThreads, scala.Function1<I,O> f)
in
- - the input collection which should be transformed in parallel.prefix
- - the prefix assigned to the underlying thread pool.maxThreads
- - maximum number of thread can be created during execution.f
- - the lambda function will be applied to each element of in
.in
by
applying the lambda function f
.


Do you tired of the constant lags and wretched ui/ux?
Do you want a more effective tool to overview time which worksnaps has tracked?
Sign in