Aug
19
2019
--

Microsoft acquires jClarity, a Java performance tuning tool

Microsoft announced this morning that it was acquiring jClarity, a tool designed to tune the performance of Java applications. It will be doing that on Azure from now on. In addition, the company has been offering a flavor of Java called AdoptOpenJDK, which they bill as a free alternative to Oracle Java. The companies did not discuss the terms of the deal.

As Microsoft pointed out in a blog post announcing the acquisition, they are seeing increasing use of large-scale Java installations on Azure, both internally with platforms like Minecraft and externally with large customers, including Daimler and Adobe.

The company believes that by adding the jClarity team and its toolset, it can help service these Java customers better. “The team, formed by Java champions and data scientists with proven expertise in data driven Java Virtual Machine (JVM) optimizations, will help teams at Microsoft to leverage advancements in the Java platform,” the company wrote in the blog.

Microsoft has actually been part of the AdoptOpenJDK project, along with a Who’s Who of other enterprise companies, including Amazon, IBM, Pivotal, Red Hat and SAP.

Co-founder and CEO Martijn Verburg, writing in a company blog post announcing the deal, unsurprisingly spoke in glowing terms about the company he was about to become a part of. “Microsoft leads the world in backing developers and their communities, and after speaking to their engineering and programme leadership, it was a no brainer to enter formal discussions. With the passion and deep expertise of Microsoft’s people, we’ll be able to support the Java ecosystem better than ever before,” he wrote.

Verburg also took the time to thank the employees, customers and community that have supported the open-source project on top of which his company was built. Verburg’s new title at Microsoft will be Principal Engineering Group Manager (Java) at Microsoft.

It is unclear how the community will react to another flavor of Java being absorbed by another large vendor, or how the other big vendors involved in the project will feel about it, but regardless, jClarity’s flavor of Java and its performance tools are part of Microsoft now.

Note: This article originally stated that all of jClarity’s products are open source. Its performance tools are paid services.

Jul
19
2019
--

Upcoming Webinar 7/23: 10 Common Mistakes Java Developers Make when Writing SQL

Mistakes Java Developers Make when Writing SQL

Please join Percona’s Senior Support Engineer Charly Batista as he presents “10 Common Mistakes (Java) Developers Make when Writing SQL” on Tuesday, July 23rd, 2019 at 8:00 AM EDT (UTC-4).

Register Now

It’s easy for Java developers (and users of other OO languages) to mix object-oriented thinking and imperative thinking. But when it comes to writing SQL the nightmare begins! Firstly, SQL is a declarative language and it has nothing to do with either OO or imperative thinking. It is relatively easy to express a condition in SQL but it is not so easy to express it optimally – and even worse to translate it to the OO paradigm. Secondly, they need to think in terms of set and relational algebra, even if unconsciously!

In this talk, we’ll see the most common mistakes that developers make in OO, especially Java, when writing SQL code, and how we can avoid them.

If you can’t attend, sign up anyways we’ll send you the slides and recording afterward.

Speakers:
Charly Batista

Charly Batista
Senior support engineer

Charly worked as Java Architect for many years and using many different database technologies. He helped to design some of the features of the system used in the Brazilian Postal Service, the largest Java project in Latin America in that time. He also helped to design the database of the Brazilian REDESIM project, the system that is responsible for the municipalities taxation in Brazil. He now lives in China and works as Senior Engineer at Percona.

Jun
05
2019
--

Aion Network introduces first blockchain virtual machine for Java developers

Aion Network, a nonprofit dedicated to creating tools to promote blockchain technologies, announced a new virtual machine today that’s built on top of the popular Java Virtual Machine. Its ultimate goal is increasing the popularity of blockchain with developers.

Aion CEO Matthew Spoke says one of the barriers to more widespread blockchain adoption has been a lack of tooling for developers in a common language like Java. The company believed if they could build a virtual machine specifically for blockchain on top of the Java Virtual Machine (JVM), which has been in use for years, it could help promote more extensive use of blockchain.

Today, it’s announcing the Aion Virtual Machine (AVM), a virtual machine that sits on top of the JVM. AVM makes it possible for developers to use their familiar toolset while building in the blockchain bits like smart contracts in the AVM without having to alter the JVM at all.

“We didn’t want to modify the JVM. We wanted to build some sort of supplementary software layer that can interact with the JVM. Blockchains have a set of unique criteria. They need to be deterministic; the computing needs to happen across the distributed network of nodes; and the JVM was never designed with this in mind,” Spoke explained.

Aion set out to build a virtual machine for blockchain without reinventing the wheel. It recognized that Java remains one of the most popular programming languages around, and it didn’t want to mess with that. In fact, it wanted to take advantage of the popularity by building a kind of blockchain interpreter that would sit on top of the JVM without getting in the way of it.

“Rather than trying to convince people of the merits of a new system, can we just get the system they’re already familiar with on top of the blockchain? So we started engineering towards that solution. And we’ve been working on that since for about a year at this point, leading up to our release this week to prove that we can solve that problem,” Spoke told TechCrunch.

Up to this point, Aion has been focusing on the crypto community, but the company felt to really push the blockchain beyond the realm of the true believers, it needed to come up with a way for developers who weren’t immersed in this to take advantage of it.

“Our big focus now is how do we take this message of building blockchain apps and take it into a more traditional software industry audience. Instead of trying to compete for the attention of crypto developers, we want the blockchain to become almost a micro service layer to what normal software developers are solving on a day-to-day basis,” he said.

The company is hoping that by providing this way to access blockchain services, it can help popularize blockchain concepts with developers who might not otherwise have been familiar with them. It’s but one attempt to bring blockchain to more business-oriented use cases, but the company has given this a lot of thought and believes it will help them evangelize this approach with a wider audience of developers moving forward.

Apr
18
2019
--

CloudBees acquires Electric Cloud to build out its software delivery management platform

CloudBees, the enterprise continuous integration and delivery service (and the biggest contributor to the Jenkins open-source automation server), today announced that it has acquired Electric Cloud, a continuous delivery and automation platform that first launched all the way back in 2002.

The two companies did not disclose the price of the acquisition, but CloudBees has raised a total of $113.2 million while Electric Cloud raised $64.6 million from the likes of Rembrandt Venture Partners, U.S. Venture Partners, RRE Ventures and Next47.

CloudBees plans to integrate Electric Cloud’s application release automation platform into its offerings. Electric Flow’s 110 employees will join CloudBees.

“As of today, we provide customers with best-of-breed CI/CD software from a single vendor, establishing CloudBees as a continuous delivery powerhouse,” said Sacha Labourey, the CEO and co-founder of CloudBees, in today’s announcement. “By combining the strength of CloudBees, Electric Cloud, Jenkins and Jenkins X, CloudBees offers the best CI/CD solution for any application, from classic to Kubernetes, on-premise to cloud, self-managed to self-service.”

Electric Cloud offers its users a number of tools for automating their release pipelines and managing the application life cycle afterward.

“We are looking forward to joining CloudBees and executing on our shared goal of helping customers build software that matters,” said Carmine Napolitano, CEO, Electric Cloud. “The combination of CloudBees’ industry-leading continuous integration and continuous delivery platform, along with Electric Cloud’s industry-leading application release orchestration solution, gives our customers the best foundation for releasing apps at any speed the business demands.”

As CloudBees CPO Christina Noren noted during her keynote at CloudBees’ developer conference today, the company’s customers are getting more sophisticated in their DevOps platforms, but they are starting to run into new problems now that they’ve reached this point.

“What we’re seeing is that these customers have disconnected and fragmented islands of information,” she said. “There’s the view that each development team has […] and there’s not a common language, there’s not a common data model, and there’s not an end-to-end process that unites from left to right, top to bottom.” This kind of integrated system is what CloudBees is building toward (and that competitors like GitLab would argue they already offer). Today’s announcement marks a first step into this direction toward building a full software delivery management platform, though others are likely to follow.

During his company’s developer conference, Labourey also today noted that CloudBees will profit from Electric Cloud’s longstanding expertise in continuous delivery and that the acquisition will turn CloudBees into a “DevOps powerhouse.”

Today’s announcement follows CloudBees’ acquisition of CI/CD tool CodeShip last year. As of now, CodeShip remains a standalone product in the company’s lineup. It’ll be interesting to see how CloudBees will integrate Electric Cloud’s products to build a more integrated system.

Feb
11
2019
--

Google Docs gets an API for task automation

Google today announced the general availability of a new API for Google Docs that will allow developers to automate many of the tasks that users typically do manually in the company’s online office suite. The API has been in developer preview since last April’s Google Cloud Next 2018 and is now available to all developers.

As Google notes, the REST API was designed to help developers build workflow automation services for their users, build content management services and create documents in bulk. Using the API, developers can also set up processes that manipulate documents after the fact to update them, and the API also features the ability to insert, delete, move, merge and format text, insert inline images and work with lists, among other things.

The canonical use case here is invoicing, where you need to regularly create similar documents with ever-changing order numbers and line items based on information from third-party systems (or maybe even just a Google Sheet). Google also notes that the API’s import/export abilities allow you to use Docs for internal content management systems.

Some of the companies that built solutions based on the new API during the preview period include Zapier, Netflix, Mailchimp and Final Draft. Zapier integrated the Docs API into its own workflow automation tool to help its users create offer letters based on a template, for example, while Netflix used it to build an internal tool that helps its engineers gather data and automate its documentation workflow.

 

 

May
09
2018
--

Does the Version Number Matter?

ProxySQL

ProxySQLYes, it does! In this blog post, I am going to share my recent experiences with ProxySQL and how important the database software version number can be.

Migration

I was working on a migration to Percona XtraDB Cluster (PXC) with ProxySQL, fortunately on a staging environment first so we could catch any issues (like this one).

We installed Percona XtraDB Cluster and ProxySQL on the staging environment and repointed the staging application to ProxySQL. At first, everything looked great. We were able to do some application tests and everything looked good. I advised the customer to do more testing to make sure everything works well.

Something is wrong, but what?

A few days later the customer noticed that their application was not working properly.

We started investigating. Everything seemed well-configured, and the only thing we could see in the application log was the following:

2018-04-20 11:28:31,169 [ default-threads - 42] ERROR Error in lifecycle management : org.hibernate.StaleStateException : Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 {it.tasgroup.monetica.gt.lifecycle.LifeCycle:line 103} (method: error)
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:85)
at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:70)

Based on this error I still did not know what is wrong. Were some of the queries failing because of PXC, ProxySQL or some other settings?

We redirected the application to one of the nodes from PXC, and everything worked fine. We tried HAproxy as well, and everything worked again. We knew something was happening around ProxySQL which is causing the problem. But we still could not find the problem. Every query went through ProxySQL without any issue.

Debug log is our savior

The customer finally enabled the application debug logging so we could see which query was failing:

delete from TABLENAME where ID='11' and Timestamp ='2018-04-20 16:15:03';

I was confused at first: this is a kind of simple query, what could be wrong? Let’s investigate it on the cluster. When I tried to select the data on the cluster, it gave me back zero results. That’s OK, maybe the row was already deleted?

For this investigation, the slow query logging was enabled and long_query_time set to 0 to log all the queries. I checked the slow query log looking for queries like this. What I found helped me realize what the problem was:

delete from TABLENAME where ID=10 and Timestamp ='2018-04-20 11:17:22.35';
delete from TABLENAME where ID=24 and Timestamp ='2018-04-20 11:17:31.602';
delete from TABLENAME where ID=43 and Timestamp ='2018-04-20 11:18:13.2';
delete from TABLENAME where ID=22 and Timestamp ='2018-04-20 11:11:02.854';
delete from TABLENAME where ID=11 and Timestamp ='2018-04-20 11:21:57';
delete from TABLENAME where ID=64 and Timestamp ='2018-04-20 11:18:34';
delete from TABLENAME where ID=47 and Timestamp ='2018-04-20 10:38:35';
delete from TABLENAME where ID=23 and Timestamp ='2018-04-20 11:30:03';

I hope you see the difference! The first four lines have fractional seconds! At that time, the application was pointed to the cluster directly. So ProxySQL cut off the fractional seconds? That would be a nasty bug.

I checked the application log again with the debug information, and I could see the application does not even use the fractional seconds in the queries when it points to ProxySQL. This is why the query was failing (does not delete any rows), because in the table all the rows had fractional seconds but the queries were not using them.

So why does the application not use fractional seconds with ProxySQL?

First of all, fractional seconds were introduced in MySQL 5.6.4. The application is a Java-based application with Jboss and Hibernate. I knew ProxySQL reports MySQL 5.5. Maybe the application/connector reads the version number and makes decisions based on that?

It was quite easy to test this theory by just changing the version number in ProxySQL like this:

update global_variables set variable_value="5.7.21" where variable_name='mysql-server_version';
load mysql variables to run;save mysql variables to disk;

The application had to be restarted (probably it was caching the previous settings) but after that everything was working as expected.

But be careful, now it will report 5.7.21 for all the hostgroups. What if you have multiple hostgroups with different MySQL versions? It would be nice if you could define this for every hostgroup.

Conclusion

The solution was very easy, but finding the source of the problem took a long time. If you are planning to use ProxySQL, I would always recommend changing the mysql-server_version to match to the underlying MySQL server version number because who knows which connector or application checks the version and makes a decision based on that.

There is another example here where Marco Tusa had a very similar problem with a Java connector.

The post Does the Version Number Matter? appeared first on Percona Database Performance Blog.

Sep
28
2016
--

Skymind raises $3M to bring its Java deep-learning library to the masses

Network, conceptual illustration Skymind, a company developing an open-source deep-learning library for Java, along with tools for implementation, today closed $3 million in financing from Tencent, SV Angel, GreatPoint Ventures, Mandra Capital and Y Combinator. Skymind was previously part of Y Combinator’s Winter 2016 batch and has taken money from Joe Montana’s Liquid 2 Ventures and a number of other… Read More

Mar
03
2015
--

Introducing ‘MySQL 101,’ a 2-day intensive educational track at Percona Live this April 15-16

Talking with Percona Live attendees last year I heard a couple of common themes. First, people told me that there is a lot of great advanced content at Percona Live but there is not much for people just starting to learn the ropes with MySQL. Second, they would like us to find a way to make such basic content less expensive.

I’m pleased to say we’re able to accommodate both of these wishes this year at Percona Live! We have created a two-day intensive track called “MySQL 101” that runs April 15-16. MySQL 101 is designed for developers, system administrators and DBAs familiar with other databases but not with MySQL. And of course it’s ideal for anyone else who would like to expand their professional experience to include MySQL. The sessions are designed to lay a solid foundation on many aspects of MySQL development, design and operations.

As for the price: Just $101 for both full days, but only if you are among the first 101 people to register using the promo code “101” at checkout.  After that the price returns to $400 (still a great price!). :)

The MySQL 101 registration pass includes full access to the Percona Live expo hall (and all the fun stuff happening out there) as well as keynotes, which will inform you about most significant achievements in MySQL ecosystem.

MySQL 101 Percona Live 2015As there is so much information to cover in the MySQL 101 track, we’re running two sessions in parallel – one geared more toward developers using MySQL and the other toward sysadmins and MySQL DBAs, focusing more on database operations. Though I want to point out that you do not have to chose one track to attend exclusively, but rather can mix and match sessions depending what is most relevant to your specific circumstances.

I will be leading a couples tracks myself alongside many other Percona experts who are joining me for those two days!

Here’s a peek at just some of the many classes on the MySQL 101 agenda:

You can see the full MySQL 101 agenda here. Don’t forget the promo code “101” and please feel free to ask any questions below. I hope to see you in Santa Clara at Percona Live! The conference runs April 13-16 in sunny Santa Clara, California.

The post Introducing ‘MySQL 101,’ a 2-day intensive educational track at Percona Live this April 15-16 appeared first on MySQL Performance Blog.

Jul
08
2013
--

Poll: What programming languages and platforms do you use?

What Programming Languages and Platforms do you use?What programming languages and platforms do you use for large-scale projects in your organization?

If something is missing from the list please leave a comment and share your story. Thanks!

Note: There is a poll embedded within this post, please visit the site to participate in this post’s poll.

The post Poll: What programming languages and platforms do you use? appeared first on MySQL Performance Blog.

Powered by WordPress | Theme: Aeros 2.0 by TheBuckmaker.com